命令格式:umask [模式]
说明:创建文件或目录时的掩码
。文件
创建的权限默认为666-umask
,而目录
创建的权限是用777-umask
,为什么文件和目录创建时候指定的权限不一样,因为666是777减去
了文件的执行权限
,也就是用777-111
,默认不让所有用户
对文件有执行权限
,目的就是防止恶意的文件被执行
,给系统的安全带来威胁
。
使用方式:当不指定模式时,是查看默认的umask,当指定模式时,系统就会采用指定的模式,但是,指定的是临时生效的,也就是在当前shell下,如果想全局永久生效,那么就需要修改配置文件/etc/bashrc,修改的位置如下:
第一个位置是修改普通用户的umask,第二个是修改root的umask。修改完了之后使用source /etc/bashrc
重新读取配置文件。
由于root用户默认
的umask为022
,所以当使用root创建一个目录
时,目录的默认权限为755(drwxr-xr-x)
,创建的文件
的默认权限为666-022 = 644(-rw-r--r--)
。
但是,当我们修改umask
的时候,如果修改的umask反向遮罩
出来的文件的权限中带有执行(x)权限
,会默认对最终
权限进行加一
(还是防止恶意文件的执行),演示一下。
创建的test.txt文件默认权限为666-001 = 665,即-rw-rw-r-x
,由于会默认加一
,所以文件的最终权限就变为了
-rw-rw-rw-
,设计的就是这么巧妙。
注意:权限中包含x权限默认加一
仅仅对文件生效
,对目录
是无效
的。
本人博客:https://www.lightingsui.com