ACL Adds into the canonical location.
local deny, local allow, inherited deny, inherited allow
By default, chmod adds entries to the top of the local deny and local allow .
Entries refering to an existing user/group are combined.
Examples
> /bin/chmod +a "everyone deny delete" sacredFile # ( root can still delete!)
ls -l displays + when ACL entries are present.
ls -le displays the ACL entries.
drwx------+ 108 dgerman staff 3672 Feb 9 20:09 Documents
0: group:everyone deny delete
ls -dle Documents # Can not click on finder
drwxr-xr-x+ 31 dgerman staff 992 Jun 23 14:14 Documents/
0: group:admin allow list,search,readattr,readextattr,readsecurity
> ls -dle Documents #list the directory, long format, including ACL
drwx------+ 108 3672 Feb 9 20:09 Documents
0: group:everyone deny delete
> ls -le # file1 initially has no ACL
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
> chmod +a "admin allow write" file1
# ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: admin allow write
> chmod +a "guest deny read" file1 # Add in the proper order
> ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: guest deny read
2: admin allow write
> chmod +a "admin allow delete" file1 # Add delete to existing admin entry
> ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: guest deny read
2: admin allow write,delete
| +a# i
^-index Adds entry at a specific location
Examples
> ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: guest deny read
2: admin allow write
> chmod +a# 2 "others deny read" file1
> ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: guest deny read
2: others deny read
3: admin allow write
| +ai user permission access | Adds Inherited entries
Examples
> ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: guest deny read
2: admin allow write,delete
3: juser inherited deny delete
4: admin inherited allow delete
5: backup inherited deny read
6: admin inherited allow write-security
> chmod +ai "others allow read" file1
> ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: guest deny read
2: admin allow write,delete
3: juser inherited deny delete
4: others inherited allow read
5: admin inherited allow delete
6: backup inherited deny read
7: admin inherited allow write-security
| +ai# i
^-index
| Add inherited entries at a specific location.
These modes allow non-canonical ACL ordering to be constructed.
| -a user premission actionREMOVES specified permission
from user
Example:
# ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: admin allow write,delete
# chmod -a "admin allow write" file1
# ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
| -a# i user premission action
^-index REMOVES entries at a specific location.
If the entry lists a subset of rights allowed by an entry, only the rights listed are removed.
Inheritance is not considered .
Examples
> ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: guest deny read
2: admin allow write,delete
> chmod -a# 1 file1 # remove entry 1 ,i.e guest deny read
> ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: admin allow write,delete
> chmod -a "admin allow write" file1
> ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: admin allow delete
| =a# i
^-index Set Individual entries at a specific location, don't add any.
Examples
> ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: admin allow delete
> chmod =a# 1 "admin allow write,chown"
> ls -le
-rw-r--r--+ 1 juser wheel 0 Apr 28 14:06 file1
owner: juser
1: admin allow write,chown
| | Replace
|
|---|
-E | Existing ACL is replaced with lines of ACL information from stdin.
| | Remove
|
|---|
-i file [… Removes inherited flag from all entries.
| -I file [… | Removes inherited entries .
| -N file [… | Removes the ACL
| |
| -C file [… | Checks if any of files have ACLs in non-canonical order.Returns false
| | | | | | | | | | |