chacl - change the access control list of a file or direc
tory
SYNOPSIS
chacl acl pathname...
chacl -b acl dacl pathname...
chacl -d dacl pathname...
chacl -R pathname...
chacl -D pathname...
chacl -B pathname...
chacl -l pathname...
chacl -r pathname...
DESCRIPTION
chacl is an IRIX-compatibility command, and is maintained
for those users who are familiar with its use from either
XFS or IRIX. Refer to the SEE ALSO section below for a
description of tools which conform more closely to the
(withdrawn draft) POSIX 1003.1e standard which describes
Access Control Lists (ACLs).
chacl changes the ACL(s) for a file or directory. The
ACL(s) specified are applied to each file in the ppaatthhnnaammee
arguments.
Each ACL is a string which is interpreted using the
acl_from_text(3) routine. These strings are made up of
comma separated clauses each of which is of the form,
tag:name:perm. Where ttaagg can be:
"user" (or "u")
indicating that the entry is a user ACL entry.
"group" (or "g")
indicating that the entry is a group ACL entry.
"other" (or "o")
indicating that the entry is an other ACL entry.
"mask" (or "m")
indicating that the entry is a mask ACL entry.
nnaammee is a string which is the user or group name for the
ACL entry. A null nnaammee in a user or group ACL entry indi
cates the file's owner or file's group. ppeerrmm is the
string "rwx" where each of the entries may be replaced by
a "-" indicating no access of that type, e.g. "r-x",
"--x", "---".
OPTIONS
-b Indicates that there are two ACLs to change, the
first is the file access ACL and the second the
directory default ACL.
-R Removes the file access ACL only.
-D Removes directory default ACL only.
-B Remove all ACLs.
-l Lists the access ACL and possibly the default ACL
associated with the specified files or directories.
This option was added during the Linux port of XFS,
and is not IRIX compatible.
-r Set the access ACL recursively for each subtree
rooted at ppaatthhnnaammee(s). This option was also added
during the Linux port of XFS, and is not compatible
with IRIX.
EXAMPLES
A minimum ACL:
chacl u::rwx,g::r-x,o::r-- file
The file ACL is set so that the file's owner has "rwx",
the file's group has read and execute, and others have
read only access to the file.
An ACL that is not a minimum ACL, that is, one that speci
fies a user or group other than the file's owner or
owner's group, must contain a mask entry:
cchhaaccll uu::::rrwwxx,,gg::::rr--xx,,oo::::rr----,,uu::bboobb::rr----,,mm::::rr--xx ffiillee11 ffiillee22
To set the default and access ACLs on nneewwddiirr to be the
same as on oollddddiirr, you could type:
cchhaaccll --bb ``cchhaaccll --ll oollddddiirr || \\
sseedd --ee ''ss//..**\\[[////'' --ee ''ss##//## ##'' --ee ''ss//]]$$////''`` nneewwddiirr
CAUTIONS
chacl can replace the existing ACL. To add or delete
entries, you must first do cchhaaccll --ll to get the existing
ACL, and use the output to form the arguments to chacl.
Changing the permission bits of a file will change the
file access ACL settings (see chmod(1)). However, file
creation mode masks (see umask(1)) will not affect the
access ACL settings of files created using directory
default ACLs.
ACLs are filesystem extended attributes and hence are not
typically archived or restored using the conventional
archiving utilities. See attr(5) for more information
of backing them up under XFS.
SEE ALSO
getfacl(1), setfacl(1), chmod(1), umask(1),
acl_from_text(3), acl(5), xfsdump(8)
Man(1) output converted with
man2html