什么是umask
当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限”补码”,而chmod设置的是文件权限码。一般在/etc/profile、$[HOME]/.bash_profile或$[HOME]/.profile中设置umask值。
查看 umask 的值
输入
umask
1 如何计算umask值
umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、
其他用户)存在一个相应的 umask 值中的数字。对于文件来说,这一数字的最大值分别是6。
系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用 chmod 命令增加这一
权限。目录则允许设置执行权限,这样针对目录来说,umask 中各个数字最大可以到7。
该命令的一般形式为:
umask nnn
其中nnn为umask置 000 – 777
umask值与权限
例如,对于umask值002,相应的文件和目录缺省创建权限是什么呢?
第一步,我们首先写下具有全部权限的模式,即777 (所有用户都具有读、写和执行权限)。
第二步,在下面一行按照umask值写下相应的位,在本例中是002。
第三步,在接下来的一行中记下上面两行中没有匹配的位。这就是目录的缺省创建权限。
稍加练习就能够记住这种方法。
第四步,对于文件来说,在创建时不能具有文件权限,只要拿掉相应的执行权限比特即可。
这就是上面的例子,其中umask值为002:
1) 文件的最大权限rwx rwx rwx 777
2) umask值为002 – – – – – – -w-
3) 目录权限rwx rwx r-x 775 这就是目录创建缺省权限
4) 文件权限rw- rw- r– 664 这就是文件创建缺省权限
下面是另外一个例子,假设这次 umask 值为 022:
1) 文件的最大权限rwx rwx rwx 777
2) umask值为022 – – – -w- -w-
3) 目录权限rwx r-x r-x 755 这就是目录创建缺省权限
4) 文件权限rw- r– r– 644 这就是文件创建缺省权限
2 常用的umask值
如果想知道当前的umask值,可以使用umask命令:
如果想要改变umask值,只要使用umask命令设置一个新的值即可:
$ umask 002
确认一下系统是否已经接受了新的umask值:
在使用umask命令之前一定要弄清楚到底希望具有什么样的文件/目录创建缺省权限。否
则可能会得到一些非常奇怪的结果
例如,如果将umask值设置为600,那么所创建的文件/目录的缺省权限就是066
除非你有特殊需要,否则没有必要去管他,系统默认的值 022
umask是用的掩码,至于掩码的概念,从基础学吧,这里不说了。
掌握二个要点,
一、文件基数为666,目录为777,即文件无设x位,目录可设x位。
二、chmod是设哪个位,哪么哪个位就有权限,而umask是设哪个位,则哪个位上就没权限。
我们只要记住umask是从权限中”拿走”相应的位即可。
Leave a Reply
You must be logged in to post a comment.