Linux基础命令—umask

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设置
umask值 目录 文件
022 755 644
027 750 640
002 775 664
006 771 660
007 770 660

PS:umask命令不具有持久性,退出重新登陆后会被重置为022

原文地址:https://www.cnblogs.com/hxlinux/p/12817417.html