【访问控制列表 ACL】
访问控制列表(Accesss Control List,ACL)在 Linux 中用于设定用户针对文件的权限设置
在传统的权限设置中,用户对文件只有三种身份,属主 owner、属组 group、其他 othres,每种用户身份拥有读 read、写 write、执行 execute 三种权限,但在实际应用中,需要对文件或目录进行具体的设置,此时就需要使用 ACL 来进行设置
ACL 可以提供以下支持:
- 用户 user:针对用户来设置权限
- 用户组 group:针对用户组来设置权限
- 默认属性 mask:在某目录下新建文件或目录时设置默认权限
【setfacl 命令】
setfacl
命令用于设置某个文件或目录的 ACL 设置项,其命令格式为:setfacl [选项] filename
常见选项有:
- -m:后跟 ACL 参数,用于设置 ACL 参数,不可与 -x 选项合用
- -x:后跟 ACL 参数,用于删除 ACL 参数,不可与 -m 选项合用
- -R:递归设置 ACL 参数,即子目录及文件同样会被设置 ACL 参数
- -d:设置默认 ACL 参数,只对目录有效,在该目录新建的数据都会引用该默认值
- -b:删除所有 ACL 参数
- -k:删除默认 ACL 参数
在设置 ACL 参数时,一般采用 u:用户:权限
、g:用户组:权限
、o:其他:权限
的形式设置,当一个文件或目录设置 ACL 参数后,其权限部分会多一个 +
号,代表该文件或目录经过了 ACL 设置,此时看到的权限与实际权限可能存在误差
【getfacl 命令】
在通过 setfacl
命令设置 ACL 参数后,看到的权限与实际权限可能存在误差,此时若想查看文件或目录的实际权限,可以通过 getfacl
命令来取得其具体的 ACL 设置项,命令格式为:getfacl filename