Nginx 用户更改风险与步骤 | AI生成和翻译

Home 2026.02

Question: 如果我将 Nginx 的运行用户从 ‘www-data’ 改为 ‘lzw’ 会怎么样?

Answer:

你可以将 Nginx 改为以你自己的用户 lzw 运行。这将立即解决权限问题,因为 Nginx 将拥有与你相同的访问权限(你可以直接读取 /home/lzw/qDownloads 而不需要额外的 chmod 操作)。

然而,这种方法有显著的优点和缺点。以下是明确的对比以及如何安全地进行操作。

Advantages

Big disadvantages / security risks

仅建议在私人、非外网开放的机器或测试环境中使用此方法。

How to change Nginx to run as user lzw

主要有两种方法(选择其中之一):

Method 1 – 编辑 systemd service 文件(推荐,最简洁)

sudo systemctl edit nginx

这将打开一个编辑器。粘贴以下内容:

[Service]
User=lzw
Group=lzw

保存并退出。

然后重新加载 systemd 并重启 nginx:

sudo systemctl daemon-reload
sudo systemctl restart nginx

Method 2 – 编辑 nginx 主配置(旧方法 / 不太推荐)

编辑 /etc/nginx/nginx.conf

user lzw lzw;    # 第一个是 user,第二个是 group

然后重启:

sudo nginx -t
sudo systemctl restart nginx

After changing

检查 Nginx 现在是否以 lzw 身份运行:

ps aux | grep nginx
# 你应该看到类似这样的行:lzw   ... nginx: worker process

然后再次测试你的 /movies/ URL — 应该可以直接运行而不会出现 403 错误(假设目录存在且包含文件)。

Recommendation summary – 2026 best practice

Situation Recommended approach
个人 NAS / 家庭服务器 更改为用户 lzw (快速且简单)
任何面向公众 / 互联网的服务器 保持 www-data + 修复权限 (chmod/chgrp)
想要兼顾便利与安全 使用 chgrp www-data + chmod g+rx 方法

如果你决定使用用户 lzw,Method 1 (systemd override) 是最干净的方法,并且在软件包升级后依然有效。

References:


Back Donate