ACL

①ACL:Access Control List,实现灵活的权限管理;除了文件的所有者,所属组和其它人,可以对更多的用户设置权限。

          CentOS7 默认创建的xfs 和ext4 文件系统具有ACL 功能

          CentOS7 之前版本,默认手工创建的ext4 文件系统无ACL功能, 需手动增加

eg:


ACL_第1张图片

②如何使用ACL

使用setfacl命令(set file acl)可以设置acl.

eg:


ACL_第2张图片

使用getfacl可以查看文件的acl设置情况

eg:


ACL_第3张图片

值得注意的是,在acl中也有先后的匹配问题:

eg:


ACL_第4张图片


ACL_第5张图片

该试验表明ACL的生效顺序为:所有者,自定义用户,自定义组,其他人。


一些常用的acl命令:

setfacl -m u:wang:rwx file|directory    

setfacl -Rm g:sales:rwX directory    

setfacl -M file.acl file|directory

setfacl -m g:salesgroup:rw file| directory

setfacl -m d:u:wang:rx directory

setfacl -x u:wang file |directory

setfacl -X file.acl directory

setfacl -k dir       删除默认ACL 权限

setfacl –b file1          清除所有ACL 权限

getfacl file1 | setfacl --set-file=- file2        复制file1

mask:

设置了acl权限之后,所属组的权限变成了mask的权限,mask表示了最高权限。(相当于定义了一个高压线)

mask只影响除所有者和other的之外的人和组的最大权限Mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限。用户或组的设置必须存在于mask权限设定范围内才会生效

setfacl-m mask::rx file

--set选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含UGO的设置,不能象-m一样只是添加ACL就可以

eg:

setfacl --set u::rw,u:wang:rw,g::r,o::-file1

你可能感兴趣的:(ACL)