我正在運行Apache2 + userdir
上Ubuntu服務器14.04。用戶通過AD進行身份驗證,並可以通過SSH成功登錄到此服務器。每個用戶$HOME
具有700
權限以禁止用戶更改和讀取其他用戶文件。
目錄/home/public_html
被Apache(www-data:www-data
)擁有並有權775
所以每個用戶(組www-data
的成員)可以在他/她的用戶名在/home/public_html
創建自己的子目錄,並在他/她的$HOME
創建符號鏈接。下面是用於與用戶名jdoe43
的樣品用戶的示例:
/home/Domain/jdoe43
是$ HOME目錄(它有權限700)/home/public_html/jdoe43
是用戶jdoe43
一個public_html
目錄該符號鏈接到/home/Domain/jdoe43/public_html
UserDir
指令設置爲/home/public_html
。的userdir.conf
其餘默認爲Ubuntu的安裝,以下列出供參考:
<IfModule mod_userdir.c>
UserDir /home/public_html
UserDir disabled root
<Directory /home/public_html/*>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Require all granted
</Limit>
<LimitExcept GET POST OPTIONS>
Require all denied
</LimitExcept>
</Directory>
</IfModule>
我期待着找到合適的權限集的允許
- Apache進程訪問文件
/home/public_html/*
- 用戶有完全控制自己的
public_html
目錄
,並在同一時間不允許
- 用戶查看/修改其他用戶的$ HOME目錄
- 用戶查看/修改位於
/home/public_html/
另一個用戶的
public_html
目錄的內容的內容
所有我用不同的權限嘗試結束,或者與Apache不能訪問用戶的public_html
或與用戶至少讀取其他用戶的訪問$HOME
或public_html
。
我發現了幾個帖子建議使用SELinux的和配置文件系統拒絕訪問其他用戶的目錄通過許可的方式(像我$HOME
沒有將其設置爲700
),並在同一時間授權 Apache進程(通過selinux
)訪問/home/public_html
及其所有子目錄。我還發現一些資源指出,在最近版本的Ubuntu中,selinux
被替換爲apparmor
,所以,由於我在這項技術方面的經驗有限,因此我決定推遲對其實施的任何移動。
任何建議/建議,非常感謝。謝謝。
Ubuntu或serverexchange是這個問題的最佳場所。 –