ACL策略 acl Access Control List
Linux对文件的基本权限只针对UGO,如果我出现以下需求,这些基本权限就无法满足:我是root,我不想给任何人任何权限,但是有一天,我想只对一个人开放权限,而且他不是我的组成员,我也不想把他加入组成员,此时如果我打开O的权限,那么就会有很多人拥有了权限,此时基本权限根本无法满足我的需求。ACL策略此时就非常有用了。
ACL抛开对用户UGO的判断,可以实现点对点的赋予权限
查看ACL是否启动:
dmesg | grep -i acl
ACL基本的设定:
setfacl -m u:用户名:rwx 文件名
查看一个文件是否有ACL策略:
getfacl 文件名
移除ACL策略:
setfacl -k 文件名
值得注意的是,对一个文件添加了ACL策略,那么文件的mask有可能会发生改变,会造成即使给特定的人设置了权限,也有可能不生效,此时就要对文件的mask进行修改
mask值
#mask值是能够赋予用户权限的最大值
#当设定acl列表后,如果用chmod命令缩小文件的权限,那么mask值会被更改
比如:所有人都没有权限,你只给了zhu权限,但是由于mask是—,造成zhu的特权也无法生效,此时就要修改mask为rwx即可生效。
设定单个文件的mask:
setfacl -m m:rwx 文件名
如果对目录进行了ACL设定,而且希望他下面新创建的文件继续继承这个策略,可以这样设置:
setfacl -m d:u:用户名:权限 目录名