MENU

访问控制列表(ACL)

August 27, 2018 • Linux阅读设置

安装包

  nfs4-acl-tools

查看当前权限和 ACL

  命令格式:getfacl 选项 文件或目录

选项

仅显示文件访问控制列表
仅显示默认的访问控制列表
不显示注释表头
显示所有的有效权限
显示无效权限
跳过只有基条目 (base entries) 的文件
递归显示子目录
逻辑遍历 (跟随符号链接)
物理遍历 (不跟随符号链接)
使用制表符分隔的输出格式
显示数字的用户 / 组标识
不去除路径前的 / 符号
显示版本并退出
显示本帮助信息


在没有配置 acl 挂载选项的文件系统上启动 ACL

  在 RHEL7 上创建的 XFS 文件系统和所有 ext 文件系统都默认启用 ACL 支持。
  只有在早期的版本中才需要使用 acl 选项挂载文件系统。
  命令格式:mount -o remount -o acl 分区 (例如:/home)

写入 /etc/fstab

设备文件(例如:/dev/sda3)  分区(例如:/home)  ext4 defaults,acl  1,2
写入后使用 mount -o remount 分区 (例如:/home)      #启动该文件

使用 mount 命令可以查看输出结果

  例:/dev/sda3 on /home type ext4 (rw,acl)

设置 ACL

设置权限:setfacl [-R|-d] {-m|-x|-b} [{u|g}:{用户名 | 组名}: 权限] {目录 | 文件}

选项

递归修改
修改文件或目录的 acl 规则
删除权限,删除权限时只需要跟上用户名或组名加上目录或文件就可以了
删除全部 ACL 记录,只需要加上目录或文件就可以了,不会删除原本的权限
设置默认 ACL,目录可以包含一个或多个默认 ACL,默认 ACL 不会影响指定的目录,而是被在改目录下创建的文件和目录继承
在重新计算权限时忽略屏蔽位
删除默认的 ACL 记录

参数

用户,跟用户名,如果要对其他所有用户 ACL 权限做修改使用
权限 (例如拒绝其他用户所有权限:setfacl -m o:--- /data)
组,跟组名
屏蔽位,设置屏蔽位后,用 setfacl 等命令赋予的权限只能是屏蔽位设定的权限,格式 mask: 权限,例如不限制 (mask:rwx), 屏蔽位只能作用于组所有者,以及指定的用户和组,它对文件的用户所有者和 “其他” 权限组不起作用
读 (r) 写 (w) 执行 (x) 拒绝所有权限 (---)

  注意:当以同名文件覆盖掉具有 ACL 权限的文件时会继承被覆盖文件的 ACL 权限

NFS 共享与 ACL

基于 NFS 的 ACL 比标准的 ACL 更新惊喜、更加严格。
这个功能最早引入到 NFS 版本 4 中,它是 RHEL7 的标准。
  显示与共享目录中的文件有关的 ACL:nfs4_getfacl

输出详解

输出格式:type:flags:principal:permissions

类型 (type) 表示允许 (A,Access) 或拒绝 (D,Deny)
标志 (flags) 可以提供更加精细的控制
主体 (principal) 可以时一个普通用户或组 (用小写表示),它甚至可以是一个原型用户 (如 OWNER [所有者]、GROUP [组]、EVERYONE [每个人])
NFSv4 ACL 权限描述
权限说明
r读去文件或显示目录
w写入一个文件或者在目录中创建一个子目录
x执行一个程序或修改一个目录
d删除文件或目录
D删除子目录
t读取文件或目录的属性
T写入文件或目录的属性
c读取文件或目录的 ACL
C写入文件或目录的 ACL
y允许客户端在文件或目录上使用同步 I/O

最后编辑于: May 24, 2019
Archives QR Code
QR Code for this page
Tipping QR Code