我正在运行 Ubuntu 16。
我有一个面向公众的网站,设置在 /var/www/html/
正在运行一些 CMS 软件,安装在 /var/www/html/cms
为了增加安全性,配置文件可以存储在 Web 根目录之外,因此我将它们移至 /var/www/config/
但是,CMS 要求 /var/www/config/ 具有 777 权限,因为它需要对其进行写入。(嗯,我认为这部分是由于我的用户配置 ubuntu 与 www-data,但 777 是唯一有效的权限)。
虚拟主机设置的 DocumentRoot 为 /var/www/html/
在 apache2.conf 中,我有:
<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
Header always append X-Frame-Options SAMEORIGIN
</Directory>
现在,我的问题是...这是否像我想象的一样安全?我很高兴将 cms 配置文件放在 DocumentRoot 之外,但必须赋予它 777 个权限,而 apache.conf 确实授予了 /var/www 的权限(即使没有指向那么低的 virtualHost 配置)。
我可以做:
a) 考虑修复权限/组,以便 cms 可以在 /var/www/config 目录上使用 755(或 775)权限运行?b) 修改 apache2.conf,使其不授予 /var/www/html(而只是授予 /var/www/html)?c) 满意并保持原样?
提前致谢
编辑
通过将 www-data 添加到 ubuntu 组:
usermod -a -G www-data ubuntu
然后我可以将 /var/www/config/ 的权限更改为 755,并且 cms 对这些权限感到满意。
但是我不确定我是否希望 www-user 拥有与 ubuntu 用户相同的权限...
进一步说明一下,文件和文件夹全部归 ubuntu 所有,因为这是具有 SFTP 访问权限来部署文件的用户(唯一用户)。如果我将所有权修改为 www-data,则每次部署新内容时,所有权都会恢复为 ubuntu。