AlmaLinux 9.1中Nginx访问404及Permission denied权限问题求助
AlmaLinux 9.1下Nginx访问站点报404(权限拒绝)问题解决
问题场景
在AlmaLinux 9.1中启动Nginx后访问站点出现404错误,日志记录权限拒绝信息:
2023/05/06 16:14:33 [crit] 248989#248989: *15900 stat() "/root/device_reservation_mgmt/html/index.html" failed (13: Permission denied)
尝试过chmod 755 /root/device_reservation_mgmt/、chown -R nginx:nginx /root/device_reservation_mgmt/等操作,切换到nginx用户执行stat仍提示权限拒绝;将html目录复制到/opt/html后root可正常查看,但问题仍未解决。
问题诊断
从Shell日志可定位核心原因:
/root目录权限为550(dr-xr-x---),仅允许root用户和root组访问,nginx用户不属于root组,完全无法进入/root目录——Linux文件系统要求对路径上的每一级目录都拥有执行权限,才能访问内部文件,因此即使子目录权限全开也无效。- 复制到
/opt/html后未调整目录权限或Nginx配置,导致nginx用户依然无法访问该目录下的文件。
解决方案
推荐方案:迁移网站目录并配置Nginx(安全合规)
这是最稳妥的做法,避免修改root目录权限带来的安全风险:
- 修复
/opt/html的权限,确保nginx用户能访问:chown -R nginx:nginx /opt/html chmod -R 755 /opt/html - 修改Nginx站点配置文件:
找到对应站点的配置文件(通常位于/etc/nginx/conf.d/或/etc/nginx/sites-available/目录下),将root指令指向/opt/html,示例配置:server { listen 80; server_name your_domain; root /opt/html; index index.html index.htm; # 其他站点配置... } - 验证配置并重启Nginx:
nginx -t systemctl restart nginx
不推荐方案(存在安全风险):临时开放root目录权限
如果必须将文件保留在/root目录下,可临时给/root目录添加其他用户的执行权限(不建议长期使用,会降低系统安全性):
chmod o+x /root
同时确保子目录和文件权限正确:
chown -R nginx:nginx /root/device_reservation_mgmt/html chmod -R 755 /root/device_reservation_mgmt/html
内容的提问来源于stack exchange,提问作者Donghua Liu
相关产品推荐
相关产品推荐

