getfacl是Linux中查看文件或目录ACL的专用命令,显示owner、group、user、group、mask、other等详细权限信息,支持单文件、多文件及递归查看,并可结合less/grep过滤,需文件系统启用acl支持。

在 Linux 中,getfacl 是专门用于查看文件或目录访问控制列表(ACL)的命令,比 ls -l 显示更详细的权限信息,尤其适用于启用了 ACL 的文件系统(如 ext4、xfs)。
基本用法:查看单个文件或目录的 ACL
直接运行:getfacl filename
例如:
输出中会包含:
- file: 文件路径
-
owner: 文件所有者(如
user:alice) -
group: 所属组(如
group:devs) -
user: 额外指定用户的权限(如
user:bob:r-x) -
group: 额外指定组的权限(如
group:qa:rw-) - mask: 实际生效的最大权限掩码(限制所有 named user/group 权限上限)
- other: 其他用户权限(等同于传统权限中的 “others”)
查看多个文件或递归查看目录下所有内容
一次查多个文件:
递归查看目录及其子项(慎用,输出量大):
getfacl -R /path/to/dir建议配合 less 或 grep 过滤关键信息,例如:
识别 ACL 是否启用及有效权限
如果文件没有设置额外 ACL 权限,getfacl 仍会显示基础 owner/group/other 三行,但不会出现 user: 或 group: 扩展条目。此时 ACL 未被实际使用,权限完全由传统 chmod 控制。
注意:
- 若输出末尾出现 # file: ... 和 # owner: ... 等注释行,说明该 ACL 是通过 setfacl --restore 恢复的;
- 如果看到 mask::--- 且其他 named 权限非空,说明这些 ACL 条目当前被 mask 屏蔽,实际不生效。
常见问题提示
- 执行
getfacl报错Operation not supported:文件系统未挂载 ACL 支持,需检查mount输出中是否含acl选项,或重新挂载时添加defaults,acl; - 普通用户无法查看他人文件的 ACL?默认可以——只要对该文件有读权限(或执行权限对目录),
getfacl就能读取其 ACL 元数据; - 输出中
user::rwx的双冒号表示“默认所有者”,而user:alice:r-x的单冒号表示“额外授权用户”。


















