核心配置文件权限必须设为640、属主root属组nginx,/etc/nginx/目录权限750,worker进程以非root用户运行,并禁止web路径暴露.conf文件。

核心配置文件(如 /etc/nginx/nginx.conf)必须防止未授权读取和篡改,关键是让只有运维人员能修改、Nginx 进程能读取、其他用户完全无权接触。
配置文件本身设为 640 权限
权限数字 640 表示:所有者(root)可读写,所属组(如 nginx 或 webadm)只可读,其他用户无任何权限。这样既保障 root 可维护,又允许运维组成员(通过组权限)安全编辑,同时杜绝敏感信息(如 upstream 密钥、代理凭证)被普通用户或 Web 进程读取。
- 执行命令:
sudo chmod 640 /etc/nginx/nginx.conf - 设置属主属组:
sudo chown root:nginx /etc/nginx/nginx.conf(若使用专用运维组,可改为webadm) - 对
/etc/nginx/conf.d/*.conf等 include 文件同样应用 640 和相同属组
整个配置目录统一收紧
/etc/nginx/ 是配置入口根目录,权限松散会绕过单个文件限制。它不能是 755 或更宽松——否则即使文件是 640,目录的“执行”权限可能被滥用(如遍历、探测子项)。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 目录权限设为 750:
sudo chmod 750 /etc/nginx/ - 递归确保子目录和文件归属一致:
sudo chown -R root:nginx /etc/nginx/ - 避免用
chmod -R 644 /etc/nginx/,这会把目录也变成 644(不可执行),导致 Nginx 启动失败
运行用户与权限解耦
Nginx 主进程以 root 启动来绑定 80/443 端口,但 worker 进程必须降权运行——否则一旦被攻陷,攻击者就能直接覆盖配置文件,使前述权限形同虚设。
- 在
nginx.conf全局块中明确指定:user nginx nginx; - 创建无登录能力的专用用户:
useradd -r -s /sbin/nologin -M nginx - 验证:
ps aux | grep nginx应显示 master 进程属 root,worker 进程属 nginx 用户
防范配置泄露与误暴露
即使权限正确,若配置被错误地放在 Web 可访问路径下(如 /var/www/ 或 /usr/share/nginx/html/),仍可能被直接下载。
- 禁止将
.conf文件放入任何root或alias指令映射的路径中 - 在 server 块中加防护规则,阻止访问配置类路径:
location ~ \.(conf|inc|bak|swp)$ { return 403; } - 定期检查是否意外暴露:
curl -I http://localhost/nginx.conf应返回 404 或 403










