ACL 使用者更改寫入權限
我正在嘗試建立一個環境,讓多個使用者可以在一個網站項目上工作。此外,每個人都應該能夠為 apache 授予額外的寫入權限。
這個想法是每個人都使用單獨的登錄名(假設它是
joe
,jane
並且mark
在組中users
)。apache 執行為apache:www
. 每個人都必須對所有文件具有寫權限,apache 具有隻讀權限。現在,使用者選擇的文件必須是 apache 可寫的(重要的是 apache 不能對所有文件都擁有寫權限——安全問題)。我嘗試了兩種設置,一種使用 ACL-s,一種使用 umask、公共組等。兩者都有相同的缺陷——使用者無法更改 apache 的寫入權限。
我嘗試的兩種方法:
setfacl -m default:group:users:rwx project/
這樣我就可以輕鬆管理所有使用者的寫入權限。無需額外設置,即可使用。無論文件所有者是什麼,團隊的每個使用者都可以修改文件。不幸的是,只有文件所有者才能為
apache
umask 0002
in.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 寫入權限”腳本。