Linux 计算机上用户托管网站的权限

Linux 计算机上用户托管网站的权限

我对托管机器具有 root 访问权限。我创建了一个用户帐户“abcd”,该用户的目录是:

/home/abcd/public_html

在 httpd.conf 中我有:

<VirtualHost *:80>
ServerName abcd.mysite.com
DocumentRoot  /home/abcd/public_html
</VirtualHost>

该用户在上述位置有一个网站。但他无法将图像上传到 /images 文件夹。

权限如下:

drwxrwxr-x

在图像上

答案1

/主页/abcd/public_html/图片归用户和组所有A B C D. Web 服务器正在以另一个用户和组身份运行(例如阿帕奇或者www-数据)。那么,Web 服务器可以写入该目录吗?

  • d读写rwx rx :用户权限不适用,因为 Web 服务器未以用户 abcd 身份运行
  • 读/写读写rx :组权限不适用,因为 Web 服务器未作为组 abcd 运行
  • 权限接收:则必须应用其他权限,并且它们不允许 Web 服务器对其进行写入

您可能认为解决方案是chmod o+w /home/abcd/public_html/images,但这将允许任何用户写入图像,而您只想允许 Web 服务器写入图像。更好的方法是将拥有图像目录的组更改为 Web 服务器以之运行的组。由于您使用的是 apache,因此您应该能够使用 找到该组ps -o group $(pgrep httpd)。您可以忽略以 root 身份运行的一个进程。

如果这不清楚,也许 wordpress 文档更改文件权限会有所帮助。

相关内容