Linux umask使用

上一篇 / 下一篇  2014-11-21 17:13:35 / 个人分类:Linux

我们知道用chmod可以建立或改变一个目录或文件的属性,不过,您知道在建立一个
新的文件或目录时,其默认属性是什么吗?这与umask指令有关。umask用于指定当前用户在建立文件或目录时的属性默认值。那么,如何得知或设定umask呢?它的设定方式如下:
[root @test root]# umask 
0022 
[root@vbird test]# umask 002 
[root@vbird test]# umask
0002 
查看umask数值直接输入umask即可,要设定其值,在umask之后接3个数字。那么如何指定这3个数字呢?主要还是和Linux的文件属性(那9个属性,r, w, x)有关,同时参考下面的规则。
  • 若用户建立的是“文件”,则默认没有可执行(x)项,即只有rw这两个项,也就是最大为666(-rw-rw-rw);
  • 若用户建立的是“目录”,则由于x与是否可以进入此目录有关,因此默认为所有权限均开放,亦即777(drwxrwxrwx)。
umask指定的是“该默认值需要取消的权限”,因为r,w,x分别是4,2,1,所以,
当要取消写权限,就输入2,而如果要取消读权限,就输入4,那么要取消读与写权限,就输入6,而要取消执行与写权限,就输入3。这样就理解了吧。那么,输入5是什么?是取消读与执行权限。如果以上面的例子来说明(umask为002),那么当用户
  • 建立文件时:666-002 ==> (-rw-rw-rw-) – (--------w-) ==> -rw-rw-r--  
  • 建立目录时:777-002 ==> (drwxrwxrwx) – (--------w-) ==> drwxrwxr-x  
要想验证结果,使用touch test然后看看这个test的文件属性就可以知道了。那么,如何查看用户当前的umask呢?直接输入umask。下面实践一下:
[root@vbird test]# umask
0002 
[root@vbird test]# touch test1 
[root@vbird test]# mkdir test2 
[root@vbird test]# ls -l
-rw-rw-r-- 1 root root 0 Oct 22 00:00 test1 
drwxrwxr-x 2 root root 4096 Oct 22 00:00 test2/ 
发现了什么?呵呵!Test1的属性为666-002 = 664。正确吗?是的,正确!
而test2这个目录呢?就是777-002 = 775,也正确!
[root@vbird test]# umask 003
[root@vbird test]# touch test3 
[root@vbird test]# mkdir test4 
[root@vbird test]# ll
-rw-rw-r-- 1 root root 0 Oct 22 00:03 test3 
drwxrwxr-- 2 root root 4096 Oct 22 00:03 test4/ 
属性又跟刚才不一样了,仔细推敲一下为什么
由上面的例子您应该很轻易地就可以发现umask的用途。umask可以在/etc/bashrc中修改,默认情况下,root的umask为022,而一般用户则为002,因为可写权限很重要,一般情况下都会取消这个权限。此外,因为root比较重要,所以为了安全起见,其同群组的写入属性也会被取消,这样也可在一定程度上提高系统的安全性。

TAG: Linux

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-12  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 17095
  • 日志数: 17
  • 建立时间: 2014-07-01
  • 更新时间: 2014-12-15

RSS订阅

Open Toolbar