Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.2. 设置访问权限 ACL

ACL 有两种类型:访问 ACL 和默认 ACL。访问 ACL 是特定文件或目录的访问控制列表。默认 ACL 只能与目录关联;如果目录中的文件没有访问权限 ACL,它将使用目录的默认 ACL 规则。默认 ACL 是可选的。

可以配置 ACL:

  1. 每个用户
  2. 每个组
  3. 通过有效的权限掩码
  4. 对于不在文件用户组中的用户

setfacl 实用程序为文件和目录设置 ACL。使用 -m 选项添加或修改文件或目录的 ACL:

# setfacl -m rules files

规则(规则)必须以以下格式指定:如果通过逗号分隔多个规则,则可以在同一命令中指定多个规则。

u:uid:perms
设置用户的访问权限 ACL。可以指定用户名或 UID。用户可以是系统上的任何有效用户。
g:gid:perms
设置组的访问权限 ACL。可以指定组名或 GID。组可以是系统上的任何有效组。
m:perms
设置有效的权利掩码。掩码是所属组以及所有用户和组条目的所有权限的并集。
O:perms
为 组中不属于 文件的用户设置访问权限 ACL。

权限(perms)必须是字符 rwx 的组合,用于读取、写入和执行。

如果文件或目录已具有 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