我这里有一个奇怪的情况...我在 debian 下设置了多个 Apache 实例:
- 默认安装保持原样 - 但已禁用并停止
- 自定义实例(apache2-apps)
这个想法是将每个实例作为不同的用户运行——默认的 apache 将运行第三方应用程序(WordPress、Drupal、OpenCart 等)
第二种是运行我们定制的内部应用程序,这些应用程序可以处理高度专有的数据......
这种设置背后的想法/希望是将应用程序与网站软件隔离开来——无需借助虚拟机(因为我已经在虚拟机中运行了),而且设置起来更容易、更安全?然后是 Apache VirtualHost 和/或 PHP CGI
无论如何...我遇到的问题是 /var/www 目录需要:
1. 755 permissions which make it readable by OTHER
--- OR ----
2.I need to make www-data or www-apps an owner or group of this base directory.
我当前的文件结构如下:
/var
/www (user/group: webmin => RWXRWX--X)
/applications (user/group: www-apps)
/websites (user/group: www-data)
这个设置让我相信我可以将默认的 apache 安装配置为 docroot/var/www/网站和 apache2-apps docroot/var/www/应用程序
每个都有不同的用户/组(www-数据和www-应用程序) 从而隔离面向公众的网站可能发生的任何安全漏洞。
我遇到的问题是当我将每个 apache 实例的 docroot 更改为指向:
/var/www/applications
/var/www/websites
如果我删除 /var/www 上的“其他”读取/执行权限,即 770 -- 访问映射到上面列出的每个文档根目录的 URI 时,apache 会给我一个“禁止 403”错误。我不确定我是否理解为什么……上面每个文档根目录都有 775 权限
有人能解释一下我为什么会遇到这个问题吗?我不明白权限是如何工作的?两个 apache 配置都没有指向 /var/www,而是每个实例都指向其各自更深一层的目录。
亚历克斯
答案1
当访问某个目录时,所有较高级别的目录也至少需要该用户(或组)具有执行权限,否则应用程序不允许切换到该目录或该目录下的目录。