![自動讓群組中的使用者在子樹中讀寫新目錄和文件](https://rvso.com/image/231046/%E8%87%AA%E5%8B%95%E8%AE%93%E7%BE%A4%E7%B5%84%E4%B8%AD%E7%9A%84%E4%BD%BF%E7%94%A8%E8%80%85%E5%9C%A8%E5%AD%90%E6%A8%B9%E4%B8%AD%E8%AE%80%E5%AF%AB%E6%96%B0%E7%9B%AE%E9%8C%84%E5%92%8C%E6%96%87%E4%BB%B6.png)
/data
我有一個想要與群組中所有使用者共享的目錄datagrp
。我已經設定了所有權限,現在我有
drwxrwsr-x 2 root datagrp 4.0K Apr 22 14:52 /data
現在所有用戶都可以在那裡讀寫,這沒關係。但是,如果使用者usera
建立資料夾/data/a
,則其他使用者無法寫入該資料夾,除非我手動設定權限。我希望這是自動的,這意味著/data
任何用戶都可以看到和修改裡面的所有內容datagrp
。如何才能做到這一點?
我已經嘗試過了
sudo chown :datagrp /data/
sudo chmod 770 /data/
sudo chmod g+s /data/
和
sudo setfacl -dm u::rw,g::rw,o::r /data
答案1
要么使用 ACL,要么用戶需要適當配置其 umask(可以為每個用戶的每個 shell 設置,以使事情變得更「有趣」)。如果選擇使用 posix 權限,一種可能是透過 cronjob 定期變更權限。
umaks 002
會設定 umask,以便在該 shell 中使用群組寫入權限建立檔案和目錄。
setfacl -m default:group:datagrp:rwx /data
如果想使用 ACL 可能會成功。
答案2
這個答案解決了我的問題。快速參考:
sudo mkdir /data # create the directory
sudo chown :datagrp /data
sudo chmod 770 /data
sudo chmod g+s /data
sudo setfacl -Rm g:datagrp:rwX /data # Add an ACL with rwx permissions for the group to all the files already there
sudo setfacl -d -Rm g:datagrp:rwX /data # Add a default ACL with rwx permissions for the group usershare for all files created from now on