①ACL:Access Control List,实现灵活的权限管理;除了文件的所有者,所属组和其它人,可以对更多的用户设置权限。
CentOS7 默认创建的xfs 和ext4 文件系统具有ACL 功能
CentOS7 之前版本,默认手工创建的ext4 文件系统无ACL功能, 需手动增加
eg:

②如何使用ACL
使用setfacl命令(set file acl)可以设置acl.
eg:

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

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


该试验表明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
网友评论