Linux系统设置了只读文件还是被修改_原因与防护_处理方法_运维笔记
Linux的文件权限系统是网站安全防护的重要手段,但很多站长对权限的理解停留在chmod命令层面,以为设置了444就万无一失。实际上,root用户可以修改任何文件,chattr属性可以被root解除,文件系统可以被重新挂载为可写,进程可以通过文件描述符修改已经打开的文件。了解这些绕过方式,才能有针对性地加固防护。
第二种原因是chattr +i属性被解除。chattr命令设置的不可修改属性(immutable)确实可以防止文件被修改、删除、重命名,但这个属性只有root可以设置和解除。如果攻击者获得了root权限,执行chattr -i就能解除属性,然后修改文件。更隐蔽的方式是攻击者不解除属性,而是直接替换文件:删除原文件(需要先解除i属性)或者创建一个同名文件替换。解决方法是除了chattr +i,还需要监控chattr命令的执行,使用auditd记录文件属性变更。
排查只读文件被修改的第一步是确认修改方式。使用stat命令查看文件的修改时间(mtime)、属性改变时间(ctime)、访问时间(atime)。如果ctime发生了变化,说明文件的权限或属性被修改过,可能是chmod或chattr操作。使用lsattr查看文件的扩展属性,确认i属性是否还在。使用auditctl配置文件审计规则,记录对该文件的所有操作,包括打开、修改、属性变更,这样下次被修改时就能知道是哪个进程、哪个用户做的。
第二,系统权限加固:禁用root直接登录,使用sudo授权普通用户执行管理操作。配置密码复杂度策略和登录失败锁定。关闭不必要的系统服务和端口。配置防火墙只允许必要的IP访问SSH端口。定期更新系统安全补丁。这些基础加固能大幅降低被入侵获取root权限的概率。
运维案例:客户的服务器设置了chattr +i但文件还是被改了,排查后发现攻击者获取了root权限,先执行chattr -i解除属性,修改文件后再chattr +i恢复属性,操作非常隐蔽。后来配置了auditd监控chattr命令,下次攻击者操作时立即告警,及时阻断了入侵。
安全提示:如果发现只读文件被修改,很可能服务器已经被入侵且攻击者获得了较高权限。这时候不要只修改文件权限就完事,需要全面排查系统安全,清除后门。如果不确定是否清除干净,最稳妥的方案是备份数据后重装系统,从干净的环境重新部署。

更新时间:2026-08-27 09:42:19