linux权限之遮罩码--umask
umask
umask命令用来限制新文件权限的掩码,也称之为遮罩码。
- 防止文件、文件夹创建的时候,权限过大
- 当新文件被创建时,其最初的权限由文件创建掩码决定
用户每次注册进入系统时,umask命令都被执行,并自动设置掩码改变默认值,新的权限会把旧的覆盖
root用户和普通用户的umask值不一样,创建文件的权限也不一样。
文件夹区别
[root@zz ~]# mkdir zz
[root@zz ~]# ll -d zz
drwxr-xr-x. 2 root root 6 Mar 18 16:56 zz
root用户默认最大权限是777,umask值为022,文件夹权限为755
[jerry01@zz ~]$ mkdir zz
[jerry01@zz ~]$ ll -d zz
drwxrwxr-x. 2 jerry01 jerry01 6 Mar 18 16:57 zz
普通用户默认最大权限为777,umask值为002,文件夹权限为775
文件的区别
[root@zz ~]# touch zz.txt
[root@zz ~]# ll zz.txt
-rw-r--r--. 1 root root 0 Mar 18 17:03 zz.txt
root用户默认最大权限是666,umask值为022,文件权限为644
[jerry01@zz ~]$ touch zz.txt
[jerry01@zz ~]$ ll zz.txt
-rw-rw-r--. 1 jerry01 jerry01 0 Mar 18 17:04 zz.txt
普通用户默认最大权限是666,umask值为002,文件权限为664
root用户默认权限
普通用户默认权限
用户创建文件时,文件的默认权限是最大权限 - umask =初始权限
- 注意别设置umask值为奇数
比如root用户,创建文件的默认最大权限是666,,当umask设置为011,它会是655(rw-r-xr-x)吗,如下
[root@zz python]# umask 011
[root@zz python]# umask
0011
[root@zz python]# touch cc11
[root@zz python]# ll cc11
-rw-rw-rw-. 1 root root 0 Mar 19 18:53 cc11
依旧是666,这是因为文件默认是没有x权限的,x权限一般用于二进制可执行文件;
如果遮罩码设置为奇数,创建的文件权限会自动+1变成偶数权限。
- 上面的umask赋值都是临时的,临时敲打临时生效,再次开机就没有了,需要将umask值写入用户环境变量文件,永久生效
写入用户环境变量配置文件
[root@zz ~]# vim ~/.bashrc
写入umask值,保存退出
umask 0044
重新登陆ssh,检查umask值
[root@zz ~]# umask
0044
查看默认权限
[root@zz ~]# touch cc11
[root@zz ~]# ll cc11
-rw--w--w-. 1 root root 0 Mar 19 18:53 cc11