Directory Group and Permissions Issue

Issue: Somehow, at sometime, I messed up my directory permissions structure and currently everyone in the company has full access to all directories (including ones with sensitive information).

Our system is primarily a Samba Server. The original directory group and permission structure that I want to re-establish on the system is in the table below.

Directory / Subdirectory Group
ArchivedProjects allstaff
ArchivedToDVD allstaff
CorporateAdmin Subdirectories labeled separately as listed below.
\401k 401k
\Accounting acct
\BOD-Shareholder shares
\HumanRes acct
\Insurance acct
\Operations shares
\YearEnd shares
Marketing allstaff
Projects allstaff
Reference allstaff
ScCS 2013 allstaff
StaffAdmin allstaff

Goal: I would like to get the directory permission structure reset to my original setup without messing something else up, and am looking for some specific guidance to do that.

We have a small company and I am sure no one has noticed they may now have access to some of the sensitive files, but I am adding some new staff to the network and I want to make sure to fix this before they start working on the network.

When I look at the directory structure and permissions via WinSCP here are some examples of what the current system looks like.

The /Projects directory that should be accessible to all staff.

The /CorporateAdmin primary directory.

The accounting subdirectory in /CorporateAdmin

Your screenshots / Snips are too small to see. I can’t quite make out the details

Some questions

  • What version of TrueNAS are you using?
  • What ACL Type are you using on the dataset?
  • Is all data in a single dataset?

Note: If you use either posix acl or nfs4acl then WinSCP is not a good tool to manage permissions. WinSCP has no support for ACL.

1 Like

Ok, uploaded images that are a little larger. Hopefully that works.

Platform: TRUENAS-R20A
Version: TrueNAS-13.0-U5.3

Not sure if this is what you are looking for regarding ACL Type.

Does this address your question about the dataset?
image

Given that it does mention “Inherit” i’m going to assume this is nfs4acl.

If you use nfsv4 type acl you typically want to administer via smb. But you do have “@group” rules which doesn’t place nicely with the windows ui. Maybe that is why you’re using winscp, to change group of folders?

I think you might want to delete the “everyone@” rule or set their “Permissions” to none. But I can’t know what exact permissions you need, only you know what users need access to what.

Poking around the TrueNAS GUI I don’t see anything that clearly identifies specific ACL types, so I don’t know if your assumption of nfs4acl is correct. If there is somewhere else I should be looking, please let me know.

I only presented the screen shots of WinSCP because I knew that to be something that could show the most information in one spot. I have used Linux systems in the past and could use the command line to “manage” the groups and permissions if that is most appropriate.

I presented a table in my initial posting that described exactly what the goal is that I am trying to achieve. The WinSCP screen shots represent the existing situation. What I am looking for is how to get from the existing situation to the goal, without messing something else up.

WinSCP is not ACL aware and so is the wrong tool to do permissions management. TrueNAS core only has one ACL type (NFSv4).

2 Likes

You should expect some breakage. Because you are going to to reduce people permissions you should expect breakage. Its always better to assume that you’re going to break things and take that into consideration when planning. This includes making the changes in a proper maintenance window when nobody is working, make some test users to test the permission, creating a snapshot before making any changes, etc.

Because you might be unfamiliar with how the permission system works and/or how it is configured I would suggest creating a test dataset as a playground. You can freely play around with permissions there without taking any risks.

If you want some suggestions on dataset permissions:

  • group: administrators, full control, inherit
  • group: allstaff, read-only, no inheritance

This is kind of configuration is useful if you don’t want users to create top-level folders. This also only gives “allstaff” permission to list the top-level folders, without giving them access to.

Then, for each top-level folder manage the permission using file explorer while being connected as a user in the “administrator” group. Setup ACL like follows:

  • group administrators: full control with inheritance
  • write access to the group that should have read/write access (with inheritance, or in windows parlance “applies to This folder, subfolders and files”)

Disclaimer: I take no responsibility for any damages that might occur :slight_smile: