Problem Statement
Explain umask in Linux. How does it work and how do you calculate default permissions for new files and directories?
Explanation
Umask (user file creation mask) defines default permissions for newly created files and directories by specifying which permission bits to remove from the default permissions. Default permissions before umask are 666 (rw-rw-rw-) for files and 777 (rwxrwxrwx) for directories. Umask subtracts permissions from these defaults.
Calculation: umask 0022 (common default) removes write permission for group and others. For files: 666 - 022 = 644 (rw-r--r--). For directories: 777 - 022 = 755 (rwxr-xr-x). Note that umask 0002 would give 664 for files and 775 for directories, allowing group write access. More restrictive umask 0077 gives 600 files and 700 directories (owner-only access).
Set umask temporarily with umask 0022 command (affects current shell session). Set permanently in ~/.bashrc, ~/.profile, or /etc/profile for system-wide defaults. View current umask with umask command showing octal value, or umask -S showing symbolic format (u=rwx,g=rx,o=rx). Different umask for different users by setting in individual profiles.
Common umask values: 0022 (files 644, dirs 755) - standard for most users, allows others to read but not modify; 0002 (files 664, dirs 775) - collaborative environments where group members share write access; 0077 (files 600, dirs 700) - restrictive, only owner has access, used for sensitive data; 0000 (files 666, dirs 777) - fully permissive, rarely appropriate.
Security considerations: more restrictive umask is more secure but less convenient for collaboration. Choose based on environment: single-user workstations can use 0022, shared servers might need 0002 for group collaboration, security-sensitive systems should use 0077. Remember umask affects default permissions - can always change permissions after creation with chmod. Understanding umask prevents permission issues with newly created files.
Practice Sets
This question appears in the following practice sets: