如何通過 BTRFS 應用和使用豐富的訪問控制列表
我只是在學習 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。
但是,我還沒有足夠的資訊來做任何有用的事情。如前所述,我要做的第一件事是賦予該組與文件或目錄**所有者相同的所有權限。**然後我想讓那些繼承到這些目錄中的子目錄和文件。
一些具體的例子包括:如果我認為合適的話,我希望組成員能夠執行類似的操作
chmod
,chatttr
甚至是。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 提供此資訊。