Chinaunix首页 | 论坛 | 博客
  • 博客访问: 597948
  • 博文数量: 68
  • 博客积分: 2621
  • 博客等级: 少校
  • 技术积分: 1498
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 21:04
文章分类

全部博文(68)

文章存档

2013年(8)

2012年(52)

2010年(8)

分类: LINUX

2012-03-17 18:13:09

       在创建文件时,我们总会自主地调用umask(),可是,却不知道为什么要用它,它的作用到底是什么。我想我们只有搞清了为什么,使用时才会更得心应手。
       当你新建一个新的文件或目录时,它的默认权限会是什么呢?这就与umask有关了。umask就是指定“目前用户在新建文件或目录时候的权限默认值”
       
        我们可以使用umask命令来查看数字形态的掩码值,
例如:licong@linux:~$ umask  
                                         0022                      
        使用umask -S来查看字符形态的权限,
例如:licong@linux:~$ umask -S
                                         u=rwx,g=rx,o=rx
注意:1. umask不加选项得到的是掩码值,而加选项S得到的是权限。
           2. umask打印出的掩码中第一组值是特殊权限。

         在默认权限的属性上,目录与文件是不同的。x(执行)权限对于目录是非常重要的。而一般文件通常用于数据的记录,则不应该有执行权限。 
          1. 若用户创建“文件”,则默认没有可执行(x)权限,即只有读(r)、写(w)两个选项,也就是最大为666。
               默认权限为:-rw-rw-rw-
          2. 若用户创建“目录”,则由于x与是否可以进入此目录有关,因此默认为所有权限均开放,即为777。
               默认权限为drwxrwxrwx
          
          怎样计算掩码值呢?
          掩码值 = 默认权限 - 需要的权限 <=> 需要的权限 = 默认权限 - 掩码值 。
例如:umask值为002,请问该umask情况下,新建的文件与目录权限是什么?
   解:由于umask为002,所以 需要的权限= 默认权限- 002(掩码值)
          下面分情况讨论文件与目录:
          文件:权限 = 666 - 002 = 664 <=> -rw-rw-r-- 
          目录:权限 = 777 - 002 = 775 <=> -rwxrwxr-x

阅读(2302) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~