Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1218909
  • 博文数量: 404
  • 博客积分: 10011
  • 博客等级: 上将
  • 技术积分: 5382
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-03 16:29
文章存档

2010年(40)

2009年(140)

2008年(224)

我的朋友

分类: LINUX

2009-03-23 09:50:43

umask是在linux中常见的一个东西,它其实是一个掩码。当然,也有umask这样一个命令,它是对用户建立的文件的默认属性的定义。该定义为:
    假设umask为022,则对于一个文件夹的话,它的默认属性为 777-022=755,这也就是我们平时建立文件夹的权限。而对于一般的文件的话,则是用 666-022=644.
    这个umask在其他地方也经常见到,比如vsftpd中有 local_umask 和 anon_umask, 分别控制着本地用户和匿名用户所建立的文件的属性。
 
 
 
 
umask用法
 
 
    当最初登录到系统中时, u m a s k命令确定了你创建文件的缺省模式。这一命令实际上和
c h m o d命令正好相反。你的系统管理员必须要为你设置一个合理的u m a s k值,以确保你创建的
文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。
在已经登录之后,可以按照个人的偏好使用u m a s k命令来改变文件创建的缺省权限。相应
的改变直到退出该s h e l l或使用另外的u m a s k命令之前一直有效。
一般来说,u m a s k命令是在/ e t c / p r o f i l e文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的u m a s k,可以在该文件中加入相应的条目。如果希望永久性地设置自己的u m a s k值,那么就把它放在自己$ H O M E目录下的. p r o f i l e或. b a s h _ p r o f i l e文件中。
 
如何计算umask值
    u m a s k命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、
其他用户)存在一个相应的u m a s k值中的数字。对于文件来说,这一数字的最大值分别是6
系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用c h m o d命令增加这一
权限。目录则允许设置执行权限,这样针对目录来说, u m a s k中各个数字最大可以到7
    其使用方法有点类似于网络上的子网掩码的作用,不同的是网络上的子网掩码是与
ip地址进行与运算,而umask后面所带的数和最大的权限值进行的是异或运算
例如,u m a s k值002 所对应的文件和目录创建缺省权限分别为6 6 4和7 7 5
 
说明:1 文件和目录是不一样的。
     2 异或运算的规律:均为0时,才为0;均为1时,也才会为0;如果一个为0,一个为1,则为1。eg:1100异或0101=1001(如果一个为0,一个为1,则为1;其它任何情况下都是0)
 
 
 
 
umask的作用是决定你创建的文件或目录的缺省权限。
使用方法:其使用方法有点类似于网络上的子网掩码的作用,不同的是网络上的子网掩码是与ip地址进行与运算,而umask后面所带的数和最大的权限值进行的是异或运算。
首先确定umask使用的对于目录的最大的权限是777,即rwxrwxrwx;而对于文件最大的权限是666,即rw-rw-rw- ;
如果我们运行命令:umask 033,则033与目录的最大权限值777进行异或运算,所以建立的新目录缺省权限为:744 ,即rwxr--r-- ;而对于新建立的文件则是033与文件的最大权限值666进行异或运算,所建立的新文件的缺省权限为:644 ,即rw-r--r-- ;
需要特别说明:对于文件的执行权限(即x权限)使用umask命令是无法使其起作用的,系统强制关闭文件的x缺省执行权限。如果想使文件有运行权限 , 只能由 chmod 命令进行设置。
PS: 运行umask命令只对于当前shell环境起作用,重新登录后恢复到系统默认的缺省权限,如果想每次登录后都使用自己设置的缺省权限,将umask命令添加到你的.profile文件中即可。
阅读(716) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~