20_Linux基础知识及命令――――umask遮罩码

umask在创建文件时的作用:


root用户创建的文件默认权限是 644, 即属主:读、写;属组:只读;其他:只读;

  目录的默认权限是755,即属主:读、写和执行;属组:读和执行;其他:读和执行;

wKioL1NfzXSTqRcvAAICU906Zjs614.jpg


而普通用户创建的文件默认权限是 664, 即属主:读、写;属组:读、写;其他:只读;

目录的默认权限是775,即属主:读、写和执行;属组:读、写和执行;其他:读和执行;

wKiom1NfzbjwxoFIAAL5ZY2CP8E967.jpg

root用户和普通用户的创建文件的默认权限不同,是由于shell环境的设定不同。此环境称为umask,即遮罩码(或反向掩码)。它表示用户在创建文件或目录时,会使用777666减去遮罩码,从而产生默认权限,其中:

创建文件:666-umask

 创建文件使用666,是因为文件默认不能具有执行权限

创建目录:777-umask

wKioL1NfzaSyTRa4AAE9WFguTbE677.jpg


遮罩码可以自行设定,使用命令为:

# umask NUMBER

需要注意的是,由于文件默认没有执行权限,因此即使用户设定的umask666减去后具有了执行权限,系统也会默认为该结果加1以确保文件没有执行权限。例如:

# umask 023

此时创建的文件默认权限应该是:

666 - 023 = 643       //属主:读写;属组:只读;其他:写和执行

但实际创建的文件默认权限为:

666 - 023 + 1 = 644    //属主:读、写;属组:只读;其他:只读

但是目录没有这样的限定。

wKiom1NfzeSTzv3nAAI5tFMTaKI434.jpg


注意:设定的umask只对当前的shell进程有效,一旦退出当前的shellumask即恢复默认值,此前的设置失效了。如果想让umask的值永久有效,只能通过修改配置文件来实现。

wKiom1NfzfbwJRrXAAFr4BvR8nA178.jpg



你可能感兴趣的:(linux,umask,遮罩码,反向掩码)