如何在 ZFS 資料集上使用 setfacl 來設定 UNIX 樣式 chmod 770 的等效項?

如何在 ZFS 資料集上使用 setfacl 來設定 UNIX 樣式 chmod 770 的等效項?

我正在嘗試用於setfacl設定不同 ZFS 資料集的權限,我希望這些 ACL 權限相當於 UNIX-style chmod 770

什麼setfacl命令可以完成此操作,getfacl如果我要正確執行此操作,應顯示哪些 ACL?

我正在運行 FreeNAS 11.0 和 Samba 4.6.4。

答案1

注意:以下內容來自 Solaris 系統,但結果也應該適用於 BSD(您需要使用getfacl/setfacl而不是ls/ chmod)。


新建立的預設權限(文字)文件是:

   owner@:rw-p--aARWcCos:-------:allow
   group@:r-----a-R-c--s:-------:allow
everyone@:r-----a-R-c--s:-------:allow

如果您使用chmod 0770 /path/to/file,您將得到:

   owner@:rwxp--aARWcCos:-------:allow
   group@:rwxp--a-R-c--s:-------:allow
everyone@:------a-R-c--s:-------:allow

本質上,為所有者和群組添加了執行(x),從每個人中刪除了讀取(r),並為群組添加了寫入(w)和追加(p)。


為一個目錄,它看起來如下:

   owner@:rwxp-DaARWcCos:-------:allow
   group@:r-x---a-R-c--s:-------:allow
everyone@:r-x---a-R-c--s:-------:allow

並且修改後:

   owner@:rwxp-DaARWcCos:-------:allow
   group@:rwxp-Da-R-c--s:-------:allow
everyone@:------a-R-c--s:-------:allow

在這裡,讀取(r)和執行(x)從每個人中刪除,而所有者和群組具有與檔案情況相同的權限,儘管添加了delete_child(D)權限(這來自目錄)。

相關內容