Linux 命令:getfacl
getfacl 是 Linux 中查看文件/目录扩展访问控制列表(ACL)的专用命令,与 setfacl 配套使用,核心作用是读取并展示文件/目录的完整 ACL 权限配置,包括用户自定义 ACL 规则、默认 ACL 规则、传统 u/g/o 权限映射等所有权限相关信息,解决了传统 ls -l 无法查看完整 ACL 权限的问题,是 Linux 精细化权限管理中「配置 - 查看 - 验证 - 备份」流程的核心工具。
核心背景
Linux 传统权限查看命令 ls -l 仅能识别 ACL 权限的存在(权限列末尾的 + 号),但无法展示具体的 ACL 规则(如哪个用户/组拥有何种自定义权限、目录是否配置默认继承规则)。而 ACL 权限作为传统 u/g/o 权限的扩展,包含**用户 ACL、组 ACL、默认 ACL、掩码(mask)**等多个维度的配置,需要专用工具才能完整查看。
getfacl 正是为满足这一需求设计,它能精准解析并输出文件/目录的所有 ACL 相关信息,清晰展示每一条自定义权限规则、默认继承规则,同时映射传统 u/g/o 权限到 ACL 体系中,让运维人员直观验证 setfacl 的配置结果、排查权限分配问题,是 ACL 权限管理中不可或缺的查看工具。
核心特点
- 完整展示 ACL 信息:一次性输出用户 ACL、组 ACL、默认 ACL、掩码、传统权限映射等所有 ACL 相关配置,无信息遗漏;
- 与 setfacl 无缝兼容:精准识别
setfacl配置的所有规则,包括递归配置、默认规则、数字/字符权限配置; - 格式清晰规范:输出结果按固定格式分类展示,字段明确,易读易解析,支持直接导出为备份文件;
- 支持批量查看:可同时查看多个文件/目录的 ACL 权限,支持通配符匹配,适配批量权限验证;
- 保留原始配置:输出结果完全保留 ACL 的原始配置规则,无格式转换,可直接用于 ACL 权限恢复;
- 轻量高效:语法极简,无复杂参数,快速读取并展示权限信息,适配日常权限排查与验证。
基本语法
getfacl 语法极其简洁,无冗余选项,核心支持单文件/目录、多文件/目录、通配符匹配三种用法,直接执行即可输出完整 ACL 权限信息,是 Linux 中少有的「零学习成本」命令:
# 基础用法:查看单个文件/目录的 ACL 权限
getfacl 文件/目录
# 批量用法:查看多个文件/目录的 ACL 权限
getfacl 文件 1 目录 1 文件 2 目录 2
# 通配符用法:查看匹配规则的所有文件/目录的 ACL 权限
getfacl 通配符表达式
核心输出格式说明
getfacl 的输出结果按传统权限映射、自定义 ACL 规则、默认 ACL 规则分类,字段以 key: value 格式展示,核心字段含义明确,所有配置一目了然,典型输出格式如下:
# file: test.txt # 目标文件/目录名
# owner: root # 传统权限 - 所有者
# group: root # 传统权限 - 所属组
user::rw- # 所有者的 ACL 权限(对应传统 u 权限)
user:tom:rw- # 自定义用户 ACL 规则:用户 tom 拥有 rw 权限
group::r-- # 所属组的 ACL 权限(对应传统 g 权限)
group:dev:rwx # 自定义组 ACL 规则:组 dev 拥有 rwx 权限
mask::rwx # ACL 掩码:限制自定义用户/组的最大有效权限
other::r-- # 其他用户的 ACL 权限(对应传统 o 权限)
若目录配置了默认 ACL 规则,会在输出结果末尾增加 default: 开头的规则段,供新创建的子文件/目录自动继承:
default:user::rwx # 默认 - 所有者权限
default:user:tom:rx- # 默认 - 自定义用户 tom 的权限
default:group::r-x # 默认 - 所属组权限
default:group:dev:rwx # 默认 - 自定义组 dev 的权限
default:mask::rwx # 默认-ACL 掩码
default:other::--- # 默认 - 其他用户权限


