Chmod calculator

Tick read, write and execute for the owner, the group and everyone else to get the octal mode (755) and the symbolic form (rwxr-xr-x), or type either one to fill in the boxes. Includes setuid, setgid and sticky.

Loading…

Worked example

A script everyone can run but only the owner can edit.

octal
755
symbolic
rwxr-xr-x
chmod 755 deploy.sh
chmod u=rwx,g=rx,o=rx deploy.sh

Common mistakes

  • chmod 777 to fix an error

    It makes the file writable by every user and process on the machine. Find out which user needs access and grant only that.

  • Directories without execute

    A directory needs x to be entered. 644 on a directory lets you list names but not open the files inside.

  • Recursive chmod on mixed trees

    chmod -R 755 makes every file executable. Use find with -type f and -type d to set files and directories separately.

  • Loose SSH key permissions

    ssh refuses a private key that others can read. Keep keys at 600 and ~/.ssh at 700.

How it works

  1. 1

    Set the permissions

    Tick the boxes, pick a preset like 644 or 755, or type an octal or symbolic mode. Everything stays in sync.

  2. 2

    Read what it means

    A plain explanation says who can read, change or run the file, and what the special bits do.

  3. 3

    Copy the command

    Copy chmod 755 file or the symbolic chmod u=rwx,g=rx,o=rx file, with your file name filled in.

Questions

What do the digits in 755 mean?
One digit each for the owner, the group and others. Each is the sum of read (4), write (2) and execute (1): 7 is rwx, 5 is r-x, 4 is r--, 6 is rw-.
What’s the fourth digit in 4755 or 0755?
The special bits: 4 is setuid, 2 is setgid and 1 is sticky, added together. 0755 is the same as 755 with no special bits.
What do s, S, t and T mean in ls -l?
They take the execute spot. A lowercase s or t means the special bit and execute are both set; uppercase S or T means the special bit is set without execute, which usually has no useful effect.
Which permissions should I use?
Common choices are 644 for ordinary files, 755 for scripts and directories, and 600 or 700 for private files such as SSH keys. Avoid 777: it lets anyone on the system change the file.