Linux

在 /var/www 中處理 Apache 2 的使用者 www-data 權限的最佳方法是什麼?

  • May 10, 2018

有沒有人有一個很好的解決方案來處理文件/var/www?我們正在執行基於名稱的虛擬主機,Apache 2 使用者是www-data

我們有兩個普通使用者和 root。因此,當弄亂 中的文件時/var/www,而不必…

chown -R www-data:www-data

…一直以來,有什麼好的方法來處理這個?

補充問題:那麼您在權限上的核心程度如何?

這一直是協作開發環境中的一個問題。

嘗試擴展@Zoredache 的答案,因為我自己嘗試了一下:

  • 創建一個新組 (www-pub) 並將使用者添加到該組

groupadd www-pub

usermod -a -G www-pub usera ## 必須使用 -a 附加到現有組

usermod -a -G www-pub userb

groups usera ## 顯示使用者組

  • 將 /var/www 下所有內容的所有權更改為 root:www-pub

chown -R root:www-pub /var/www ## -R 用於遞歸

  • 將所有文件夾的權限更改為2775

chmod 2775 /var/www ## 2=set group id, 7=rwx for owner (root), 7=rwx for group (www-pub), 5=rx for world (包括apache www-data user)

設置組 ID ( SETGID ) 位 (2) 會導致組 (www-pub) 被複製到該文件夾中創建的所有新文件/文件夾。其他選項是 SETUID (4) 來複製使用者 ID,以及 STICKY (1) 我認為只允許所有者刪除文件。

有一個-R遞歸選項,但不會區分文件和文件夾,因此您必須使用 find,如下所示:

find /var/www -type d -exec chmod 2775 {} +

  • 將所有文件更改為 0664

find /var/www -type f -exec chmod 0664 {} +

  • 將使用者的 umask 更改為 0002

umask 控制預設的文件創建權限,0002 意味著文件將有 664 和目錄 775。設置這個(在我的例子中通過編輯umask底部的行/etc/profile)意味著一個使用者創建的文件將可以由 www-中的其他使用者寫入組而不需要chmod他們。

通過創建文件和目錄並驗證所有者、組和權限來測試所有這些ls -l

注意:您需要註銷/登錄才能使您的群組更改生效!

引用自:https://serverfault.com/questions/6895