首页/安全/应急响应速查/不可变属性(chattr +i)与删不掉的文件

不可变属性(chattr +i)与删不掉的文件

攻击者给木马文件加 i 属性防删除,删不掉时先看文件属性,再决定解锁与处置顺序。

应急响应速查安全更新于 2026-10-13

不可变属性是什么

ext 系列文件系统支持 inode 属性位,其中 i(immutable)会让文件连 root 都改不了、删不掉,必须先用 chattr -i 解除。攻击者常给木马、恶意计划任务文件加 i 位,防止管理员顺手清理或被升级覆盖;目录加 i 则阻止在其中新建和删除文件。典型表现是 rm 报 Operation not permitted,即使权限位看起来是 777。

基本信息

适用平台Linux(ext2/3/4 支持完整,XFS 仅部分属性)
查看命令lsattr 文件名 / attr -l 文件名
常见属性i 不可变、a 只允许追加、e extent(ext4 默认)
处置命令chattr -i 解锁后才能删除或修改
目录同样可加目录上的 i 会阻止新建与删除文件
不支持场景tmpfs、部分网络文件系统不保留属性位

典型使用场景

  • 删除木马文件或恶意计划任务时报 Operation not permitted
  • 排查「权限明明是 777 却改不动」的异常现象
  • 检查 cron、init.d、systemd 相关目录是否被属性位锁死
  • 处置前固定痕迹:属性位本身就是攻击者留下的证据
  • 排查升级失败原因,被加 i 的系统文件会让包管理器覆盖失败

查找并解锁被加锁的文件

查找并解锁被加锁的文件
lsattr /usr/bin/* /etc/cron.d/* /etc/cron.hourly/* 2>/dev/null | grep -- '---i'
lsattr -d /etc/cron.d /etc/init.d 2>/dev/null   # 目录本身是否被锁
attr -l /path/suspect.bin 2>/dev/null           # 另一种查看方式
sha256sum /path/suspect.bin                     # 解锁前先固定哈希
chattr -i /path/suspect.bin                     # 解除不可变
lsattr /path/suspect.bin                        # 确认标志已清除
rm -f /path/suspect.bin && echo removed         # 再进行删除

常见属性读法

属性含义排查价值
i不可变:不能修改、删除、改名root 也受约束,攻击者最常使用
a只允许追加内容只能往后加,日志类文件常见
eextent 映射ext4 默认属性,属正常现象
c内核透明压缩老系统上常见,需解释来源
d / sno dump / 安全删除少见,出现要核查是谁设置的
属性位保存在 inode 上,文件复制到别的文件系统后不会跟着走:处置时以本机 lsattr 输出为准,不要直接搬用其他主机的结论。
解锁前一定先记录:lsattr 原始输出、文件哈希、mtime 与所在目录清单。属性位本身就是攻击痕迹,一旦清除就再也无法证明当时被加过锁。

易错点

  • 删不掉就重启或重装:属性位随文件系统保留,重装前先把证据取完
  • 只解锁单个文件:目录上的 i 会阻止在其中创建新文件,需要逐项确认
  • 忽略 cron 目录下的属性位:被锁的恶意计划任务在解锁前会持续执行
  • 解锁后立即删除不做记录:丢失攻击者加锁手法与时间这一关键线索

数据来源与参考

  • chattr(1) 与 lsattr(1) 手册
  • e2fsprogs 文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌