Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ls(1)

chmod(2)

stat(2)

umask(2)

chown(8)

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 chmod() 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 permission 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] ...

Note

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 information, see umask(.).

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 filea in addition to any other permissions group currently has for filea. The second command limits the permission that group has for fileb 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 permissions on filea 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 following command removes all permissions from others for fileb:

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 specified.  In the following example, write permission is added to the permissions already granted to the owner of filea and group is then granted the same permissions on filea as granted the owner:

chmod u+w,g=u filea

Options

−fInhibits display of errors that are returned if chmod fails to change the mode on a file.

−RCauses chmod to recursively descend any directories subordinate to file and to set the specified mode for each file encountered.  However, when symbolic links are encountered, chmod does not change the mode of the link file and does not traverse the path associated with the link.  Note that the -R 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 public:

chmod 755 ~harris/public

Using absolute mode, set the UID for progrmb 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 ourspec:

chmod o−w ourspec

Using symbolic mode, give execute permission on file myprog 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 docdir:

chmod g+w,o−r,u+x docdir

Using symbolic mode, give read and execute permissions to others for a directory named programs, and then recursively descend the paths subordinate to programs, adding the  same permissions for others on all files and directories included in the subordinate paths:

chmod -R o+rx programs

Note

In the preceding example, if programs were the name of a file rather than a directory, chmod would change the mode only of the programs file.

See Also

ls(1), chmod(2), stat(2), umask(2), chown(8)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026