getfacl 是 linux 查看文件或目录 acl 的专用命令,可显示传统权限外的用户/组权限、mask 及默认 acl(目录末尾 default: 行),配合 -r 递归查看,ls -l 末尾“+”标识 acl 启用,实际权限受 mask 限制。

getfacl 是 Linux 中查看文件或目录访问控制列表(ACL)的专用命令,能清晰展示除传统 rwx 权限外的额外用户/组权限规则,是排查权限问题的关键工具。
基础用法:查看单个文件或目录的 ACL
直接跟上目标路径即可:
- getfacl /path/to/file —— 查看文件的完整 ACL 信息
- getfacl /path/to/dir —— 查看目录的 ACL(含默认 ACL,若已设置)
输出中会明确区分:user::(属主权限)、group::(属组权限)、other::(其他用户权限),以及额外的 user:username:、group:groupname: 和 mask:(实际生效权限上限)。
查看递归 ACL(含子目录和文件)
加 -R 参数可遍历整个目录树:
- getfacl -R /data/shared —— 显示 /data/shared 下所有项的 ACL
注意:输出较长,建议配合 less 或 grep 筛选,例如:getfacl -R /data/shared | grep "user:alice" 快速定位某用户的规则。
识别默认 ACL(仅对目录有效)
若目录设置了默认 ACL(影响新建文件/子目录),getfacl 会在输出末尾显示以 default: 开头的行:
- default:user:dev:rwx 表示新创建的文件将自动继承 dev 用户的 rwx 权限
- default:mask::rwx 表示默认 mask 值,它限制后续新增 ACL 条目的实际生效范围
没有 default: 行,说明该目录未启用默认 ACL。
验证 ACL 是否生效的小技巧
- 用 getfacl 查完后,再执行 ls -l —— 若文件权限末尾出现 +(如 -rw-rw-r--+ ),说明 ACL 已启用
- 对比 getfacl 输出中的 mask 和各条目权限:实际生效权限 = 条目权限 & mask。例如某 user:alice:r-x,但 mask::r--,则 alice 实际只有 r 权限
不复杂但容易忽略。











