chmod [options] permissions files — coreutils


/bin stdin stdout - file -- opt --help --version

The chmod (change mode) command sets access permissions for files and directories. Not every file should be available to everyone (this isn’t Windows 95, y’know), and chmod is the tool for ensuring this. Typical permissions are read, write, and execute, and they may be limited to the file owner, the file’s group owner, and/or other users. The permissions argument can take three different forms:

  • --reference=file, to set the same permissions as another given file

  • An octal number, up to four digits long, that specifies the file’s absolute permissions in bits. The rightmost digit is special (described later) and the second, third, and fourth represent the file’s owner, the file’s group, and all users. See Figure 1-3 for an example, displaying the meaning of mode 0640.

  • One or more strings specifying absolute or relative permissions (i.e., relative to the file’s existing permissions) to be applied, separated by commas.

File permission bits explained
Figure 1-3. File permission bits explained

In the third form, each string consists of three parts: an optional scope, a command, and permissions.

Scope (optional)

u for user, g for group, o for other users not in the group, a for all users. The default is a.


+ to add permissions, - to remove permissions, = to set absolute permissions, ignoring existing ones

Permissions ...

Get Linux Pocket Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.