Linux - Understanding umask in Linux
umask (User File-Creation Mode Mask) is a Linux command that controls the default permissions given to new files and directories when they are created.
It does not change existing file permissions.
It only defines what permissions should be taken away from new files/directories.
How umask Works
When a file or directory is created, Linux assigns default permissions:
-
Files: 666 (rw-rw-rw-) — files are never created as executable
-
Directories: 777 (rwxrwxrwx)
umask subtracts specific permissions from these defaults.
Example: Understanding Values
If umask = 022
This removes write permissions for group and others.
New file permission:
666 - 022 = 644 (rw-r--r--)
New directory permission:
777 - 022 = 755 (rwxr-xr-x)
If umask = 002
New file permission:
666 - 002 = 664 (rw-rw-r--)
New directory permission:
777 - 002 = 775 (rwxrwxr-x)
If umask = 077
New file permission:
666 - 077 = 600 (rw-------)
New directory permission:
777 - 077 = 700 (rwx------)
This is used for maximum privacy.
Check Current umask
umask
Set a Temporary umask
umask 022
(This lasts only for the current session.)
Set Permanent umask
Add the desired umask value to:
-
~/.bashrc -
or
/etc/profile
Example:
umask 022
In Summary
-
umaskdefines default permissions for new files and directories. -
It works by subtracting permissions.
-
Common values: 022, 002, 077.