I am just learning about Rich Access Control Lists on Linux. My immediate objective is to give members of the group the same rights as the owner for a subdirectory tree (all files and directories within).
I have reviewed the man pages for setfattr and getfattr. Neither of those man pages provide a list of the available RichACL's. (I'm really only interested in the RichACL's that are compatible with BTRFS.)
This is another good resource richacl: Rich Access Control Lists - Linux Man Pages (7) that provided some background.
I have done simple examples such as:
setfattr -n user.comment -v "this is a comment" test.txt
I know that these operations are different from
I also understand there are four namespaces of extended file attributes:
And I know that RichACL's are richer than POSIX ACL's. And ACLs are different from extended attributes (but they may be stored in xattr name spaces). I know the specifics of what I'm trying to do are filesystem dependent, and that's OK. I only care about BTRFS.
However, I don't have enough information to be able to do anything useful yet. As mentioned, the first thing I want to do is to give the group all the same rights as the owner of a file or directory. Then I want to have those inherited to subdirectories and files in those directories.
Some specific examples include: I want the group members to be able to do operations like
chatttr or even
chown, if I deem that to be appropriate.
EDIT: as part of your answer, please also address the utilities (programs) used to read and set rich acl's. I have seen
setfattr used in connection with rich acl's. However, I have also seen reference to a utility named
setrichacl but I do not find such a utility in Arch Linux.
Stock kernel config info for ACL's:
$ 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