Child Datasets NOT Inheriting ACLs From Parent

Current version: 25.10.0.1

Issue: Child datasets, either existing or newly created, are NOT inheriting the ACLs of the parent. This happens despite checking both “Apply permissions recursively” AND “Apply permissions to child datasets”.

Apply permissions to child datasets” does not appear as an option UNTIL “Apply permissions recursively” is checked. After I check “Apply permissions to child datasets” I am prompted (with a “Warning…” message) to Confirm my selection. However, I am NOT prompted (with a “Warning…” message) to Confirm my selection after I check “Apply permissions recursively”.

After I click the “Save Access Control List” button, a popup briefly displays a progress bar, implying something is happening (as in ACLs being applied to child datasets). But no ACLs are changed to any child dataset beneath the parent I just configured; and I must modify each child ACLs manually.

What’s am I missing?

Do the datasets have the same ACL type configuration (ZFS property)?

Yes.

The parent and child datasets’ ACL Type is “SMB/NFSv4” (Their Data Preset is “App”.)

I’m not seeing this behavior. What is output of midclt call core.get_jobs [[“method”, “=”, “filesystem.setacl”]] | jq ? Please enclose in code tags.

Figures.

midclt output exceeds the char size limit of posts. Let’s forklift this this exchange to email; I can send the output as a file attachment. We can resume the discussion here when you have parsed the output.

You can just copy the relevant messages for the particular failing setacl job.

I’m not that far.

After I create(d) a hierarchy of datasets (in prep for an App installation), I notice(d) within the Details summary that the ACLs (for “owners@” and “group@”) of the child datasets did not inherit from the parent. I’m able to manually set them, of course.

This behavior is repeatable.

Are you talking about the owning uid / gid or the permissions / flagset? What about entries that aren’t owner@ / group@?

I’m not changing ACLs for entries other than “owners@” and “group@”.

I’m not changing ACLs for entries other than “owners@” and “group@”.

So that would have been relevant information :wink:

As mentioned above:

Are you talking about the owning uid / gid or the permissions / flagset?

I don’t know how to answer that question. I’m talking about what I’m talking about. IOW, I’ve described the issue–and my mouse-clicks–precisely.

Would a workflow video help?

It is not expected that creating a dataset would inherit the owning UID / GID of the parent dataset.

So that would have been relevant information.

That’s how ACLs work on all OSes (MacOS, Windows, Linux, FreeBSD, etc). The file’s owner is not a part of the ACL information when you’re dealing with owner entries. It’s either a special SID in windows S-1-3-0 or a special tag in other OSes. There’s just an entry in the ACL that basically means “File owner (whoever that is)” – full control.

FWIW, there are checkboxes in the UI for recursive operations to apply the owner / group, but this is usually not what an admin wants to do because you’ll basically lose information on who created files across the dataset.

1 Like

Okay. Setting ACLs manually for these specific entities works.