5.2. 设置访问权限 ACL
ACL 有两种类型:访问 ACL 和默认 ACL。访问 ACL 是特定文件或目录的访问控制列表。默认 ACL 只能与目录关联;如果目录中的文件没有访问权限 ACL,它将使用目录的默认 ACL 规则。默认 ACL 是可选的。
可以配置 ACL:
- 每个用户
- 每个组
- 通过有效的权限掩码
- 对于不在文件用户组中的用户
setfacl
实用程序为文件和目录设置 ACL。使用 -m
选项添加或修改文件或目录的 ACL:
# setfacl -m rules files
规则(规则)必须以以下格式指定:如果通过逗号分隔多个规则,则可以在同一命令中指定多个规则。
u:uid:perms
- 设置用户的访问权限 ACL。可以指定用户名或 UID。用户可以是系统上的任何有效用户。
g:gid:perms
- 设置组的访问权限 ACL。可以指定组名或 GID。组可以是系统上的任何有效组。
m:perms
- 设置有效的权利掩码。掩码是所属组以及所有用户和组条目的所有权限的并集。
O:perms
- 为 组中不属于 文件的用户设置访问权限 ACL。
权限(perms)必须是字符 r
、w
和 x
的组合,用于读取、写入和执行。
如果文件或目录已具有 ACL,并且使用了 setfacl
命令,则其他规则将添加到现有 ACL 中或修改现有规则。
例 5.1. 授予读取和写入权限
例如,为用户和rius 授予读取和写入权限:
# setfacl -m u:andrius:rw /project/somefile
要删除用户、组群或其他用户的所有权限,请使用 -x
选项且不指定任何权限:
# setfacl -x rules files
例 5.2. 删除所有权限
例如,要从 UID 500 的用户中删除所有权限:
# setfacl -x u:500 /project/somefile