什么是 www-data 用户?

use*_*380 64 permissions users webserver

我正在研究如何在 Ubuntu 16.04 上使用 uWSGI 和 Nginx 服务 Django 应用程序。在文章的“为 uWSGI 创建 systemd 单元文件”的末尾,他们讨论了www-data用户。这是什么,为什么重要?

L. *_*mes 63

为了安全。

这些文件不是世界可写的。它们仅限于文件的所有者进行写入。

Web 服务器必须在特定用户下运行。该用户必须存在。

如果它在 root 下运行,那么所有文件都必须可以被 root 访问,而用户需要是 root 才能访问这些文件。 由于 root 是所有者,受感染的 Web 服务器将可以访问您的整个系统。 通过指定特定 ID,受感染的 Web 服务器将只能完全访问其文件而不是整个服务器。

如果您决定以不同的用户 ID 运行它,则该用户需要是文件的有效所有者才能获得适当的权限。将系统范围文件的个人所有权归于您的个人帐户可能会令人困惑。

创建特定用户可以更轻松地识别文件,并且可以一致地识别chown添加到站点的新文件和文件夹的ID 。

所有者的用户 ID名称无关紧要。无论选择或决定什么,都必须在 Web 服务器配置文件中进行配置。

默认情况下,所有者www-data的配置在 Apache2 的 Ubuntu 配置中。由于这是默认配置,您可以方便地了解 Web 文件所需的所有权。如果更改它,则必须更改站点中的文件以匹配。

我不运行Nginx,但由于它在 Ubuntu 存储库中,我确定它已经www-data以默认配置进行了测试。

  • 太好了,感谢您也尝试解释全球情况。 (2认同)
  • 这是“www-data”。这就是为什么正如您的问题一样,他们要求您创建 userID 和 groupID(如果不存在)。Apache2 安装会自动创建用户。我不确定**Nqinx**。您可以使用以下命令检查它是否存在:`iid -u www-data&&id -g www-data`。如果存在,它将显示用户和组的 ID 号。默认情况下,Ubuntu 上的用户和组编号为“33”。 (2认同)
  • 使用这些参数“cat /etc/group |”找到了“www-data”组名称 grep www-数据` (2认同)

mur*_*uru 34

www-data是默认情况下 Ubuntu(例如 Apache、nginx)上的 Web 服务器用于正常操作的用户。Web 服务器进程可以访问任何可以访问的文件www-data。它没有其他重要性。

base-passwd文档(/usr/share/doc/base-passwd/users-and-groups.txt.gz):

一些网络服务器作为 www-data 运行。Web 内容不应归该用户所有,否则受感染的 Web 服务器将能够重写网站。Web 服务器写出的数据将归 www-data 所有。

  • 除了关于为什么不应该通过 webroot 文件授予 www-data 访问权限的讨论;) (4认同)
  • @user61629 服务?根据服务的通常定义,Web 服务器本身就是一项服务。 (2认同)