Permissions
自動設置組的寫入權限
我想創建一個目錄,多個使用者將能夠為相同的文件做出貢獻,並且我希望任何使用者創建的每個文件都預設對組中的每個人都具有寫權限。
我為一個目錄做了 setgid 並且所有新文件都有正確的組。但是,仍然會在組中創建沒有寫入權限的新文件。
這是我正在嘗試做的說明:
(作為根使用者):
mkdir --mode=u+rwx,g+rws,o-rwx /tmp/mydir chown root.mygroup /tmp/mydir touch /tmp/mydir/test.txt
然後當我這樣做時,
ls -la /tmp/mydir/
我得到drwxrws--- 2 root mygroup 4096 Sep 12 12:04 . drwxrwxrwt 11 root root 4096 Sep 12 12:04 .. -rw-r--r-- 1 root mygroup 0 Sep 12 12:03 test.txt
因此,對於由該組成員創作的所有新文件,永遠不會為該組填充寫入權限。我知道其他組使用者仍然可以通過
chmod g+w
對特定文件(test.txt
例如上面的範例)執行此操作來覆蓋它,這在大多數情況下是正確的行為,但是有沒有辦法為特定目錄遞歸地更改它並允許寫入權限為組以及該目錄中所有新文件的所有者自動設置?
新文件和文件夾的預設權限由umask確定。如果您將使用者的預設umask
002
配置為,則新文件和文件夾的組權限將設置rw
為。為所有使用者配置 umask 可以使用pam_umask
.要使用
pam_umask
,在基於 Debian 的發行版上,您應該/etc/pam.d/common-session
通過在文件末尾附加以下內容來配置模組:session optional pam_umask.so
然後在 中配置所需的 umask 值
/etc/login.defs
。請注意,使用 PAM 配置的遮罩並不適用於所有 Gnome 應用程序(有關詳細資訊,請參閱如何
umask
為整個 gnome 會話設置)。ssh
但是,從或tty
不受影響的會話啟動。如果您不想更改系統上的預設 umask,可以使用POSIX Access Control Lists。為目錄設置 ACL 時,新文件將繼承預設 ACL。可以使用
setfacl
和getfacl
分別設置和修改 ACL。某些文件系統可能需要額外的掛載標誌來啟用 ACL。