[root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx |
查阅的方式有两种,一种可以直接输入 umask ,就可以看到数字型态的权限配置分数,一种则是加入 -S (Symbolic) 这个选项,就会以符号类型的方式来显示出权限了!奇怪的是,怎么 umask 会有四组数字啊?不是只有三组吗?是没错啦。第一组是特殊权限用的,我们先不要理他,所以先看后面三组即可。
在默认权限的属性上,目录与文件是不一样的。从第六章我们知道 x 权限对於目录是非常重要的!但是一般文件的创建则不应该有运行的权限,因为一般文件通常是用在於数据的记录嘛!当然不需要运行的权限了。因此,默认的情况如下:
- 若使用者创建为『文件』则默认『没有可运行( x )权限』,亦即只有 rw 这两个项目,也就是最大为 666 分,默认权限如下:
-rw-rw-rw-
- 若使用者创建为『目录』,则由於 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777 分,默认权限如下:
drwxrwxrwx
要注意的是,umask 的分数指的是『该默认值需要减掉的权限!』因为 r、w、x 分别是 4、2、1 分,所以罗!也就是说,当要拿掉能写的权限,就是输入 2 分,而如果要拿掉能读的权限,也就是 4 分,那么要拿掉读与写的权限,也就是 6 分,而要拿掉运行与写入的权限,也就是 3 分,这样了解吗?请问你, 5 分是什么?呵呵!就是读与运行的权限啦!
如果以上面的例子来说明的话,因为 umask 为 022 ,所以 user 并没有被拿掉任何权限,不过 group 与 others 的权限被拿掉了 2 (也就是 w 这个权限),那么当使用者:
- 创建文件时:(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r--
- 创建目录时:(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-x
[root@www ~]# umask 0022 [root@www ~]# touch test1 [root@www ~]# mkdir test2 [root@www ~]# ll -rw-r--r-- 1 root root 0 Sep 27 00:25 test1 drwxr-xr-x 2 root root 4096 Sep 27 00:25 test2 |
呵呵!瞧见了吧!确定新建文件的权限是没有错的。
- umask的利用与重要性:专题制作
想像一个状况,如果你跟你的同学在同一部主机里面工作时,因为你们两个正在进行同一个专题,老师也帮你们两个的帐号创建好了相同群组的状态,并且将 /home/class/ 目录做为你们两个人的专题目录。想像一下,有没有可能你所制作的文件你的同学无法编辑?果真如此的话,那就伤脑筋了!
这个问题很常发生啊!举上面的案例来看就好了,你看一下 test1 的权限是几分? 644 呢!意思是『如果 umask 订定为 022 ,那新建的数据只有使用者自己具有 w 的权限,同群组的人只有 r 这个可读的权限而已,并无法修改喔!』这样要怎么共同制作专题啊!您说是吧!
所以,当我们需要新建文件给同群组的使用者共同编辑时,那么 umask 的群组就不能拿掉 2 这个 w 的权限!所以罗, umask 就得要是 002 之类的才可以!这样新建的文件才能够是 -rw-rw-r-- 的权限模样喔!那么如何配置 umask 呢?简单的很,直接在 umask 后面输入 002 就好了!
[root@www ~]# umask 002 [root@www ~]# touch test3 [root@www ~]# mkdir test4 [root@www ~]# ll -rw-rw-r-- 1 root root 0 Sep 27 00:36 test3 drwxrwxr-x 2 root root 4096 Sep 27 00:36 test4 |
所以说,这个 umask 对於新建文件与目录的默认权限是很有关系的!这个概念可以用在任何服务器上面,尤其是未来在你架设文件服务器 (file server) ,举例来说,SAMBA Server 或者是 FTP server 时,都是很重要的观念!这牵涉到你的使用者是否能够将文件进一步利用的问题喔!不要等闲视之!
例题:
假设你的 umask 为 003 ,请问该 umask 情况下,创建的文件与目录权限为?
答:
umask 为 003 ,所以拿掉的权限为 --------wx,因此:
文件: (-rw-rw-rw-) - (--------wx) = -rw-rw-r-- |
Tips: 关於 umask 与权限的计算方式中,教科书喜欢使用二进位的方式来进行 AND 与 NOT 的计算,不过,鸟哥还是比较喜欢使用符号方式来计算~联想上面比较容易一点~ 但是,有的书籍或者是 BBS 上面的朋友,喜欢使用文件默认属性 666 与目录默认属性777 来与 umask 进行相减的计算~这是不好的喔!以上面例题来看,如果使用默认属性相加减,则文件变成:666-003=663,亦即是 -rw-rw--wx ,这可是完全不对的喔!想想看,原本文件就已经去除 x 的默认属性了,怎么可能突然间冒出来了?所以,这个地方得要特别小心喔! | ![]() |
在默认的情况中, root 的 umask 会拿掉比较多的属性,root 的 umask 默认是 022 ,这是基於安全的考量啦~至於一般身份使用者,通常他们的 umask 为 002 ,亦即保留同群组的写入权力!其实,关於默认 umask 的配置可以参考 /etc/bashrc 这个文件的内容,不过,不建议修改该文件。