www. On IT Road .com
显示文件的 ACL
使用 getfacl 实用程序显示文件的 ACL。
当文件没有 ACL 时,它显示与 'ls -l' 相同的信息,尽管格式不同。
例如,文件测试没有 ACL:
# ls -l test -rw-rw-r-- 1 oracle oracle 25 Mar 5 10:10 test
测试文件的示例 getfacl 输出:
# getfacl test # file: test # owner: oracle # group: oracle user::rw- group::rw- other::r-
安装ACL
在对文件或者目录使用 ACL 之前,请安装 acl 包:
# yum install acl
在文件上配置 ACL
使用 setfacl 实用程序在文件的 ACL 中添加或者修改一个或者多个规则。
语法是:
# setfacl -m [rules] [files]
规则格式如下:
- u:name:permissions :设置用户的访问 ACL(用户名或者 UID)
- g:name:permissions :设置组的访问 ACL(组名或者 GID)
- m:permissions :设置有效权限掩码。这是拥有组的所有权限以及所有用户和组条目的联合。
- o:permissions :为其他所有人(其他人)设置访问 ACL
权限分别是传统的 r、w 和 x,分别用于读取、写入和执行。
以下示例向测试文件的 ACL 添加一条规则,该规则授予 oracle 用户对该文件的读写权限:
# setfacl -m u:oracle:rwx test
getfacl 的输出包括 ACL 规则:
# getfacl test # file: test # owner: oracle # group: oracle user::rw- user:oracle:rwx group::rw- mask::rwx other::r-
当文件具有 ACL 时,“ls -l”会在权限后显示加号 (+):
# ls -l test -rw-rwxr--+ 1 oracle oracle 25 Mar 5 10:10 test
删除文件的 ACL
使用 -x 选项而不指定任何权限来删除用户或者组的规则。
# setfacl -x u:oracle test
要删除 ACL 本身,请使用 -b 选项:
# setfacl -b test
在文件系统上配置 ACL
包含文件或者目录的文件系统也必须通过 ACL 支持进行挂载。
以下是挂载具有 ACL 支持的本地 ext3 文件系统的语法:
# mount -t ext3 -o acl [device-name] [mount-point]
例如:
# mount -t ext3 -o acl /dev/mapper/VolGroup00-LogVol00 /data
如果分区在 /etc/fstab 文件中列出,请包括 acl 选项:
# vi /etc/fstab LABEL=/data /data ext3 acl 0 0
ACL规则
ACL 由一组规则组成,这些规则指定用户或者组如何访问与 ACL 关联的文件或者目录。
有两种类型的 ACL 规则:
- 访问 ACL:指定单个文件或者目录的访问信息
- 默认 ACL :仅与目录有关。它为目录中没有访问 ACL 的任何文件指定默认访问信息。
传统的 Linux 文件和目录访问权限包括为文件或者目录的所有者、文件或者目录关联的组成员以及其他所有人(其他人)设置读取、写入和执行权限的组合。
访问控制列表 (Access control lists - ACL) 提供了比这些传统 Linux 访问权限更细粒度的访问控制机制。
设置默认 ACL
要设置默认 ACL,请在规则前添加 d: 以指定目录而不是文件名:
# setfacl -m d:o:rx /share
日期:2020-09-17 00:13:17 来源:oir作者:oir