首页/安全/取证与溯源速查/文件属性(chattr/lsattr)核查
Linux 取证135 条

文件属性(chattr/lsattr)核查

不可变(+i)与仅追加(+a)属性可阻止日志与配置被修改,攻击者也会用它锁定后门;核查属性是完整性检查的一部分。

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

文件属性为何要单独核查

ext2、ext3、ext4 等文件系统支持在文件上设置扩展属性,其中 +i(不可变)禁止任何写入、改名与删除,+a(仅追加)只允许在文件末尾追加内容,常用于保护日志与关键配置不被篡改。这些属性对 root 同样生效,必须先清除属性才能修改文件,因此既是加固手段,也会被攻击者用来锁定后门文件与替代二进制,让清理工作卡住。核查属性用 lsattr 与 chattr,重点是系统关键文件与事件时间窗内被改动的文件。

基本信息

查看命令lsattr <文件>、lsattr -R <目录>
设置命令chattr +i / -i / +a / -a
权限影响对 root 同样生效,修改前必须先清除属性
文件系统ext2/3/4 支持,XFS 部分属性含义不同

典型使用场景

  • 核查 /bin、/usr/bin 下是否存在被锁定的替代二进制
  • 确认关键日志是否被设为仅追加,评估篡改难度
  • 排查为什么某文件无法删除或修改,定位属性原因
  • 检查事件时间窗内新增或改动的文件是否带异常属性
  • 评估清理方案:确认清除哪些属性、是否会被审计记录

核查属性

核查属性
lsattr /etc/passwd /bin/bash /var/log/auth.log 2>/dev/null      # 关键文件属性
lsattr -R /etc/cron.d 2>/dev/null | head -20                    # 目录递归查看
find / -xdev -type f -newermt '-7 days' -exec lsattr {} + 2>/dev/null \
  | grep -E '^[^ ]*i' | head -20                                # 近期改动且带 i 属性
lsattr -d /var/log 2>/dev/null                                  # 目录本身的属性
# 确需清除时先记录原属性:chattr -i <文件>,处置后按需恢复

属性字符读法

字符含义判读要点
i不可变,禁止写入与删除出现在系统二进制上需重点解释
a仅追加,只能往后写日志文件上的常见加固方式
e使用扩展区,ext4 默认常规属性,不代表异常
-该项未设置逐字符位置对应固定属性
只有部分文件系统支持这些属性,XFS 上可设置的属性集与 ext 系列并不相同,跨文件系统比对时要先确认支持范围,否则差异会被误读为异常。
清除或设置属性都需要 root,操作本身可能被审计记录;处置前先用 lsattr 拍照留存原始属性,再决定是否调整,避免现场状态被自己改变。
属性为 +i 的文件无法直接删除,常规清理命令会报错,处置流程要单列一步,先清除属性再删除,并把两步骤都写入记录。

易错点

  • 清理被锁定的后门时直接删除失败,未意识到属性原因
  • 只查关键目录,事件窗内新增文件上的异常属性被漏掉
  • 在 XFS 上按 ext 的属性含义解读,结论不成立
  • 调整属性前未记录原值,事后无法证明现场未被改动

数据来源与参考

  • man 1 chattr(e2fsprogs)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌