我们在创建文件时,系统会给它默认的权限。掩码是用来控制这个默认权限的。当我们改变掩码时,会影响创建文件时的默认权限。
掩码本身有默认值:0002或0022。
根据我的测试,以普通用户登陆时,掩码为0002;以超级用户登陆时,掩码为0022。
一般情况下,我们不用改变掩码,只在特殊情况时,才需要改变掩码。
注意到掩码有四个数字,其中第一个对应特殊权限,这里不讨论。我们只讨论后面三个,第一个就约定它为0。
后面三个,对应着用户权限、组权限和其他用户权限。
每一个都是一个三位二进制数。0就是000,1就是001,2就是010,3就是011,4就是100,5就是101,6就是110,7就是111。
一个权限有三位,比如rwx,与掩码的每一个二进制数对应。当掩码的这一位为1时,就拿掉对应权限。例如:
原始权限为---,掩码为000,则结果为---
原始权限为rw-,掩码为000,则结果为rw-
原始权限为rw-,掩码为010,则结果为r--
因此,0002的掩码,会拿掉其他用户的写权限。0022的掩码,会拿掉组用户和其他用户的写权限。这是我们在创建文件时,应该知道的。
umask命令主要有两种用法。
一种是查看当前的掩码值。只使用命令关键字就可以了。
一种是设置掩码值,在umask后面加上四位掩码值。例如:
umask 0027
就将掩码设置为0027。这样的设置,当创建文件时,会拿掉组用户的写权限和其他用户的所有权限。
网友评论