你知道当你创建一个新的文件或目录时,他的默认权限会是什么吗?
这就跟umask 有关联了。
umask
功能说明:指定在建立文件时预设的权限掩码。
语 法:umask [-S][权限掩码]
说 明:umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
参 数:
-S 以符号类型的方式来表示权限掩码。
例1:查阅当前用户默认权限:
查阅的方式有两种:
1、直接输入 umask ,就可以看到数字体态的权限设置分数, 一个四组数字,如上图0022( 第一组是特殊权限用的,这里只看后三组)。
2、加入 -S 这个选项,就会以符号类型的方式来显示出权限了。
补充说明:在默认权限的属性上,目录与文件是不一样的, x 权限对于目录是非常重要的(x 对于目录代表能否进入目录), 但是一般文件的创建则不应该有执行的权限,因为一般文件通常是用在于数据的记录,当然不需要执行的权限了。 因此,默认的情况如下:
- 若使用者创建为“文件”则默认“没有可执行( x )权限”,即只有 rw 这两个权限,也就是最大为 666 分,默认权限如下: -rw-rw-rw-
- 若使用者创建为“目录”,则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,即为 777 分,默认权限如下: drwxrwxrwx
注意,重要指数 ☆☆☆☆☆:
umask 的分数指的是“该默认值指的是需要减掉的权限!”,因为 r、w、x 分别是 4、2、1 分,也就是说,当要拿掉能写的权限,就是输入 2 分,而如果要拿掉能读的权限,也就是 4 分,那么要拿掉读与写的权限,也就是 6 分,而要拿掉执行与写入的权限,也就是 3 分, 5 分是代表的就是读与执行的权限了。
根据例1来说明,因为 umask 为 022 ,所以 当前用户并没有被拿掉任何权限,不过 group 与 others 的权限被拿掉了 2 (也就是 w 这个权限)。那么当使用者创建文件和目录时,显示如下:
创建文件时:(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r--
创建目录时:(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-x相当于:文件或目录默认权限(参考上边补充说明) 减 umask分数 等于 新建的文件和目录权限。
验证一下......
例2:新建文件和目录,查看默认权限
想像一个状况,如果你跟你的同学在同一部主机里面工作时,因为你们两个正在进行同一个专题, 老师也帮你们两个的帐号创建好了相同群组的状态,并且将 /home/class/ 目录做为你们两个人的专题目录。 想像一下,有没有可能你所制作的文件你的同学无法编辑?果真如此的话,那就伤脑筋了!这个问题很常发生啊!举上面的案例来看就好了,你看一下 file_test 的权限是几分? 644 ,意思是“如果 umask 订定为 022 ,那新建的数据只有使用者自己具有 w 的权限, 同群组的人只有 r 这个可读的权限而已,并无法修改!”这样要怎么共同制作专题呢!所以,当我们需要新建文件给同群组的使用者共同编辑时,那么 umask 的群组就不能拿掉 2这个 w 的权限! 所以, umask 就得要是 002 之类的才可以!这样新建的文件才能够是 -rw-rw-r-- 的权限模样! 那么如何设置 umask 呢?直接在 umask 后面输入 002就好了!
如下图:
如有纰漏,多多指教 ^_^
以上总结参考于《鸟哥Linux私房菜》!!!