umask命令

命令格式:umask [模式]

说明:创建文件或目录时的掩码文件创建的权限默认为666-umask,而目录创建的权限是用777-umask,为什么文件和目录创建时候指定的权限不一样,因为666是777减去了文件的执行权限,也就是用777-111,默认不让所有用户对文件有执行权限,目的就是防止恶意的文件被执行,给系统的安全带来威胁

使用方式:当不指定模式时,是查看默认的umask,当指定模式时,系统就会采用指定的模式,但是,指定的是临时生效的,也就是在当前shell下,如果想全局永久生效,那么就需要修改配置文件/etc/bashrc,修改的位置如下:
umask命令
第一个位置是修改普通用户的umask,第二个是修改root的umask。修改完了之后使用source /etc/bashrc重新读取配置文件。

由于root用户默认的umask为022,所以当使用root创建一个目录时,目录的默认权限为755(drwxr-xr-x),创建的文件的默认权限为666-022 = 644(-rw-r--r--)

但是,当我们修改umask的时候,如果修改的umask反向遮罩出来的文件的权限中带有执行(x)权限,会默认对最终权限进行加一(还是防止恶意文件的执行),演示一下。

umask命令

创建的test.txt文件默认权限为666-001 = 665,即-rw-rw-r-x,由于会默认加一,所以文件的最终权限就变为了

-rw-rw-rw-,设计的就是这么巧妙。

注意:权限中包含x权限默认加一仅仅对文件生效,对目录无效的。
本人博客http://39.106.81.183:8000