我如何知道 www-data 可以对我的 /var/www 文件夹做什么?

我如何知道 www-data 可以对我的 /var/www 文件夹做什么?

当我运行ls -lwww文件夹及其中的所有内容时,我看到 root:root 是所有者/组

当我运行时ps aux | grep apache2,我得到了第一个由 root 拥有的进程(我认为这是正常的,但为什么它由 root 拥有而不是 www-data 拥有?)并且我得到了由 www-data 拥有的另外 6 个进程。

现在,由于ls -l /var/www显示-rw-r--r--,它应该意味着www-data没有写权限,因为它在“世界”中(也不在“根”组中)。

但是,如果在我的 Web 应用程序中,用户可以上传图像,我想里面应该有一个/www名为“uploadedpics/”的文件夹www-data,并且对该文件夹具有写权限,对吗?

因此,如果用户和组root:root属于/www文件夹,我如何创建www-data可以写入的子目录?

非常感谢你的帮助

答案1

第一个由 root 拥有的 Apache 进程是 Linux 早期计算的产物,其中 root 用户是唯一可以绑定到 1024 以下端口的帐户。提供内容的进程在 www 用户下运行。

要允许对文件夹的写访问,请将所有者或组更改为 www 用户并执行 chmod 775 或类似操作。

答案2

您可以将新文件夹组更改为 www-data ( sudo chgrp www-data <your-folder>),并授予该组 w 权限 ( sudo chmod g+w <your-folder>)。

另一种方法(我更喜欢)是使用 ACL(man setfacl如果您想这样做,请了解更多详细信息)。

相关内容