Skip to content

File permissions

TODO

The storage on Aoraki uses 2 systems of file permissioning.

Location Unix permissions ACL Permissions
/home/<username>
/projects
/weka

Unix Permissions

Unix file permissions control who can read, write, or execute a file or directory. They apply to three categories:

  • Owner – the user who owns the file
  • Group – users in the file's group
  • Others – all other users

📜 Permission Types

Symbol Meaning
r Read
w Write
x Execute
- No permission

For example, given -rwxr-xr-- the permissions would be:

  • Owner rwx Read, write, execute
  • Group r-x Read, execute only
  • Others r-- Read only

To view or change the Unix permissions on a file

Terminal

# View permissions
ls -l filename

Modifying permissions with chmod

TODO

Access Control Lists (ACL)

ACLs extend the standard Unix file permission model (owner/group/others) by allowing fine-grained access control for additional users and groups on a per-file or per-directory basis.

Where the standard permissions (chmod) set access for:

  • Owner
  • Group
  • Others

ACLs allow for:

  • Specific users (e.g., user:bob)
  • Specific groups (e.g., group:research)
  • Default rules for directories (e.g., default:user:bob)

NFSv4 ACL Breakdown Each line has the form:

bash Copy Edit A:(type):[who]:permissions Where:

A = allow (you might also see D = deny)

OWNER@, GROUP@, EVERYONE@ = NFSv4 built-in identities

u:username@domain = specific user

g:group@domain = specific group

Code Name What it allows
r Read Data Read file contents or list directory contents
w Write Data Modify file contents or create files in a directory
a Append Data Append to a file or create subdirectories in a directory
D Delete Child Delete files within a directory
x Execute Execute file or traverse directory
t Read Attributes View basic file metadata (size, timestamps)
T Write Attributes Modify basic file metadata (e.g. change timestamps)
n Read Named Attributes Access extended attributes
N Write Named Attributes Modify extended attributes
c Read ACL View the ACL of the file
C Write ACL Modify the ACL of the file
y Synchronize Ensure file changes are written to stable storage (fsync)

Example

Terminal

nfs4_getfacl /projects/
# file: /projects/
A::OWNER@:rwaDxtTnNcCy
A::GROUP@:rxtncy
A::EVERYONE@:rxtncy

NFSv4 ACL Entries Explained

Entry Who it applies to Permissions Meaning
A::OWNER@:rwaDxtTnNcCy File owner rwaDxtTnNcCy Full access
A::GROUP@:rxtncy File group rxtncy Read + Execute + Metadata access
A::EVERYONE@:rxtncy Everyone else rxtncy Read + Execute + Metadata access