如何通过 BTRFS 应用和使用丰富的访问控制列表

如何通过 BTRFS 应用和使用丰富的访问控制列表

我刚刚学习 Linux 上的丰富访问控制列表。我的直接目标是为该组的成员提供与子目录树(其中的所有文件和目录)所有者相同的权利。

我已经查看了 setfattr 和 getfattr 的手册页。这些手册页都没有提供可用 RichACL 的列表。 (我真的只对与 BTRFS 兼容的 RichACL 感兴趣。)

这是另一个好资源richacl:丰富的访问控制列表 - Linux 手册页 (7)这提供了一些背景。

我已经做了一些简单的例子,例如:

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

其次是:

getfattr test.txt

我知道这些操作不同于setfaclgetfacl

我还了解扩展文件属性有四个命名空间:

  • 用户
  • 值得信赖的
  • 安全
  • 系统

我知道 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

答案1

事实证明,主线 Linux 内核不支持 Rich ACL。

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

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

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

用于实施的补丁已被一次又一次地拒绝,并且没有人再致力于它们。

感谢 Reddit 用户 Progandy 提供此信息。

相关内容