Implementing ACL support in a distributed filesystem, with macOS and Linux clients talking to a remote file server, requires compatibility between the ACL models supported in Darwin-XNU and Linux kernels to be taken into consideration.
My filesystem does support EAs to facilitate ACL storage and retrieval.
So setting ACLs via chmod(1) and retrieving them via ls(1) does work.
However, the macOS and Linux ACL models are incompatible and would require some sort of conversion between them.
chmod(1) uses acl(3) to create ACL entries.
While acl(3) claims to implement POSIX.1e ACL security API, which, to the best of my knowledge, Linux VFS implements as well, their respective implementations of the standard obviously do differ. Which is also stated in acl(3):
This implementation of the POSIX.1e library differs from the standard in a number of non-portable ways in order to support the MacOS/Darwin ACL semantic.
Then there's this NFSv4 to POSIX ACL mapping draft that describes the conversion algorithm.
What's the recommended way to bridge the compatibility gap there, so that macOS ACL rules are honoured in Linux and vice versa?
Thanks.
2
0
288