chmod(1) General Commands Manual chmod(1)
Name
chmod - change file mode
Syntax
chmod [ -fR ] mode file...
Description
Permissions on files are set according to mode and file parameters.
For file, you can specify either a full or partial path. You can specify multiple files, separated by spaces.
For mode, you specify one of two variants: absolute mode or symbolic mode.
Absolute Mode
For mode in absolute form, you specify an octal number constructed from the sum of one or more of the following values:
4000 set user ID on execution (applies to executable files only)
2000 set group ID on execution (applies to executable files only)
1000 set sticky bit (see for more information)
0400 read by owner
0200 write by owner
0100 execute, or search if file is a directory, by owner
0040 read by group
0020 write by group
0010 execute, or search if file is a directory, by group
0004 read by others
0002 write by others
0001 execute, or search if file is a directory, by others
For example, the absolute mode value that provides read, write, and execute permission to owner, read and execute permission to group, and
read and execute permission to others is 755 (400+200+100+40+10+4+1). The absolute mode value that provides read, write, and execute per-
mission to owner and no permission to group or others is 700 (400+200+100).
Symbolic Mode
To specify mode in symbolic form, use the following format:
[who] op permission [op permission] ... Spaces are included in the preceding format so that you can read the arguments; however, as
will be shown in examples that follow, you do not enter spaces between mode arguments.
Specify who using the letters u (for owner), g (for group) and o (for others) either alone or in combination. You can also specify the
letter a (for all), which is is equivalent to the letter combination ugo. If you omit the who parameter, a is assumed. For more informa-
tion, see
For the op parameter, specify the plus sign (+) to add permission to the file's mode, the minus sign (-) to remove permission from the
file's mode, or the equal sign (=) to assign permission absolutely (denying or revoking any permission not explicitly specified following
the equal sign). The first command in the following example provides group with execute permission for in addition to any other permis-
sions group currently has for The second command limits the permission that group has for to execute alone:
chmod g+x filea
chmod g=x fileb
For the permission parameter, specify any combination of the letters r (read), w (write), x (execute), s (set owner or group id), and t
(save text - sticky). Alternatively, you can specify the letter u, g, or o to set permission for the who parameter to be the same as the
permission currently granted to the user category indicated by the letter. In the following example, the group (g) is given the same per-
missions on as currently granted to owner (u):
chmod g=u filea
You can revoke all permissions by specifying the who argument followed by =, and omitting the permission argument. For example, the fol-
lowing command removes all permissions from others for
chmod o= fileb
When specifying more than one symbolic mode for file, separate the modes with commas. The mode changes are applied in the sequence speci-
fied. In the following example, write permission is added to the permissions already granted to the owner of and group is then granted the
same permissions on as granted the owner:
chmod u+w,g=u filea
Options
-f Inhibits display of errors that are returned if fails to change the mode on a file.
-R Causes to recursively descend any directories subordinate to file and to set the specified mode for each file encountered. However,
when symbolic links are encountered, does not change the mode of the link file and does not traverse the path associated with the
link. Note that the option is useful only when file identifies a directory that is not empty.
Restrictions
The permission letter s is used only with who letter u or g.
Only the owner of a file or someone logged on as superuser may change the mode of that file.
Examples
Using absolute mode, provide read, write, and search permission to the owner, and read and search permission to others for a directory
named
chmod 755 ~harris/public
Using absolute mode, set the UID for execution to be the UID of of the file owner rather than the UID of the user running the program as
follows:
chmod 4000 progrmb
Using symbolic mode, perform the same operation as described for the preceding example:
chmod u=s progrmb
Using symbolic mode, deny write permission to others for the file
chmod o-w ourspec
Using symbolic mode, give execute permission on file to all user categories:
chmod +x myprog
Using symbolic mode, give write permission to all group members, deny write permission to others, and give search permission to owner on
chmod g+w,o-r,u+x docdir
Using symbolic mode, give read and execute permissions to others for a directory named and then recursively descend the paths subordinate
to adding the same permissions for others on all files and directories included in the subordinate paths:
chmod -R o+rx programs
In the preceding example, if were the name of a file rather than a directory, would change the mode only of the file.
See Also
ls(1), chmod(2), stat(2), umask(2), chown(8)
chmod(1)