什么是www-data用户?


Answers:


36

为了安全。

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

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

如果在root用户下运行,则所有文件都必须由root用户访问,并且用户必须是root用户才能访问文件。 以root作为所有者,受感染的Web服务器将可以访问您的整个系统。 通过指定特定的ID,受感染的Web服务器将只能完全访问其文件,而不能完全访问整个服务器。

如果您决定在其他用户ID下运行它,则该用户必须是文件的有效所有者才能获得适当的特权。对您的个人帐户拥有系统范围文件的个人所有权可能会造成混淆。

创建特定用户将使识别文件变得更加容易,并且可以一致地识别要chown添加到站点的新文件和文件夹的ID 。

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

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

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


2
太好了,谢谢您也尝试解释全球情况。
user61629

1
顺便说一句,什么是“特定ID”?
user61629

1
www-data。这就是为什么在您的问题中,他们要求您创建userID和groupID(如果不存在)。Apache2安装会自动创建用户。我不确定Nqinx。您可以使用来检查它是否存在iid -u www-data&&id -g www-data。如果存在,它将为您显示用户和组的ID号。在Ubuntu上,默认情况下,用户和组号为33
LD詹姆斯

www-data在作为所有者,也可以作为中提到的安全风险base-passwd的文件(见@穆鲁的答案),作为所有者通常已经阅读所有的服务网络内容/写访问。您可以删除对www-data所有者的写访问权,也可以使用其他所有者。www-data绝对需要对要提供的所有数据进行读取访问,但是如果您仅授予每个文件和目录所需的权限,而没有更多权限,那么您将更加安全。
Yuval

18

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

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

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


3
除了关于为什么不应该通过Webroot文件授予www数据访问权限的讨论;)
kitingChris

1
只是为了让我更具体,请问服务网页时Web服务器需要访问哪些服务?
user61629

2
@ user61629服务?根据服务的常规定义,Web服务器本身就是服务。
muru

1
@kitingChris是的,我只是base-passwd为此准备了文档
muru

1
www-data是服务httpd(apache)在您的系统上与之配合使用的用户(和组)。
kitingChris
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.