Btrfs

如何通過 BTRFS 應用和使用豐富的訪問控制列表

  • January 13, 2021

我只是在學習 Linux 上的豐富訪問控制列表。我的直接目標是賦予組成員與子目錄樹(其中的所有文件和目錄)所有者相同的權限。

我已經查看了 setfattr 和 getfattr 的手冊頁。這些手冊頁都沒有提供可用 RichACL 的列表。(我真的只對與 BTRFS 兼容的 RichACL 感興趣。)

這是另一個很好的資源richacl:Rich Access Control Lists - Linux Man Pages (7),提供了一些背景知識。

我做了一些簡單的例子,例如:

setfattr -n user.comment -v "this is a comment" test.txt

其次是:

getfattr test.txt

我知道這些操作與setfacl和不同getfacl

我也了解擴展文件屬性有四個命名空間:

  • 使用者
  • 值得信賴
  • 安全
  • 系統

而且我知道 RichACL 比 POSIX ACL 更豐富。ACL 與擴展屬性不同(但它們可能儲存在 xattr 名稱空間中)。我知道我正在嘗試做的細節取決於文件​​系統,這沒關係。我只關心 BTRFS。

但是,我還沒有足夠的資訊來做任何有用的事情。如前所述,我要做的第一件事是賦予該組與文件或目錄**所有者相同的所有權限。**然後我想讓那些繼承到這些目錄中的子目錄和文件。

一些具體的例子包括:如果我認為合適的話,我希望組成員能夠執行類似的操作chmodchatttr甚至是。chown

編輯:作為您回答的一部分,還請解決用於讀取和設置豐富 acl 的實用程序(程序)。我已經看到setfattr與豐富的 acl 結合使用。但是,我也看到了對名為的實用程序的引用,setrichacl但我在 Arch Linux 中沒有找到這樣的實用程序。

ACL 的庫存核心配置資訊:

$ zcat /proc/config.gz | grep -i acl
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_F2FS_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_JFFS2_FS_POSIX_ACL=y
CONFIG_EROFS_FS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_CEPH_FS_POSIX_ACL=y
CONFIG_9P_FS_POSIX_ACL=y

事實證明,主線 Linux 核心不支持 Rich ACL。

來源:https ://wiki.samba.org/index.php/NFS4_ACL_overview#Linux

此外,截至 2019 年 5 月 2 日:

回复:PATCH overlayfs:忽略 ext4 upperdir 中的空 NFSv4 ACL - Andreas Gruenbacher

用於實現的更新檔被一次又一次地拒絕,沒有人再處理它們了。

感謝 reddit 使用者 progandy 提供此資訊。

引用自:https://unix.stackexchange.com/questions/627572