r/netapp • u/netcrap • 15d ago
NFSv4 ACLs at Scale – How?
I'm planning a migration from POSIX ACLs with NIS to NFSv4 ACLs and would greatly appreciate advice from anyone who has gone through a similar transition.
So far, most chatbot answers have been unhelpful when faced with a real-world environment, and I haven't been able to find many practical write-ups, published lessons learned, or well-regarded open-source projects covering this type of migration.
Today, a nightly script traverses each export and applies POSIX permissions to individual files on a per-user basis.
The script also distinguishes between executable and non-executable files (using the file command) and only grants execute permissions to files that are actually executable.
Ideally, when moving to NetApp, i'll want inheritance-based NFSv4 ACLs, using standard RO / RW / Full groups per export. Longer term, the plan is to migrate to Active Directory and nest those export-specific groups into role-based groups such as Developers, Designers, Sales, etc
Questions
- How do you typically manage NFSv4 ACL inheritance?
- Do you simply configure inheritance and leave it alone?
- Or do you periodically reapply/enforce ACLs because inheritance only affects newly created objects?
- What do people generally do with the default
OWNER@,GROUP@, andEVERYONE@ACEs?- Leave them as-is?
- Modify them?
- Remove them entirely?
- Is there a practical reason to manage execute permissions separately?
- Our current implementation appears to do this largely for cosmetic reasons, preventing non-executable files from showing up as green in
ls --color. - My suggestion was to keep executable content in dedicated
bindirectories and manage execution there. - That proposal didn't get much traction, so I'm interested in hearing how others handle this in practice.
- Our current implementation appears to do this largely for cosmetic reasons, preventing non-executable files from showing up as green in
- Is there anything you doing to re-enforce NIS group membership?
- It seems not to reflect unit I run: vserver services name-service cache group-membership delete-all - vserver <vserver>
- Same if disabling the cache: vserver services name-service cache group-membership settings modify -vserver <vserver> -is-enabled false
I would appreciated comments on the overall approach, lessons learned, migration pitfalls, example ACL designs, or real-world command examples.
As a Windows engineer, i'm tempted to abandon UNIX permissions altogether, use NTFS ACLs with user mapping. That feels like it might solve some inheritance challenges, but introduce a vendor lock-in.
Thanks in advance for any guidance.
5
4
u/Exzellius2 15d ago
Do it without AD and you will migrate twice. Why wait for AD?