由于某种原因,当我上传到我的网站时,Apache 将文件保存为 userwww-data
和 group www-data
,而不是 usermyusername
和 group www-data
。
我该如何解决?
答案1
Apache 确实将文件保存为 www-data,因为它是运行时使用的用户安全原因。
您可以做的是为您的站点创建一个特定的用户和组,并使用 mod-ruid2 将您的虚拟主机配置为使用该用户。
安装方法:
sudo apt-get install libapache2-mod-ruid2
并在虚拟主机中配置它:
<Directory "/var/www/mydir">
RMode config
RUidGid my_new_user my_new_group
每个虚拟主机还可以有不同的用户,这在多虚拟主机服务器中可以很方便,例如,对于具有多个用户的多主机配置,或者了解虚拟主机是否正在发送垃圾邮件。
https://www.jamroom.net/brian/documentation/guides/1202/configuring-apache-with-mod-ruid2
至于文件的所有权,请继续阅读。
在虚拟主机的目录中,您还可以使用 setuid 或 SetGid 目录对其进行配置,对于您作为普通用户保留在那里且也属于该组的任何文件,将被强制分配给该组或用户,而不是您的普通组。
要强制用户所有权,请执行以下步骤:
chown my_new_user.my_new_group /var/www/mydir
设置目录的UID
chmod u+s /var/www/mydir
设置目录的GID
chmod u+g /var/www/mydir
答案2
您应该能够User
在配置中指定不同的配置,无论您想在何处使用它。
例子:
<VirtualHost 12.34.56.78>
User myusername
</VirtualHost>
答案3
嗯,我刚刚找到了一个解决方案。不确定哪个是最好的,但这就是我所做的,而且似乎工作正常:
sudo nano /etc/apache2/envvars
编辑以下行:
export APACHE_RUN_USER=myusername