Nginx 设置小权限 user,提高 VPS 安全性

本文内容测试环境为 Ubuntu 24.04

/etc/nginx/nginx.conf 的第一行通常为:

user www-data;

Linux 系统中,不同用户是独立的,可能无权读写对方的目录和文件

如果以用户名 zyx 登录 VPS,这时,Nginx 不能读写 zyx 的文件,zyx 也不能读写 www-data 的文件

如果我们把网页静态文件放在自己的用户目录下,Nginx 因为缺少读写权限,网站就可能显示 404 Not found

解决办法:

## 增加最小权限的用户 nginx
sudo adduser --system --no-create-home --shell /bin/false --group --disabled-login nginx

# 把 nginx 加到 zyx 组,这样 nginx 就有权限读写 zyx 的路径
sudo usermod --append --groups zyx nginx

# 修改 Nginx 配置文件
vi /etc/nginx/nginx.conf
# replace "user www-data;" to:
user nginx nginx;

# 使修改生效
sudo nginx -s reload

参考

2024-12-21