核心方法是用chattr +i命令添加i(immutable)属性,设后连root也无法删除、覆盖、重命名或写入文件,必须用root权限执行并用lsattr确认生效,仅适用于静态关键文件。

Linux 中给文件设置不可修改的隐藏权限,核心方法是用 chattr +i 命令添加 i(immutable)属性。这不是普通权限或文件名隐藏,而是文件系统级的硬性锁定——设上后,连 root 都无法删除、覆盖、重命名、写入或创建硬链接,除非先解除该属性。
必须用 root 权限操作
普通用户执行会失败,必须用 sudo 或切换到 root:
sudo chattr +i /path/to/file- 例如保护关键配置:
sudo chattr +i /etc/fstab
确认是否生效只能靠 lsattr
ls -l、stat 看不出变化,唯一可靠方式是:
-
lsattr /path/to/file→ 输出含i(如----i--------e--)即生效 - 查整个目录:
lsattr /etc;递归查看:lsattr -R /var/log
别误用在活跃服务文件上
对正在被程序读写的文件加 +i 会导致服务异常:
- Nginx 启动时若
/etc/nginx/nginx.conf被锁死,会报错退出 - 日志轮转脚本尝试覆盖或重命名日志文件时也会失败
- 建议只用于静态关键文件(如
/etc/passwd、证书、固定策略脚本)
需要修改时务必先解锁
不能跳过这步,否则所有写操作都会提示 Operation not permitted:
sudo chattr -i /path/to/file- 改完再加回去:
sudo chattr +i /path/to/file - 批量处理目录(慎用):
sudo chattr -R +i /secure/dir—— 子目录和新文件全被锁死
不复杂但容易忽略


















