这个坑值得记一笔。编辑主配置保存时报 Operation not permitted,用 root 身份也一样,ls 看权限明明是六百四十四,属主也是 root 本人。

原因不止一个,得分开看。文件被设成了不可变属性,谁都改不了;所在目录被加了只允许追加的属性;安全加固脚本批量加了属性,事后没有留下记录。

第一件事是查看文件属性

lsattr /etc/nginx/nginx.conf

去掉不可变属性

chattr -i /etc/nginx/nginx.conf

再往下改完按需恢复属性

chattr +i /etc/nginx/nginx.conf

末了核对目录是否也被锁

lsattr -d /etc/nginx

中途换过一次思路,把范围缩到最小的那一层,反而快了。

中间停过一次,把已经改的东西回滚干净,再重新来一遍。

同样的操作我在测试机上先走了一遍,线上只做验证过的部分。

改完先别撤,确认这几项。属性列表里的不可变标志消失,编辑保存成功,配置校验通过并且能正常重载。

加了不可变的文件连 root 都删不掉,加固之后要留一份属性清单;运维交接时这类隐藏状态最容易踩坑。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189