Linux
/var/www/ 中的 Apache 伺服器文件
好吧…我已經設置了伺服器,並且在 /var/www/ 中有 4 個站點。根據這篇文章,每個站點目錄及其下面的文件都是 root:www-pub :
在 /var/www 中處理 Apache 2 的使用者 www-data 權限的最佳方法是什麼?
根據上述文章的指示,我的使用者 cdog 是 www-pub 的一部分,經過更多研究,我相信 umask 設置正確。
**問題 1:**在任何 /var/www/ 目錄中創建新文件都會授予我權限
cdog:www-pub -rw-r--r--
所有其他文件都是
root:www-pub -rw-rw-r--
我被引導相信(根據上面的文章)創建的任何新文件都將是後者。
問題 2大部分目錄,權限為
drwxrwsr-x
是 Joomla 目錄。登錄到 Joomla 後端會給我一大堆不可寫的目錄,這對於更新/安裝擴展/外掛等不利。
首先,為什麼我的文件沒有使用正確的權限創建?其次,為什麼 Joomla 目錄不可寫?
使用者的umask決定了新文件接收的權限。創建文件或目錄時,系統以最允許的權限(分別為 0666 和 0777)啟動,然後清除umask 中指定的位。因此,預設的 umask 022 會導致組和世界寫入位被清除,這就是您最終得到 0644 的原因。
要創建具有組寫入權限的文件,您需要將 umask 更改為 002(即只清除世界寫入權限)。這可以在特定的 shell 會話中使用 來完成
umask 002
,但這不會在會話中持續存在。有多種方法可以永久設置 umask。如果安裝並配置了pam_umask
/etc/login.defs
PAM 模組,您可以在以下位置進行設置:UMASK 002
否則,您可以在 shell 初始化腳本中設置它,
~/.bashrc
如果您只希望它應用於您的使用者,或者/etc/bash.bashrc
如果您希望它應用於所有使用者:umask 002