The Umask value is used to set the user's default permissions when creating a file, and when we create a directory or file in the system, the default permissions for the directory or file are determined by the Umask value.
For the root user, the default umask value is 0022, and for a normal user, the default Umask value for the system is 0002. Execute the umask command to view the umask value of the current user.
[Email protected] ~]# umask
0022
Umask value A total of 4 sets of numbers, of which the 1th set of numbers to define special permissions, we generally do not consider, and general permissions related to the latter 3 sets of numbers.
By default, for a directory, the maximum permissions a user can have is 777, and for a file, the maximum permissions a user can have is the maximum permissions on the directory to remove the Execute permission, or 666. Because x Execute permissions are required for a directory, you cannot access the directory without Execute permissions, and for files you do not have to give X Execute permissions by default.
For the root user, his umask value is 022. When the root user creates the directory, the default permission is to use the maximum permissions 777 to remove the corresponding location of the Umask value permission, that is, the owner does not have to remove any permissions, for the owning group to remove the W permission, for other users also to remove the W permission, so the default permissions for the directory is 755 When the root user creates the file, the default permission is to remove the umask value of the corresponding location with the maximum permissions of 666, that is, the default permission for the file is 644.
You can use the following test actions to understand the umask value.
[Email protected] ~]# mkdir directory1 #创建测试目录
[Email protected] ~]# ll-d directory1 #目录的默认权限是755
Drwxr-xr-x. 2 root root 4096 December 2 13:08 directory1
[email protected] ~]# Touch file1 #创建测试文件
[email protected] ~]# ll file1 #文件的默认权限是644
-rw-r--r--. 1 root root 0 December 2 13:09 file1
The Umask command allows you to modify the Umask value, such as setting the Umask value to 0077.
[Email protected] ~]# umask 0077
[Email protected] ~]# umask
0077
The default permissions for the directory created at this time are 700, and the file default permissions are 600:
[Email protected] ~]# mkdir Directory2
[Email protected] ~]# ll-d Directory2
DRWX------. 2 root root 4096 December 2 13:14 Directory2
[email protected] ~]# Touch file2
[email protected] ~]# ll File2
-RW-------. 1 root root 0 December 2 13:14 file2
Consider, if the Umask value is set to 0003, what is the default permission to create a directory or file at this point?
The correct result should be: The default permission for the directory is 774, and the default permission for the file is 664. When calculating the default permissions, do not apply the maximum permissions directly minus the Umask value, but instead remove the permissions for the corresponding location of the umask value to get the correct result.
The umask command can only temporarily modify the Umask value, and Umask will revert to its default value after the system restarts. If you want to permanently modify the Umask value, you need to modify the/etc/profile file or modify the/ETC/BASHRC file, for example, to set the default Umask value to 027, you can add a line of "Umask 027" to the file.
Both/etc/profile and/ETC/BASHRC can be used to set the user to automatically perform certain actions when they log on to the system, the difference being that/etc/profile is executed only when the user logs on for the first time, while/ETC/BASHRC loads bash every time the user logs on Shell will be executed.
Therefore, if you modify the/etc/profile file, it will only take effect for the newly created user, and if you modify the/ETC/BASHRC file, it is valid for all users.
Setting the Umask value in Linux