文件默认权限:umask

你知道当你创建一个 新的文件或目录时,他的默认权限会是什么吗?呵呵!那就与 umask 这个玩意儿有关了!那么 umask 是在搞什么呢?基本上, umask 就是指定『 目前使用者在创建文件或目录时候的权限默认值』,那么如何得知或配置 umask 呢?他的指定条件以底下的方式来指定:
[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--
目录: (drwxrwxrwx) - (--------wx) = drwxrwxr--

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 这个文件的内容,不过,不建议修改该文件。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值