Linux 文件隐藏属性 chattr、lsattr 详解——锁住文件防误删(运维必备)
前言
很多人只知道 chmod、chown 改权限,却不知道 Linux 还有隐藏文件属性。普通权限能被 root 绕过,而 chattr 隐藏属性可以锁住文件,root 也无法删除、修改,是服务器防护、防误删、保护配置文件的核心命令。
一、命令简介
lsattr:查看文件隐藏属性
chattr:修改文件隐藏属性
适用场景:保护系统配置、保护日志、防止病毒篡改、防止误删重要文件。
二、核心参数(只记这几个就够了)
1. 加减号规则
+:增加属性-:移除属性=:设定唯一属性
2. 高频属性
i:不可修改(最核心!immutable),无法删除、改名、新增、修改内容
a:仅追加(append),只能追加内容,不能删除、修改原有内容
u:删除可恢复
s:彻底粉碎删除
三、实战1:i 属性(只读锁死,root 也删不掉)
场景:保护重要配置文件 /etc/profile、/etc/ssh/sshd_config
# 加锁 chattr +i test.txt # 查看属性 lsattr test.txt # 尝试修改、删除(全部失败) rm -f test.txt echo 123 >> test.txt # 解锁 chattr -i test.txt四、实战2:a 属性(日志专用,只能追加)
场景:日志文件只允许写入新日志,不允许篡改、删除历史记录
chattr +a log.txt # 可以追加 echo new log >> log.txt # 不能覆盖、不能删除 echo 123 > log.txt rm -f log.txt # 解锁 chattr -a log.txt五、目录属性实战
对目录加 i:目录无法删除、无法新建文件、无法改名
对目录加 a:目录只能新增文件,不能删除旧文件
六、生产最佳实践
1. 系统关键配置:chattr +i /etc/profile /etc/fstab
2. 日志文件:chattr +a *.log
3. 排查文件莫名篡改、删除,优先检查 chattr 隐藏属性
七、新手坑点
1.chattr 属性优先级高于 chmod 权限
2. 权限777的文件,加 i 依然无法修改
3. 忘记解锁会导致删文件、改文件报错,新手排查半天找不到原因
