首页/安全/取证与溯源速查/ACL 权限异常检查
Linux 取证135 条

ACL 权限异常检查

访问控制列表可以给指定用户单独授权,绕过常规权限模型的检查;关键文件出现额外 ACL 条目需要解释来源。

取证与溯源速查安全更新于 2026-10-13

ACL 为什么会绕过常规检查

访问控制列表允许在常规的用户与用户组权限之外,为指定用户或组单独授权。这意味着一个文件的权限位看起来完全正常,实际却可能因为一条 ACL 条目而对某个账号开放。核查敏感目录与密钥文件时必须把 ACL 一并看:getfacl 输出中的具名 user 与 group 条目、mask 值以及目录上的 default 条目都是判断依据。ACL 的变更属于元数据写入,可以用审计规则监视关键路径来捕获操作者。

基本信息

命令getfacl 查看,setfacl 设置
关注对象具名条目、mask 值、目录的 default 条目
基线关键目录通常不需要额外 ACL 条目
监控方式auditd 监视敏感路径的属性变更

典型使用场景

  • 检查敏感目录是否被额外授权给某个账号
  • 排查权限位正常但访问被拒绝或意外允许的情况
  • 确认备份恢复后 ACL 是否被重建
  • 核对共享目录上的 default 条目对新建文件的影响
  • 为访问控制整改提供现状清单

核查 ACL

核查 ACL
getfacl -p /etc/shadow /root/.ssh 2>/dev/null | head -30   # 关键文件与目录
getfacl -p /var/log/audit 2>/dev/null                        # 日志目录是否被额外授权
find /etc -maxdepth 2 -type f -newermt '-30 days' 2>/dev/null | head   # 近期改动的文件
find / -xdev -type f -newermt '-7 days' -exec getfacl -p {} + 2>/dev/null \
  | grep -E '^user:[^:]+:' | head -20                       # 找出具名 ACL 条目
getfacl -d /srv/share 2>/dev/null | head -10                 # 目录 default 条目

getfacl 输出读法

行含义判读要点
user::文件属主的权限与权限位一致属正常
user:name:具名用户的额外授权出现陌生账号需重点解释
mask::具名条目与组权限的上限mask 过宽会放大授权效果
default:目录下新建文件的默认 ACL影响后续所有新文件
ACL 与基础权限叠加生效,判断实际访问能力要同时看权限位与 ACL 条目;只看 ls -l 的输出会得出错误结论。
备份恢复过程会重新生成 ACL,出现异常条目时先确认该目录是否经历过恢复操作,再判断是否属于人为授权。
清理 ACL 条目属于权限变更,操作后可能导致业务进程无法访问文件;处置前先记录原始输出并在测试环境验证影响。
目录上的 default ACL 会被之后新建的文件继承,因此只在父目录设一条宽松条目,实际影响范围会随时间不断扩大;核查共享目录时应把 default 条目当作长期风险而不是一次性配置。

易错点

  • 只检查权限位不看 ACL,具名授权完整被漏掉
  • 忽略 mask 值,误判具名条目的实际生效范围
  • 把备份恢复重建的 ACL 当成人为授权
  • 清理 ACL 前未评估业务依赖,导致服务读写失败

数据来源与参考

  • man 1 getfacl(acl 工具包)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌