sajad torkamani

What is umask?

On Unix, umask (short for “user file creation mask”) is a setting you can use to control the default permissions of new files and dirctories.

For example, running umask from your terminal should give you either 022 or 0002.

Some systems like Ubuntu show 4 digits whereas others like macOS tend to show 3 digits. In any case, you can ignore the first number of the 4-digit version or assume the three-digit version always has a 0 at the start too.

Understanding base permissions for files and directories

By default, files and directories you create via commands like touch or mkdir will probably have some base permissions which will most likely be:

  • Files: 666
    • Owner: 6 (Read, Write)
    • Group: 6 (Read, Write)
    • Others: 6 (Read, Write)
  • Directories: 777
    • Owner: 7 (Read, Write, Execute)
    • Group: 7 (Read, Write, Execute)
    • Others: 7 (Read, Write, Execute)

These base permissions are chosen by the program creating the file / directory (e.g., the touch or mkdir programs) when they use system calls like open() or mkdir(). The above base permissions of 666 (for files) and 777 (for directories) are almost always the same for all systems.

Understanding how umask affects permissions of new files and directories

A umask setting of 022 means that if you create a new file, the file’s permissions will be 666 (base permissions) – 022 (umask settings) = 644 (final permissions) which is:

  • Owner: 6 (Read, Write)
  • Group: 4 (Read)
  • Others: 4 (Read)

The umask setting of 022 means that if you create a new directory, the directory’s permissions will be 755 because 777 (base permissions for directories) – 022 (your umask setting) = 755 (final permissions):

  • Owner: 7 (Read, Write, Execute)
  • Group 5 (Read, Execute)
  • Others 5 (Read, Execute)

Common umask values

umaskDefault file permissionsDefault directory permissionsNotes
022644 (rw-r–r–)755 (rwxr-xr-x)Default on most systems
002664 (rw-rw-r–)775 (rwxrwxr-x)Group members can write
077600 (rw——-)700 (rwx——)Only owner has access
Tagged: Unix