CHMOD(1) CHMOD(1)
NAME
chmod - change access permissions of files
SYNOPSIS
chmod[options] mode file...
POSIX options: [-R][--]
GNU mode denotation: [--reference=rfile]
GNU options (shortest form): [-cfvR][--help][--version][--]
DESCRIPTION
chmod changes the permissions of each given file according to mode,
which can be either a symbolic representation of changes to make, or an
octal number representing the bit pattern for the new permissions.
The format of a symbolic mode change argument is
'[ugoa...][[+-=][rwxXstugo...]...][,...]'.
Such an argument is a list of symbolic mode change commands, separated
by commas. Each symbolic mode change command starts with zero or more
of the letters 'ugoa'; these control which users' access to the file
will be changed: the user who owns it (u), other users in the file's
group (g), other users not in the file's group (o), or all users (a).
Thus, 'a' is here equivalent to 'ugo'. If none of these are given, the
effect is as if 'a' were given, but bits that are set in the umask are
not affected.
The operator '+' causes the permissions selected to be added to the
existing permissions of each file; '-' causes them to be removed; and
'=' causes them to be the only permissions that the file has.
The letters 'rwxXstugo' select the new permissions for the affected
users: read (r), write (w), execute (or access for directories) (x),
execute only if the file is a directory or already has execute permis-
sion for some user (X), set user or group ID on execution (s), sticky
bit (t), the permissions that the user who owns the file currently has
for it (u), the permissions that other users in the file's group have
for it (g), and the permissions that other users not in the file's
group have for it (o). (Thus, 'chmod g-s file' removes the set-group-
ID (sgid) bit, 'chmod ug+s file' sets both the suid and sgid bits,
while 'chmod o+s file' does nothing.)
The 'sticky bit' is not described by POSIX. The name derives from the
original meaning: keep program text on swap device. These days, when
set for a directory, it means that only the owner of the file and the
owner of that directory may remove the file from that directory. (This
is commonly used on directories like /tmp that have general write per-
mission.)
A numeric mode is from one to four octal digits (0-7), derived by
adding up the bits with values 4, 2, and 1. Any omitted digits are
assumed to be leading zeros. The first digit selects the set user ID
(4) and set group ID (2) and save text image ['sticky'] (1) attributes.
The second digit selects permissions for the user who owns the file:
read (4), write (2), and execute (1); the third selects permissions for
other users in the file's group, with the same values; and the fourth
for other users not in the file's group, with the same values.
chmod never changes the permissions of symbolic links, since the chmod
system call cannot change their permissions. This is not a problem
since the permissions of symbolic links are never used. However, for
each symbolic link listed on the command line, chmod changes the per-
missions of the pointed-to file. In contrast, chmod ignores symbolic
links encountered during recursive directory traversals.
POSIXOPTIONS
-R Recursively change permissions of directories and their con-
tents.
-- Terminate option list.
ADDITIONALGNUDESCRIPTION
A GNU extension (new in fileutils 4.0) allows one to use --refer-
ence=rfile as a mode description: the same mode as that of rfile.
GNUOPTIONS
-c,--changes
Verbosely describe the action for each file whose permissions
actually changes.
-f,--silent,--quiet
Do not print error messages about files whose permissions cannot
be changed.
-v,--verbose
Verbosely describe the action or non-action taken for every
file.
-R,--recursive
Recursively change permissions of directories and their con-
tents.
GNUSTANDARDOPTIONS
--help Print a usage message on standard output and exit successfully.
--version
Print version information on standard output, then exit success-
fully.
-- Terminate option list.
ENVIRONMENT
The variables LANG, LC_ALL, LC_CTYPE and LC_MESSAGES have the usual
meaning. For an XSI-conforming system: NLSPATH has the usual meaning.
CONFORMINGTO
POSIX 1003.2 only requires the -R option. Use of other options may not
be portable. This standard does not describe the 't' permission bit.
This standard does not specify whether chmod must preserve consistency
by clearing or refusing to set the suid and sgid bits, e.g., when all
execute bits are cleared, or whether chmod honors the 's' bit at all.
NONSTANDARDMODES
Above we described the use of the 't' bit on directories. Various sys-
tems attach special meanings to otherwise meaningless combinations of
mode bits. In particular, Linux, following System V (see System V
Interface Definition (SVID) Version 3), lets the sgid bit for files
without group execute permission mark the file for mandatory locking.
For more details, see the file /usr/src/linux/Documentation/manda-
tory.txt.
NOTES
This page describes chmod as found in the fileutils-4.0 package; other
versions may differ slightly. Mail corrections and additions to
aeb
cwi.nl. Report bugs in the program to fileutils-
bugs
gnu.edu.
SEEALSO
chattr(1), chown(1), install(1), chmod(2), stat(2), umask(2)
GNU fileutils 4.0 2000-08 CHMOD(1)