Access-Control-List

ACL 使用者更改寫入權限

  • November 6, 2009

我正在嘗試建立一個環境,​​讓多個使用者可以在一個網站項目上工作。此外,每個人都應該能夠為 apache 授予額外的寫入權限。

這個想法是每個人都使用單獨的登錄名(假設它是joe,jane並且mark在組中users)。apache 執行為apache:www. 每個人都必須對所有文件具有寫權限,apache 具有隻讀權限。現在,使用者選擇的文件必須是 apache 可寫的(重要的是 apache 不能對所有文件都擁有寫權限——安全問題)。

我嘗試了兩種設置,一種使用 ACL-s,一種使用 umask、公共組等。兩者都有相同的缺陷——使用者無法更改 apache 的寫入權限。

我嘗試的兩種方法:

  • setfacl -m default:group:users:rwx project/

這樣我就可以輕鬆管理所有使用者的寫入權限。無需額外設置,即可使用。無論文件所有者是什麼,團隊的每個使用者都可以修改文件。不幸的是,只有文件所有者才能為apache

  • umask 0002in .bashrc, 同一組中的所有使用者

基於簡單的權限,每個使用者都可以讀取和寫入所有文件。chgrp www ...apache需要有寫權限。再說一遍——只有文件所有者才能做到這一點。

所以我基本上是在尋找一種方法來授予多個使用者對g+w文件執行操作的權限。我想到了其他方法,例如:

  • 用於更改權限的 bash 腳本,由 sudo 執行。可以工作,但這是一個安全問題。限制它僅訪問項目目錄對我來說非常複雜。即使我這樣做了,遞歸模式等也會有並發症。

  • 目錄結構如下:

    • /project/www - apache htdocs ( setfacl -m d:group:users:rwx)
    • /project/data - 可由 apache ( setfacl -m d:user:apache:rwx)寫入
    • 目錄中的任何內容./www都必須由 寫入apache,必須在其中創建./data和符號連結——但這既不優雅也不方便

所以我正在尋找一種易於使用的解決方案。初始設置可能很複雜,但日常使用不應該。有什麼建議?

沒有任何東西允許非擁有、非 root 使用者更改文件權限。我會使用 sudo’d 腳本——不過,我看不出它有什麼難的。用於readlink -f規範化要更改的文件名,以便您檢查它的前綴是否正確,不要讓使用者實際指定權限,只需將其設為“授予 Apache 寫入權限”腳本。

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