Linux 命令getfaclgetfacl 是 Linux 中查看文件/目录扩展访问控制列表ACL的专用命令与setfacl配套使用核心作用是读取并展示文件/目录的完整ACL权限配置包括用户自定义ACL规则、默认ACL规则、传统u/g/o权限映射等所有权限相关信息解决了传统ls -l无法查看完整ACL权限的问题是Linux精细化权限管理中「配置-查看-验证-备份」流程的核心工具。资料合集https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a核心背景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::---# 默认-其他用户权限常用选项getfacl 主打「轻量、简洁、高效」仅提供少量实用选项围绕输出格式、信息过滤、备份导出设计日常使用掌握4个核心选项即可覆盖99%的权限查看、备份场景无冗余功能易记易用选项核心作用实用场景-a仅显示访问ACL规则默认行为可省略常规权限查看无需显示默认ACL规则时使用-d仅显示默认ACL规则单独验证目录的默认继承规则配置排查新文件权限继承问题-p忽略输出结果中的注释行#开头的行导出ACL权限为备份文件时使用减少冗余信息便于恢复-R递归查看目录及其下所有子文件/子目录的ACL权限批量验证目录的递归ACL配置结果排查子文件权限不匹配问题-t以简洁格式输出ACL信息合并重复字段快速查看核心权限规则减少输出冗余适配终端快速排查关键默认行为getfacl默认执行-a选项即仅显示访问ACL规则若需查看默认ACL规则需显式指定-d输出结果默认包含注释行#file、#owner、#group便于识别目标对象导出备份时可通过-p忽略对目录执行时若配置了默认ACL规则会同时显示访问ACL和默认ACL需无-a限制。经典实操示例getfacl 的使用场景集中在ACL权限查看、配置验证、规则排查、权限备份四大核心场景所有示例均与setfacl联动贴合真实的精细化权限管理场景可直接复用。前置准备用setfacl配置测试ACL权限为后续查看做准备用ls -l确认目标对象是否存在ACL权限权限列末尾号# 配置测试ACL给tom配rw给dev配rwx为目录配置默认ACLtouchtest.txtmkdirtest_dir setfacl u:tom:rw g:dev:rwx test.txt setfacl -R -d u:tom:rx g:dev:rwx test_dir# 确认ACL存在ls-l test.txt test_dir# 输出示例-rw-rw-r-- 1 root root 0 月 日 时:分 test.txt场景1基础用法——查看单个文件/目录的完整ACL权限直接执行getfacl查看目标对象的所有ACL权限信息包括传统权限映射、自定义ACL规则是最常用的基础操作# 查看文件test.txt的ACL权限getfacl test.txt# 查看目录test_dir的ACL权限含访问ACL默认ACLgetfacl test_dir输出说明会清晰展示所有者、所属组、自定义用户/组规则、掩码、其他用户权限目录还会展示default:开头的默认规则。场景2精准查看——仅显示默认ACL规则通过-d选项单独查看目录的默认ACL规则无需显示访问ACL规则适配排查新文件权限继承问题的场景# 仅查看test_dir的默认ACL规则忽略访问ACL规则getfacl -d test_dir输出说明仅显示default:开头的规则段清晰验证目录的默认继承配置是否正确。场景3简洁查看——忽略注释行简洁格式通过-p忽略注释行-t简洁格式组合输出无冗余、高浓缩的ACL权限信息适配终端快速排查、脚本解析的场景# 简洁查看test.txt的ACL权限无注释行、合并重复字段getfacl -p -t test.txt输出说明仅保留核心权限规则无#开头的注释行字段格式更简洁便于快速抓取关键信息。场景4批量查看——递归查看目录所有子文件的ACL权限通过-R选项递归查看目录及其下所有子文件/子目录的ACL权限适配验证setfacl -R递归配置的结果排查子文件权限不匹配问题# 在test_dir内创建子文件/子目录用于递归查看touchtest_dir/sub.txtmkdirtest_dir/sub_dir# 递归查看test_dir及其下所有子对象的ACL权限getfacl -R test_dir输出说明会依次输出目录本身、子文件、子目录的ACL权限清晰验证递归配置的权限是否全部生效。场景5批量匹配——查看通配符匹配的所有对象的ACL权限支持通配符*/?批量查看匹配规则的所有文件/目录的ACL权限适配批量验证同类型文件的权限配置# 查看当前目录下所有txt文件的ACL权限getfacl *.txt# 查看当前目录下所有以test开头的对象的ACL权限getfacl test*场景6配置验证——核对setfacl的配置结果这是getfacl最核心的日常用法通过getfacl查看ACL权限核对与setfacl的配置是否一致验证权限是否成功生效排查配置错误# 原配置给tom配rw给dev配rwxsetfacl u:tom:rw g:dev:rwx test.txt# 验证配置结果核对是否存在user:tom:rw-、group:dev:rwx规则getfacl test.txt排查要点若规则未显示说明setfacl配置失败需检查文件系统是否支持ACL、命令语法是否正确。场景7权限备份——导出ACL权限为文本文件getfacl的输出结果可直接通过重定向导出为文本文件作为ACL权限的备份文件适配服务器迁移、权限恢复、配置备份的场景这是Linux运维的标准操作# 导出test_dir的ACL权限为备份文件-p忽略注释行减少冗余getfacl -p -R test_diracl_backup.txt# 查看备份文件内容catacl_backup.txt备份文件特性保留完整的ACL规则格式与setfacl --restore的恢复格式完全兼容可直接用于权限恢复。场景8对比排查——对比两个文件的ACL权限差异通过getfacl分别查看两个文件的ACL权限配合diff命令对比差异排查权限分配不一致的问题# 查看两个文件的ACL权限并导出为临时文件getfacl -p test1.txtacl1.txt getfacl -p test2.txtacl2.txt# 对比两个临时文件的差异排查权限不一致问题diffacl1.txt acl2.txt输出说明会清晰标注出两个文件的ACL规则差异点快速定位权限配置问题。高频组合用法getfacl 常与setfacl配置ACL、ls -l识别ACL存在、diff对比权限差异、chmod/chown传统权限管理搭配形成Linux精细化权限管理的完整流程覆盖「配置-查看-验证-备份-恢复-排查」所有环节是多用户服务器、开发/测试环境的标准操作组合。组合1ACL权限「配置-查看-验证」闭环这是最基础、最常用的组合完成ACL权限配置后的必做操作确保权限按预期生效# 步骤1用setfacl配置ACL权限递归默认规则setfacl -R -d u:tom:rx g:dev:rwx /data/code# 步骤2用ls -l确认ACL权限存在权限列号ls-l /data/code# 步骤3用getfacl验证配置结果核对所有规则getfacl -R /data/code# 步骤4测试权限用tom用户访问验证是否生效su- tom -cls /data/code touch /data/code/test.txt组合2ACL权限「备份-恢复」完整流程通过getfacl导出备份、setfacl --restore导入恢复实现ACL权限的完整备份与恢复适配服务器迁移、权限丢失场景# 步骤1备份目标目录的ACL权限-R递归-p忽略注释行getfacl -R -p /data/code/backup/acl_code_backup.txt# 步骤2模拟权限丢失清空ACL权限setfacl -R -b /data/code# 步骤3从备份文件恢复ACL权限--restore指定备份文件setfacl --restore/backup/acl_code_backup.txt# 步骤4验证恢复结果getfacl -R /data/code组合3传统权限ACL权限综合核对配合ls -l查看传统u/g/o权限用getfacl查看ACL精细化权限综合核对文件/目录的所有权限配置避免权限冲突# 步骤1查看传统u/g/o权限ls-l /data/file.txt# 步骤2查看ACL精细化权限getfacl /data/file.txt# 步骤3综合核对确认ACL权限不与传统权限冲突掩码配置合理组合4批量排查目录下的ACL权限异常通过find命令递归查找目录下所有配置了ACL权限的文件配合getfacl批量查看排查权限异常问题# 递归查找/data目录下所有带ACL权限的文件ls -l | grep find/data -type f -execsh-cls -l {} | grep -q getfacl -p {}\;输出说明仅显示/data目录下配置了ACL权限的文件的核心权限规则快速定位权限异常的文件。与ls -l的核心区别getfacl 与ls -l均为Linux权限查看工具但二者的功能定位、查看范围、适用场景完全不同ls -l是传统权限的「快速识别工具」getfacl是ACL权限的「完整解析工具」二者互补缺一不可核心区别如下命令功能定位查看范围核心能力识别ACL标识适用场景ls -l传统权限查看工具仅能查看传统u/g/o权限所有者、所属组、其他用户快速识别文件类型、传统权限、所有者、大小等基础信息权限列末尾号表示存在ACL权限快速查看基础权限、识别ACL权限是否存在getfaclACL权限专用查看工具完整查看传统权限映射所有ACL规则用户ACL、组ACL、默认ACL、掩码解析并展示所有ACL配置支持递归、批量、导出备份无额外标识直接展示ACL规则详情验证ACL配置结果、排查权限问题、备份ACL权限权限查看原则快速识别用ls -l快速查看传统权限并判断是否存在ACL权限号详细解析若存在ACL权限用getfacl查看完整的ACL规则做进一步的配置验证与问题排查综合核对结合ls -l和getfacl综合判断文件/目录的所有权限配置避免权限冲突。关键注意事项仅能查看已配置的ACL权限若目标对象无ACL权限getfacl会仅展示传统权限的ACL映射规则user::、group::、other::无自定义规则目录默认ACL规则仅对目录生效-d选项仅对配置了默认ACL的目录有效对文件或无默认ACL的目录执行会提示「无默认ACL」输出结果的权限位含义ACL权限的输出位为三位如rw-、rwx第三位为执行权限与传统权限的rwx定义完全一致掩码mask的作用mask字段限制自定义用户/组的最大有效权限若自定义规则的权限超出mask会以mask为准无权限查看的情况若当前用户无访问目标文件/目录的权限getfacl会提示「权限拒绝」需切换为root或拥有权限的用户备份文件的规范性导出ACL备份时建议添加-p忽略注释行和-R递归选项让备份文件格式更规范便于后续恢复与setfacl的版本兼容getfacl的输出格式与setfacl的恢复格式完全兼容不同Linux发行版间无格式差异可跨服务器备份恢复。总结getfacl 是 Linux 中ACL权限管理的专用查看工具与setfacl并称ACL权限管理的「黄金搭档」核心价值是完整解析并展示文件/目录的所有ACL权限配置解决了传统ls -l无法查看ACL详情的问题是精细化权限管理中「配置验证、问题排查、权限备份」的核心工具核心要点可总结为核心功能查看传统权限的ACL映射、自定义用户/组ACL规则、目录默认ACL规则支持递归、批量、导出备份与setfacl无缝兼容最常用法直接执行getfacl 目标查看完整ACL、-d仅看默认ACL、-R递归查看、-p忽略注释行用于备份输出格式按固定分类展示字段明确包含访问ACL、默认ACL目录、掩码等所有信息可直接导出为备份文件工具互补与ls -l快速识别、setfacl配置、diff对比搭配形成完整的权限管理流程实用原则配置ACL后必用getfacl验证、重要权限必用getfacl备份、权限异常必用getfacl排查。