Permission denied 的定位与修复
读取、写入或执行文件时报 Permission denied;服务以非 root 用户运行时无法访问配置、日志或密钥。
id
ls -l /path/to/file
namei -l /path/to/file
stat /path/to/file
getfacl /path/to/file
getenforce
ausearch -m avc -ts recent
挂载与能力:
findmnt -T /path/to/file
getcap /path/to/binary
x)权限。ls -l 看起来却正常。noexec、nosuid,或容器以只读根文件系统运行。namei -l 逐级检查路径上的目录权限,最容易漏的是父目录。chmod,不要直接 chmod 777。getfacl/setfacl 查看和调整。ausearch 找 AVC,再用 semanage fcontext/restorecon 修上下文。noexec 或只读文件系统。ls / stat — 权限与属主namei — 路径逐级权限getfacl / setfacl — ACLausearch / restorecon — SELinux合上页面,先回答,再展开对照。
ls -l 看权限位正常,服务仍报 Permission denied,还应检查什么?chmod 777?namei -l 逐级检查路径上的目录权限,最容易漏的是父目录缺少 x 权限。还要看 ACL、SELinux/AppArmor 和挂载选项。chmod,777 会放大权限。也要先用 getfacl 确认是否是 ACL 覆盖了普通权限位。ausearch -m avc -ts recent 找 AVC 记录。再用 semanage fcontext/restorecon 修正 SELinux 上下文。