前面写过传统的权限有三种身份(owner,group,others)搭配三种权限(r,w,x)而已,并没有办法针对某一个用户或某一个组来设置特定的权限需要,此时可以使用ACL这个机制
什么是ACL
ACL是Access Control List 的缩写,主要目的是提供传统的权限之外的具体权限设置。它可以针对单一用户,单一目录或文件来进行r w x的权限设置,对于需要特殊权限的使用状况非常有帮助。
ACL主要针对三个方面控制权限
1 用户 (user): 可以真对用户来设置权限
2 用户组 (group): 可以真对用户组来设置权限
3 默认属性 (mask): 还可以在该目录下在新建文件夹/目录时设置新数据的默认权限
setfacl 命令
设置某个目录/文件的ACL规定
格式“setfacl [参数] 文件名称”
eg1
文件多了个+号,设置成功
eg2 如果没有用户列表,代表设置该文件所有者,如下,root权限变成rwx
getfacl命令
参数:与setfacl基本相同,所以省略
对于上面的设置,我们可以具体查看
显示的数据上面加#的,代表文件的默认属性,有上面的结果看到,只有vbird1对文件有r与x权限
eg3 针对特定用户组 hr做rwx权限
mask
用户或组设置的权限必须要存在于mask的权限范围之内才会生效,此即有效权限
举例说明
vbird1 与 mask的集合发现仅有r, 因此vbird1仅有r的权限,并不存在x的权限了,mask用于临时降低用户或组(除属主和其他人)的权限,能够避免开放某些权限给用户或组使用
赋予vbird1 对以后在/home 下新建的文件有读、写、执行
权限 (使 vbird1 的权限继承)
umask
当前用户的umask 权限