![Apache 多實例-權限問題](https://rvso.com/image/652659/Apache%20%E5%A4%9A%E5%AF%A6%E4%BE%8B%EF%BC%8D%E6%AC%8A%E9%99%90%E5%95%8F%E9%A1%8C%20.png)
我這裡有一個奇怪的情況...我在 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 文檔根目錄/var/www/應用程式
每個都有不同的使用者/群組(www-數據和www-應用程式分別),從而隔離面向公眾的網站可能發生的任何安全漏洞。
我遇到的問題是當我將每個 apache 實例的文檔根更改為指向:
/var/www/applications
/var/www/websites
如果我刪除 /var/www 上的“其他”讀取/執行權限,那麼 770 -- 在訪問映射到上面列出的每個文檔根的 URI 時,apache 會給出“Forbidden 403”錯誤。我不確定我明白為什麼......上面每個文件的 docroot 都有 775 權限
有人可以解釋為什麼我會遇到這個問題嗎?我不明白權限的工作原理是什麼? apache 配置都沒有指向 /var/www ,而是每個實例都指向其各自更深一層的目錄。
亞歷克斯
答案1
當存取一個目錄時,所有較高的目錄也至少需要該使用者(或群組)的執行權限,否則應用程式不允許切換到該目錄或該目錄以下的目錄。