Linux下的高级文件权限ACL
2013-03-24 14:31
260 查看
ACL(Access Control List)即访问控制列表。主要是针对单一用户,单一文件或目录进行rwx权限的细部设定。可以针对用户(User)、群组(Group)、默认属性掩码(mask)进行设置。
ACL是Linux系统权限额外支持的一项功能,需要文件系统的支持,例如:ReiserFS , EXT2 , EXT3 , EXT4 , JFS , XFS等都支持ACL功能。
*拥有ACL功能:
ACL相关设置命令
getfacl :获取文件或目录的ACL设置信息.
setfac :设置文件或目录的ACL设置信息.
chacl :同setfacl,也是用来设定ACL设置信息(不常用).
ACL是Linux系统权限额外支持的一项功能,需要文件系统的支持,例如:ReiserFS , EXT2 , EXT3 , EXT4 , JFS , XFS等都支持ACL功能。
*拥有ACL功能:
[root@rhel6 ~]# mount -o acl /dev/iscsi/sharedisk /data/ [root@rhel6 ~]# mount | grep sharedisk /dev/mapper/iscsi-sharedisk on /data type ext4 (rw,acl) 注:如果是用tune2fs命令启用分区的ACL功能,用mount命令是看不到的. [root@rhel6 ~]# tune2fs -o acl /dev/iscsi/sharedisk [root@rhel6 ~]# tune2fs -l /dev/iscsi/sharedisk | grep -i "default mount option" Default mount options: acl [root@rhel6 ~]# umount /data/ [root@rhel6 ~]# mount /dev/iscsi/sharedisk /data/ [root@rhel6 ~]# mount | grep sharedisk /dev/mapper/iscsi-sharedisk on /data type ext4 (rw)
ACL相关设置命令
getfacl :获取文件或目录的ACL设置信息.
setfac :设置文件或目录的ACL设置信息.
chacl :同setfacl,也是用来设定ACL设置信息(不常用).
[root@rhel6 data]# setfacl --help setfacl 2.2.49 -- set file access control lists Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ... -m, --modify=acl 更改文件或目录的ACL规则 -M, --modify-file=file 从一个文件读入ACL设置信息并以此为模版修改当前文件或目录的ACL规则 -x, --remove=acl 删除文件或目录指定的ACL规则 -X, --remove-file=file 从一个文件读入ACL设置信息并以此为模版删除当前文件或目录的ACL规则 -b, --remove-all 删除文件或目录所有的ACL规则 -k, --remove-default 删除文件或目录默认的ACL规则 --set=acl 设置当前文件的ACL规则 --set-file=file 从文件读入ACL规则来设置当前文件或目录的ACL规则 --mask 重新计算有效权限,即使ACL mask被明确指定 -n, --no-mask 不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定 -d, --default 设置目录默认的ACL规则(只对目录有效) -R, --recursive 递归处理 -L, --logical logical walk, follow symbolic links -P, --physical physical walk, do not follow symbolic links --restore=file restore ACLs (inverse of `getfacl -R') --test test mode (ACLs are not modified) 注:设置了ACL的目录或文件,在属性的最后一位会出现一个“+”号,查看文件或目录所属群组的准确权限应该使用getfacl命令。
目录: [root@rhel6 data]# mkdir acl_dir [root@rhel6 data]# ll -d acl_dir drwxr-xr-x. 2 root root 1024 Mar 24 10:29 acl_dir/ [root@rhel6 data]# getfacl acl_dir/ # file: acl_dir # owner: root "基本规则" # group: root user::rwx group::r-x "缺省规则" other::r-x [root@rhel6 data]# su - user1 [user1@rhel6 ~]$ touch /data/acl_dir/acl_user1 touch: cannot touch `/data/acl_dir/acl_user1': Permission denied //user1用户对acl_dir目录不具有写权限,无法创建文件 [user1@rhel6 ~]$ exit [root@rhel6 data]# setfacl -m u:user1:rwx acl_dir/ //赋予user1用户对acl_dir目录具有读写执行的权限 [root@rhel6 data]# getfacl --all-effective acl_dir/ # file: acl_dir # owner: root # group: root user::rwx user:user1:rwx #effective:rwx group::r-x #effective:r-x mask::rwx other::r-x [root@rhel6 data]# su - user1 [user1@rhel6 ~]$ touch /data/acl_dir/acl_user1 //可成功创建文件 [user1@rhel6 ~]$ ll -d /data/acl_dir/ //acl_dir目录属性后面多了一个"+" drwxr-xr-x+ 2 root root 1024 Mar 24 10:33 /data/acl_dir/ 注:对于目录而言,必须给予可执行的权限,否则无法cd到对应的目录中 文件: [root@rhel6 data]# touch acl_file [root@rhel6 data]# getfacl acl_file # file: acl_file # owner: root # group: root user::rw- group::r-- other::r-- [root@rhel6 data]# su - user1 [user1@rhel6 ~]$ echo "access test" > /data/acl_file -bash: /data/acl_file: Permission denied //user1用户对acl_file文件不具有写权限 [root@rhel6 data]# setfacl -m u:user1:rw acl_file //赋予user1用户对acl_file文件的读写权限 [root@rhel6 data]# getfacl --all-effective acl_file # file: acl_file # owner: root # group: root user::rw- user:user1:rw- #effective:rw- group::r-- #effective:r-- mask::rw- other::r-- [root@rhel6 data]# su - user1 [user1@rhel6 ~]$ echo "access test" > /data/acl_file //可成功写入acl_file文件 [user1@rhel6 data]$ cat acl_file access test [user1@rhel6 ~]$ ll /data/ total 16 drwxrwxr-x+ 2 root root 1024 Mar 24 10:33 acl_dir -rw-rw-r--+ 1 root root 12 Mar 24 10:39 acl_file drwx------. 2 root root 12288 Mar 24 10:24 lost+found mask: [root@rhel6 data]# setfacl -m m:r acl_dir/ [root@rhel6 data]# getfacl acl_dir/ # file: acl_dir # owner: root # group: root user::rwx user:user1:rwx #effective:r-- group::r-x mask::r-- other::r-x [root@rhel6 data]# su - user1 [user1@rhel6 data]$ cd acl_dir/ -bash: cd: acl_dir/: Permission denied 由于user1用户在这个目录上没有x权限,所以连这个目录都不能进入,尽管我们已经赋予user1用户rwx的ACL设置信息。 最终权限由mask控制,权限必须在mask内,否则相对mask多出来的权限也是无效的。
[root@rhel6 data]# mkdir dir [root@rhel6 data]# setfacl -d -m u:user1:rwx dir/ //让dir/目录下的所有文件和目录继承dir/目录的ACL设置信息 [root@rhel6 data]# getfacl dir/ # file: dir/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:user1:rwx default:group::r-x default:mask::rwx default:other::r-x [root@rhel6 data]# touch dir/test [root@rhel6 data]# getfacl dir/test //dir目录中创建的文件user1用户同样具有rwx权限 # file: dir/test # owner: root # group: root user::rw- user:user1:rwx #effective:rw- group::r-x #effective:r-- mask::rw- other::r-- [root@rhel6 data]# setfacl -x u:user1 acl_file //移除acl_file中的user1的ACL设置 [root@rhel6 data]# getfacl acl_file # file: acl_file # owner: root # group: root user::rw- group::r-- mask::r-- other::r-- [root@rhel6 data]# ll acl_file -rw-r--r--+ 1 root root 12 Mar 24 10:39 acl_file //文件属性的"+"依然存在 [root@rhel6 data]# setfacl -b acl_file //移除acl_file中所有的ACL设置 [root@rhel6 data]# getfacl acl_file # file: acl_file # owner: root # group: root user::rw- group::r-- other::r-- [root@rhel6 data]# ll acl_file -rw-r--r--. 1 root root 12 Mar 24 10:39 acl_file //文件属性的"+"已还原成"." [root@rhel6 data]# getfacl dir/ > acl.bak //导出dir目录的ACL设置信息 [root@rhel6 data]# setfacl --set-file=acl.bak acl_dir/ //将ACL设置信息导入acl_dir目录 [root@rhel6 data]# getfacl acl_dir/ # file: acl_dir/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:user1:rwx default:group::r-x default:mask::rwx default:other::r-x本文出自 “Vnimos” 博客,请务必保留此出处http://vnimos.blog.51cto.com/2014866/1161389
相关文章推荐
- Linux文件默认权限(umask)的修改/特殊权限/细部权限规划(ACL)
- linux中文件权限[高级部分]
- Linux acl命令,实现文件权限管理
- 使用 ACL 设置用户访问指定文件/目录的权限 | Linux 中国
- Linux高级权限ACL权限控制基础知识
- Linux下的高级权限文件控制
- Linux 基础命令(四)—— 文件的权限和访问控制列表(ACL)
- linux基础命令之文件权限的管理及ACL的扩展
- Linux高级权限管理 - ACL
- linux下通过acl配置灵活目录文件权限(详细)
- linux下文件扩展权限ACL的设置
- Linux 文件系统权限小结-基本权限-粘滞位-ACL
- Linux系统中文件权限ACL功能(上)。 推荐
- ACL工具备份和恢复Linux的文件权限
- Linux系统中文件权限ACL功能(中)。
- Linux 文件隐藏权限 文件访问控制列表(ACL)
- <二>Linux文件权限与属性详解--ACL
- Linux 基础命令(四)—— 文件的权限和访问控制列表(ACL)
- linux文件特殊权限与文件acl设置
- Linux权限管理:普通文件权限、特殊权限及ACL 推荐