It's not really a matter of "optimizing".
The sorts of issues that get you into the territory of ACLs are ones where you need to do things like:
* grant all members of GROUP-A read and write permissions
* grant all members of GROUP-B read permissions,
* grant all members of the ADMIN group the ability to do everything (no restrictions)
This is a very ordinary use-case.
I agree. Yes the above is a very ordinary use-case.
Well, maybe the inexperienced admin would think that "read and write permissions" are the same as "do everything". In the GUI there is no real explanation or help to understand this difference. And then you have "Group" and "@group" and if "@group" is selected, it means the "Group" field from the left column. Why not use the same wording on both sides? Same with "
@user". And in the left "Group" field the help text shows "This group has the same permissions as granted to the
group@ ", so it is not the same group, but a different group that only has the same permissions? Is this somehow important for the ordinary-use-case or only a not so good wording?
None of this is that complex in our GUI. Create a dataset, Create two groups for users. Add entries with MODIFY+INHERIT for Group-A, READ+INHERIT for Group-B, and FULL_CONTROL+INHERIT for Admins to the dataset.
Why bother with "INHERIT" when it is always enabled in the ordinary use-case? Hide it from the GUI and make it a default and let it be changed in "advanced-mode". And wouln't it be better if there would be an explanation of "Inherited", "Inherit only" and the other options?
And when the user wants to edit permissions/ACLS of a SMB share there is "Edit Share ACL" and also "Edit Filesystem ACL". Why are both needed for that ordinary use-case from above? And when the admin clicks on "Edit Share ACL", because he/she wants to change who (GROUP-A or GROUP-B) has read-write access to the SMB-share, the next page shows things like a cryptic-"SID" without explanation/help and only a link to some Microsoft page that does not really help for that use-case.
Its all the small details that together can become confusing for a new user/admin. It starts with, how the GUI elements are shown and grouped, where borders, input fields and buttons are placed and continues that you can not select "group-a" or "group-b" if you choose "@group" and not "Group".
A new/inexperienced admin maybe just wants to (at first) set up that ordinary use-case from above and does not want to have to understand microsoft-sids, how freebsd internally handles nfs, samba, why he has to select "Edit Filesystem ACL" (and not "Edit Share ACL") when he wants to edit the groups/users that have access to a SMB-share, etc.
Maybe these are all small and unimportant details for you, because you understand the system so well. But please try to look with the eyes of users/admins, who never have used TrueNAS/FreeNAS before and who want a NAS-product that is reliable (based on ZFS) easy to understand/use and that makes their life easier from the beginning (and later allows the freedom to change the settings in detail, if needed).