[Previous] [Contents] [Next]

chmod

Change file modes (POSIX)

Syntax:

chmod [-Rv] mode file...

Options:

-R
Recursively change file modes. For each file that names a directory, chmod changes the file mode bits of the directory and all files in the file hierarchy below it.
-v
Verbose. Display to standard output the operations which are being performed.
mode
Represents the change to be made to the file mode of each file named (see the Description below).
file
The pathname of a file whose file mode bits are to be modified.

Description:

The chmod utility lets you change any or all of the file permission mode bits of one or more files. For each file you name, chmod changes the file permission mode bits according to the mode operand.

To change a file's permission mode bits, the user of chmod must be either the owner of the file or the superuser.

The mode option can be either a symbolic_mode expression or a non-negative octal integer.

Symbolic Modes

The symbolic_mode has the following form:

The options of the symbolic form are:

Option Description
a user, group, and other access
g group access
o other access
u user access
+ add specified permissions to the group, other, or user category of the specified files
- remove specified permissions from the group, other, or user category of the specified files
= set the specified permissions for the group, other, or user category of the specified files
r read permission
s set userid or groupid when executed
w write permission
x execute permission

The agou specification is optional. When it is not supplied, all the permissions (user, group and other) will be affected, but for + and = operators only those permissions not set in the file creation mask (see umask) will be set.

Some examples of symbolic modes:

Make myfile executable by all:

chmod a+x myfile

Remove read permission for group and others:

chmod og-r myfile

Perform both the above operations, in the order given, on three files: myfile, file2, and zzz:

chmod a+x,og-r myfile file2 zzz

Octal Modes

Each permission may be specified with an octal number: read = 4; write = 2; execute = 1; no permission = 0. The octal equivalents are derived by adding the numbers associated with the four basic permissions. The following table illustrates their use:

Octal number Symbolic Permission
0 --- none
1 --x execute
2 -w- write
3 -wx write/execute
4 r-- read
5 r-x read/execute
6 rw- read/write
7 rwx read/write/execute

In the octal form, the three octal digits represent user, group, and other permissions in that order.

Example of octal modes:

Give the user read/write/execute (octal 7 = rwx), group read/execute (octal 5 = r-x), and other read only (octal 4 = r--) for the file myfile:

chmod 754 myfile

Setgid and setuid

The following table shows how the setgid and setuid file modes are represented in octal:

Octal number File mode
2000 setgid
4000 setuid
6000 setgid and setuid

You can combine these file modes with the permission modes described above. For example:

chmod 4666 testfile

In this case, setuid is set, and the user, group, and other get read/write access.

Exit status:

0
The utility executed successfully and all requested changes were made.
>0
An error occurred.

See also:

chgrp, chown, find, ls, umask

Installation & Configuration


[Previous] [Contents] [Next]