我的问题很笼统。假设我有一个 Linux 发行版 Web 服务器,其中有/var/www/
Web 目录。我使用超级用户帐户上传并解压 Joomla 安装.zip
文件夹。
Linux 系统上 Web 用户的用户名为www-data
。无论如何,我的问题是谁应该是 Linux 系统中文件的所有者?目前,因为我使用超级用户帐户解压文件,所以所有文件夹和文件都归超级用户所有,因此在 joomla 管理系统中显示为不可写。我只是有点犹豫是否要将用户设置www-data
为文件的所有者。这样可以吗?
仅供参考,在 Linux 中,我会用 更改文件夹和文件的所有者,chown
并用 更改组chgrp
。
谢谢!
答案1
没问题。使用 www-data 作为所有者和组:
cd /var
chown www-data:www-data www
无需使用 chgrp。
答案2
让所有 Joomla! 文件和目录对 Web 服务器可写是非常危险的。如果 Joomla! 或某些扩展中存在任何错误,攻击者将能够通过随机漏洞(利用 PHP 代码中的错误)移除/更改/删除任何文件。相反,所有文件都应该只能由 Web 服务器读取(即:所有者应该是 root 或您拥有的普通用户),并且所有权限对于目录应为 755,对于文件应为 644。只有缓存目录才应由 www 服务器可写(如果您使用缓存)。因此,应该对整个 Joomla 目录执行类似这样的操作(适用于 Ubuntu 和 spol.):
cd /var/www/whatever-your-joomla-root-dir-is find . -type f -exec chmod 644 {} \; find . -type d -exec chmod 755 {} \; chown -R www-data .
有关 unix 权限的更多信息,请参见http://forum.joomla.org/viewtopic.php?t=121470
您可能需要以与缓存目录相同的方式更改具有扩展或模板的目录,仅在安装/删除其中一个目录时更改所有权。
对于 Fedora、CentOS、RHEL、Scientific Linux 等,命令应该是:
chown -R apache .
您不需要更改所有权(这只能以 root 身份完成),只需通过此命令为其他人启用写权限(然后通过传递o-w
到同一命令恢复):
chmod -R o+w cache