Linux umask命令
指定在建立文件时预设的权限掩码。
umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。达到对默认权限的设置
语法
umask [-S][权限掩码]
umask 默认权限设置为22
[hx@centos8 ~]$ umask 0022
那么我们创建一个目录的默认权限是多少呢
[hx@centos8 ~]$ mkdir -v test mkdir: created directory 'test' [hx@centos8 ~]$ ls -ld test drwxr-xr-x 2 hx hx 6 Jun 17 02:10 test
可以看到权限为755,那么目录的最大权限就是777
所以最大权限减去umask值等于得到的权限
同理文件算一下文件的最大权限
[hx@centos8 ~]$ touch test/test.txt [hx@centos8 ~]$ ls -ld test/test.txt -rw-r--r-- 1 hx hx 0 Jun 17 02:12 test/test.txt
umask为022,创建文件的默认权限为:644+022=666,推导文件的最大权限为666
如果把umask设置为002,创建的目录和文件的默认权限是多少呢?
[hx@centos8 ~]$ umask 2 [hx@centos8 ~]$ umask 0002 [hx@centos8 ~]$ mkdir test1 [hx@centos8 ~]$ ls -ld test1 drwxrwxr-x 2 hx hx 6 Jun 17 02:22 test1 [hx@centos8 ~]$ touch test1/test1.txt [hx@centos8 ~]$ ls -ld test1/test1.txt -rw-rw-r-- 1 hx hx 0 Jun 17 02:29 test1/test1.txt
777-002=775
666-002=664
值得注意的是,不管umask怎么修改都不会让文件具有可执行的权限!
umask值 | 目录 | 文件 |
022 | 755 | 644 |
027 | 750 | 640 |
002 | 775 | 664 |
006 | 771 | 660 |
007 | 770 | 660 |
PS:umask命令不具有持久性,退出重新登陆后会被重置为022