[LU-13862] NFSv4 ACL support Created: 05/Aug/20  Updated: 28/Mar/21

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Minor
Reporter: Andreas Dilger Assignee: WC Triage
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Cloners
Rank (Obsolete): 9223372036854775807

 Description   

Lustre currently supports POSIX ACL functionality as provided by the Linux kernel VFS, stored in the system.posix_acl_access and system.posix_acl_default xattrs. However, there are userspace tools such as Samba and Ganesha that would prefer to use NFSv4 ACLs since they are more compatible with both NFSv4 (obviously) and NTFS ACLs.

The NFS kernel client exposes NFSv4 ACLs in the system.nfs4_acl xattr for remote client usage, but the kernel itself does not provide any VFS semantics/permission control related to those xattrs. Samba has an acl_xattr plugin that will map NFSv4 ACLs to a private system.ntacl xattr, but this is not integrated with the filesystem and only provides functionality for SMB/CIFS clients. Samba can alternately utilize the system.nfs4_acl xattrs if available, and the nfs4-acl-tools can manage these ACLs in userspace. ZFS also has a proposed patch to handle the system.nfs4_acl xattr itself (though it will be mapped internally to the native ZFS ACL structure for on-disk storage).

It seems possible to also allow Lustre to interpret the system.nfsv4_acl on the client and/or MDS to provide consistent access control in a similar manner. This seems preferable to the RichACL patches, which have been abandoned and are no longer planned for upstream kernel merging, per my discussions with the author.

The USENIX paper POSIX Access Control Lists on Linux provides a good overview of ACLs in general, though it predates RichACLs.


Generated at Sat Feb 10 03:04:51 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.