Linux文件默认权限的计算方式umask


Linux文件默认权限的计算方式umask
 
最近在看《鸟叔的Linux私房菜》,因为他是台湾人,所以表达方式和大陆这边不太一样,台湾人所说的档案基本上就等于我们所说的文件。
在Linux下新建文件的时候,不用我们设置权限,就会有一个默认的权限。这个默认权限是怎么出来的呢,是根据预设权限和umask来的。
 
文件的预设权限是-rw-rw-rw- 也就是666分,目录的预设权限是drwxrwxrwx也就是777分,什么是umask呢?umask就是配合预设权限计算出默认权限的东西。
直接输入umask即可查询你所在的操作系统的umask值,默认的一般是0022,主要看后三位,022,w的分数是2,这就意味着,文件的默认权限就是-rwr- -r- -  (644)
可见就是对应的预设权限里面去掉w权限,因为拥有者对用的数字是0,所以权限不变。
同理,目录的默认权限也是预设权限去掉022,也就是drwxr-xr-x  (755)  
到此,文件和目录的默认权限就出来了。这个umask是可以根据需要自己设置的。命令也很简单,比如 umask 0003
需要注意的是,不要在预设权限的分数上减掉umask对应的数字,这样计算出来的结果不一定对!比如档案的预设权限分数是666,减去003,变成663也就是-rw-rw- -wx
 
拥有者和群组都没有执行的权限,但是其他人却有。。。所以这样计算是不对的。减去的是权限,不是数字!这个要记住。003,就是去掉w和x权限。
所以正确的结果应该是-rw-rw-r- -,其实这里的0003和0002的作用是一样的。002这个umask比较适用于一个小型工作组一起做一个项目,组员对这个项目的档案都有修改权限。

相关内容

    暂无相关文章