As a developer or system administrator, it’s essential to understand the concept of umask
. Umask is a command-line utility that determines the default file permissions for newly created files and directories. In this article, we’ll take a closer look at what umask
is, how it works, and how to use it in Linux and Unix systems.
What is Umask?
In Unix and Linux systems, every file and directory has a set of permissions that determine who can read, write, and execute them. These permissions are represented by three digits, each representing the permissions for a specific group of users: the owner of the file, the group owner of the file, and everyone else.
For example, if a file has permissions set to 644, it means that the owner of the file can read and write to it, while the group owner and everyone else can only read it.
The umask
command determines the default permissions that are assigned to newly created files and directories. It works by subtracting the specified umask value from the default permissions assigned to new files and directories.
Understanding Umask Values
The umask value is represented by a three-digit octal number. Each digit represents the permissions that are removed from the default permissions for the owner, group owner, and everyone else.
For example, if the umask value is set to 022, it means that the write permission is removed for the group owner and everyone else. The default permissions for newly created files will be 644 (owner can read and write, group owner and everyone else can read), and for directories, it will be 755 (owner can read, write, and execute, group owner and everyone else can read and execute).
Using Umask in Linux and Unix Systems
To set the umask value, you can use the umask
command followed by the desired value. For example, to set the umask value to 022, you can run the following command:
umask 022
You can also set the umask value in the shell startup file (e.g., ~/.bashrc
or ~/.bash_profile
) to make it persistent across sessions.
Once you set the umask value, any new files or directories you create will have the default permissions calculated based on the umask value.
Umask Examples
Let’s take a look at some examples to understand how umask
works in practice.
Example 1: Setting the Umask Value
Suppose you want to set the umask value to 027. You can run the following command:
umask 027
This will set the umask value to 027, which means that the write permission is removed for the owner, and the read and write permissions are removed for the group owner and everyone else.
Example 2: Creating a New File
Suppose you create a new file named example.txt
after setting the umask value to 027. The default permissions for the file will be 640 (owner can read and write, group owner can read, and everyone else has no permissions).
touch example.txt
ls -l example.txt
Output:
-rw-r----- 1 user user 0 Mar 10 15:00 example.txt
Example 3: Creating a New Directory
Suppose you create a new directory named example
after setting the umask value to 027. The default permissions for the directory will be 750 (owner can read, write, and execute, group owner can read and execute, and everyone else has no permissions).
mkdir example
ls -ld example
Output:
drwxr-x--- 2 user user 4096 Mar 10 15:00 example
Conclusion
In summary, umask
is a command-line utility that determines the default file permissions for newly created files and directories in Unix and Linux systems. Understanding how umask
works is essential for developers and system administrators to ensure that the correct permissions are set for files and directories. By using umask
, you can easily set the default permissions for newly created files and directories based on your specific requirements.