我的知识记录

Linux系统设置了只读文件还是被修改_排查方案_原因与防护

Linux的文件权限系统是网站安全防护的重要手段,但很多站长对权限的理解停留在chmod命令层面,以为设置了444就万无一失。实际上,root用户可以修改任何文件,chattr属性可以被root解除,文件系统可以被重新挂载为可写,进程可以通过文件描述符修改已经打开的文件。了解这些绕过方式,才能有针对性地加固防护。

第一种常见原因是root用户或具有同等权限的进程修改了文件。Linux的权限检查对root用户无效,root可以读写任何文件,无论权限设置为多少。如果攻击者通过漏洞获取了root权限,或者网站运行在root用户下(这是非常危险的配置),那么只读权限形同虚设。解决方法是确保网站运行在普通用户下,不要使用root启动Web服务,同时严格限制root登录方式,使用密钥登录并禁用密码登录。

排查只读文件被修改的第一步是确认修改方式。使用stat命令查看文件的修改时间(mtime)、属性改变时间(ctime)、访问时间(atime)。如果ctime发生了变化,说明文件的权限或属性被修改过,可能是chmod或chattr操作。使用lsattr查看文件的扩展属性,确认i属性是否还在。使用auditctl配置文件审计规则,记录对该文件的所有操作,包括打开、修改、属性变更,这样下次被修改时就能知道是哪个进程、哪个用户做的。

第四步是使用文件完整性监控工具。推荐使用AIDE(Advanced Intrusion Detection Environment)或Tripwire,这些工具会在初始化时记录所有文件的哈希值、权限、属性,之后定期扫描对比,发现文件被修改时发出告警。也可以使用inotifywait实时监控文件变化,当文件被创建、修改、删除时立即通知。对于关键文件(如配置文件、首页文件),可以设置更高级别的监控,确保第一时间发现篡改。

第三,文件系统防护:对于关键文件使用chattr +i设置不可修改属性,同时使用auditd监控chattr命令的执行。将网站程序文件放在只读分区,数据和上传文件放在可写分区,通过符号链接关联。使用SELinux或AppArmor强制访问控制,限制Web进程只能访问特定目录和文件,即使被入侵也无法越权操作。SELinux的配置虽然复杂,但防护效果显著,推荐有条件的服务器启用。

运维案例:客户的服务器设置了chattr +i但文件还是被改了,排查后发现攻击者获取了root权限,先执行chattr -i解除属性,修改文件后再chattr +i恢复属性,操作非常隐蔽。后来配置了auditd监控chattr命令,下次攻击者操作时立即告警,及时阻断了入侵。

安全提示:如果发现只读文件被修改,很可能服务器已经被入侵且攻击者获得了较高权限。这时候不要只修改文件权限就完事,需要全面排查系统安全,清除后门。如果不确定是否清除干净,最稳妥的方案是备份数据后重装系统,从干净的环境重新部署。

Linux系统设置了只读文件还是被修改_排查方案_原因与防护

标签:

更新时间:2026-08-26 21:16:21

上一篇:.htaccess错误导致500?htaccess错误500 internal server error,已解决

下一篇:宝塔面板无法访问_宝塔面板无法访问排查