通过 Web 表单上传文件时,这些文件将归 Apache 进程所有(例如,Ubuntu 上的 www-data:www-data)。
我们希望用户拥有一个 public_html 目录。问题是,通过 Web 进程上传的任何文件都无法再由该用户编辑/管理。
我如何强制通过 Web 表单上传的文件的所有权始终为用户:www-data,其中用户当然是 Linux 用户。
我注意到在 /etc/apache2/envvar 中有两行我可以配置这些行:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
上传文件后,所有权由此产生吗?我是否可以为 APACHE_RUN_USER 设置一些内容,使其默认为通常在 /home/(user) 中找到的用户?
或者有更好的方法来处理这个问题?
答案1
作为一个有点激烈的措施,你可以使用mpm_itk以不同的用户身份运行网站的不同部分。
另一个更好的选择是使用文件 ACL 并设置默认权限,以允许用户随意更改文件。为此,您可以使用setfacl
:setfacl -m "default:user:$USERNAME:rwX" $DIRECTORY
。