Change file modes (POSIX)
chmod [-Rv] mode file...
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.
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.
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
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.
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
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.