I thought I understood the concept of groups and users in the NSFv4 ACLs, but I don’t understand what’s happening here.
A dataset is at /mnt/A/B
where A got the following NSFv4 ACLs nested to all child datasets:
owner@ - admin Allow | Full Control
group@ - admin Allow | Full Control
everyone@ Allow | Traverse
Group - builtin_administrators Allow | Full Control
Group - apps Allow | Modify
Group - nfs Allow | Modify
User - nfs Allow | Modify
I have set up an NFS share of B
with mapall
to the manually added user and group nfs:nfs
(1000:1000
) and security to SYS. The user nfs
is only member of the group nfs
.
I was hoping to be able to limit all access via NFS with the permissions of the group nfs
while being able to mount the data to various apps.
First Issue:
In this configuration I can mount (with sudo) and read/write the data from a desktop system with the uid:gid 1000:1000
. If I touch a new file it belongs to nfs:admin
. But I also have permissions to chown
. So it looks like Full Control.
But only with the last ALLOW for the USER nfs. Without the user in the ACL I have no access at all, no listing, no reading. I expected permissions for the group (allow Modify) to suffice for every member. Why does it not work in this case? Why do I have to add the user nfs
even though the group already has permissions?
Second Issue:
If I switch the share of the dataset B to maproot
nfs:nfs
I have full control permissions with the user 1000:1000
. If I touch a new file it belongs to nfs:admin
. I still have the permissions for chown
.
This does not work as expected.
Third Issue:
If I remove builtin_administrators - Allow Full Control
from the ACL I have no chown
rights anymore. But only root and admin are members of builtin_administrators. The client had the share mounted with a simple sudo mount -t nfs ... server:/mnt/A
.
I’d appreciate any documentation I could read to get to the bottom of this. All I have seen so far prints a pretty easy and straight forward picture I cannot reproduce.
Running TrueNAS 25.04.1
NSF config: NFSv4 only, enabled Allow non-root mount, enabled Manage Groups Server-side