用户希望 PHP 能够在其目录中写入文件

用户希望 PHP 能够在其目录中写入文件

用户想让 PHP 在他的 /home/ 目录中写入文件,他建议我执行他的用户名在usermod -a -G www-data username哪里username。我不确定这是否是一个安全问题。

解决这个问题的最佳方法是什么?

答案1

建议的命令将用户添加到www-data组。这可能会给他带来意想不到的额外权限,特别是他将能够访问任何仅限于该www-data组的文件。这可能比你预期的要多得多。

例如,假设两个用户提出此请求并被添加到组中,并且每个用户都向组www-data开放。然后每个人都可以读取和写入对方的目录。~/www-sharedwww-datawww-shared

访问控制列表看起来更适合上述目的。这要求您的操作系统和文件系统支持 ACL。在 Linux 上,请确保文件系统已使用该选项挂载acl。然后用户可以运行setfacl -m user:www-data:rwx ~/www-shared以与用户共享目录www-data

不过,这个问题听起来像是许多运行 Web 服务器的人以前遇到过的问题。因此,可能存在一个涉及 Apache 工具箱的更好的解决方案。

答案2

这不是一个好主意,因为用户 www-data 将位于该用户的组中。因此,Web 服务器可以操作该用户的所有文件。

此外,系统上的任何其他用户都可以通过简单的 php 脚本读取和写入给定用户的文件。

通常,授予 Web 服务器超出需要的写入/读取权限并不是一个好主意。因此,您可能希望仅在需要写入权限的目录(甚至文件)中扩大权限。例如,这可能是一个上传目录。

喜欢...

chgrp www-data /home/foobar/public_html/wordpress/uploads
chmod -R g+rwX /home/foobar/public_html/wordpress/uploads

相关内容