CHMOD(1)

NAME
chmod - change mode

SYNOPSIS
chmod [-R] mode file ...

DESCRIPTION
The mode of each named file is changed according to mode, which may be absolute or symbolic. An absolute mode is an octal number constructed from the OR of the following modes:

4000
    Set user ID on execution.

20#0
    Set group ID on execution if # is 7, 5, 3, or 1 and file is not a directory.
    Enable mandatory locking if # is 6, 4, 2, or 0 and file is not a directory.
    If file is a directory, files created in this directory will get the group ID of the directory instead of the current process (may be set or cleared using explicit symbolic modes only).

1000
    Sticky bit. If file is a directory, only the owner of the file or the super-user can rename or delete a file in that directory.

0400
    Read by owner.

0200
    Write by owner.

0100
    Execute (search in directory) by owner.

0070
    Read, write, execute (search) by group.

0007
    Read, write, execute (search) by others.

A symbolic mode has the form:

    [who] op permission [op permission] ...

The who part is a combination of the letters u (for user's permissions), g (group) and o (other). The letter a stands for ugo. If who is omitted, the default is a but the setting of the file creation mask (see umask(2)) is taken into account for /usr/local/heirloom/usr/5bin/posix/chmod and /usr/local/heirloom/usr/5bin/posix2001/chmod.

Op can be + to add permission to the file's mode, - to take away permission and = to assign permission absolutely (all other bits will be reset).

Permission is any combination of the letters r (read), w (write), x (execute), X (execute if file is a directory or if it already has at least one execute bit set), s (set owner or group id), t (save text - sticky), and l (mandatory locking). Letters u, g or o indicate that permission is to be taken from the current mode. Omitting permission is only useful with = to take away all permissions.

The first example denies write permission to others, the second makes a file executable:

    chmod o-w file
    chmod +x file

Multiple symbolic modes separated by commas may be given. Operations are performed in the order specified. The letter s is only useful with u or g.

Only the owner of a file (or the super-user) may change its mode.

The chmod command accepts the following option:

-R  Recursively descend each file operand. If a symbolic link is encountered, the permissions of its target are changed, but the link is not followed otherwise.

SEE ALSO
chown(1), ls(1), chmod(2), stat(2), umask(2)

NOTES
Use of the -R option is not generally recommended since symbolic links can lead to modification of files at arbitrary places outside the file hierarchies specified as arguments. The find(1) command can be used in combination with chmod to achieve the desired result in a more controlled manner. For example,

find . ! -type l -exec chmod u+w {} +

will add write permission for the invoking user, and

find . -type d -exec chmod a+rx {} + -o \
        ! -type l ! -type d -exec chmod a+r {} +

will make the file hierarchy accessible to all users.