注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

牧笔临风

己有能,勿自私!

 
 
 

日志

 
 
 
 

umask命令详解  

2010-05-09 20:45:21|  分类: linux基础篇 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

umask 是登录系统后创建文件或目录所给的默认权限,一般在/etc/profile,/etc/bashrc,~/.bashrc,

~/.bash_profile四文件中的某一个里。 可以使用umask来查看,对于root默认是0022,对于普通用户默认是0002。(建议没有特别需要,不要改这个值)

那么如何计算umask呢? 对于网上流行的做法是直接做减法,这样就是误导了好多人,我们先来说一下系统中默认文件和目录的最高权限,文件的最高权限是666,目录的最高权限是777。为什么文件没有执行权限呢?这样做是为了更安全。
下面我们来说一下减法的错误,我们设置 
umask 344
新建目录rr和文件xx
这时按减法计算,文件的权限是666-344=322, 目录的权限是777-344=433
我们用实际来看一下,如下图:
umask - rock - 牧笔临风
这时我们得到目录xx的权限是r---wx-wx,即433,这个是对的
文件rr的权限是r---w-w-, 即422,与计算结果322不一样,这是为什么?
其实我们应该这样理解umask,先将umask 344 转换成二进制即为 011-100-100,对于读、写、执行权限对应于二进位第一位,第二位,第三们,有权限为1,无权限为0。将umask取所即为所得的目录的权限100-011-011即433,对于文件先取反100-011-011,这时注意,文件默认是没有执行权限的,所以应该将这三个组中所有的最后一位为1的改为0,改后为:100-010-010,即为422。

上面的不大利于记忆,可以这样做,先把umask按位取反,再与文件和目录的默认最高权限做与运算即可。还是上面的例子, umask 344,
二进制表示是: 011-100-100
按位取反:     100-011-011

目录的权限(默认最就是777,二进制表示是: 111-111-111):
100-011-011
      &111-111-111
----------------------------
100-011-011
即为:433

文件的权限(默认最高是666,二进制表示是:110-110-110)
       100-011-011
     &110-110-110
------------------------------
100-010-010
即为422
  评论这张
 
阅读(210)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017