There are two types of ACLs: access
ACLs and default ACLs. An access ACL
is the access control list for a specific file or directory. A
default ACL can only be associated with a directory; if a file
within the directory does not have an access ACL, it uses the rules
of the default ACL for the directory. Default ACLs are
optional.
ACLs can be configured:
-
Per user
-
Per group
-
Via the effective rights mask
-
For users not in the user group for the file
The setfacl utility sets ACLs for files
and directories. Use the -m
option to add or modify the ACL of a file or directory:
setfacl -m <rules> <files>
|
Rules (<rules>) must be
specified in the following formats. Multiple rules can be specified
in the same command if they are separated by commas.
- u:<uid>:<perms>
-
Sets the access ACL for a user. The user name or UID may be
specified. The user may be any valid user on the system.
- g:<gid>:<perms>
-
Sets the access ACL for a group. The group name or GID may be
specified. The group may be any valid group on the system.
- m:<perms>
-
Sets the effective rights mask. The mask is the union of all
permissions of the owning group and all of the user and group
entries.
- o:<perms>
-
Sets the access ACL for users other than the ones in the group
for the file.
White space is ignored. Permissions (<perms>) must be a combination of the
characters r, w, and x for read, write, and execute.
If a file or directory already has an ACL, and the setfacl command is used, the additional rules are
added to the existing ACL or the existing rule is modified.
For example, to give read and write permissions to user
andrius:
setfacl -m u:andrius:rw /project/somefile
|
To remove all the permissions for a user, group, or others, use
the -x option and do not
specify any permissions:
setfacl -x <rules> <files>
|
For example, to remove all permissions from the user with UID
500:
setfacl -x u:500 /project/somefile
|