Linux 日志中出现 “权限拒绝 / Permission denied” 是非常常见的现象,本质原因是:某个进程或用户试图访问它没有被授权访问的文件、目录、设备、端口或系统资源。下面按常见场景系统说明。
日志示例:
Permission denied: /var/log/nginx/access.log
原因:
600)x)常见于:
✅ 解决思路:
ls -l /var/log/nginx
ps aux | grep nginx
确认进程用户 vs 文件属主。
例如:
/root日志示例:
bind() to 0.0.0.0:80 failed (13: Permission denied)
✅ 解决方式:
sudosetcap 授权setcap 'cap_net_bind_service=+ep' /usr/sbin/nginx
即使 ls -l 显示权限正常,仍被拒绝。
日志示例:
avc: denied { read } for pid=...
常见于:
✅ 排查:
getenforce
ausearch -m avc -ts recent
日志:
Read-only file system
Permission denied
原因:
✅ 检查:
mount | grep "on / "
dmesg | grep "read-only"
--usersecurity_opt示例:
open /var/log/app.log: permission denied
✅ 解决:
user: "1000:1000"例如:
/var/log 需要 adm 组dialoutgroups 用户名
journalctl -xe
/var/log/messages
/var/log/syslog
ps -ef | grep 进程名
sudo -u 用户名 cat /path/to/file
Permission denied: /var/log/nginx/error.log
原因:
www-data 运行root解决:
chown www-data:adm /var/log/nginx/*.log
Linux 日志中的“权限拒绝”≠ 文件权限错误,而是“进程身份 + 资源权限 + 安全策略”三者不匹配。
如果你愿意,可以把具体日志内容 + 系统版本 + 出问题的服务贴出来,我可以帮你精准判断是哪一种。