网站目录权限已经放开到 777,程序仍然报无法写入,换目录又正常。日志里能对上时间点,这种反而好排。

SELinux 的安全上下文限制了进程访问路径,文件权限并不是唯一约束。这一点先确认清楚,后面就不用反复试。

getenforce
ls -Z /var/www/html
audit2allow -w -a
restorecon -Rv /var/www/html

「Linux 权限与 SELinux」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

别只看报错的最后一行,往上看几行,真正的起因通常在上面。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。改完隔一天再看一次,当场正常不代表能稳住。

处理上按这个顺序:查看审计日志确认拦截记录;修正目录上下文;必要时调整策略而不是直接关闭。

结果对不对很好判断,写入恢复正常,审计日志中不再出现被拒绝的记录。

作者 9823189