新建一个新的文件或目录时,它的默认权限是什么?就与umask有关了,基本上umask就是指定“目前用户新建文件或目录时默认的权限默认值”,那么如何得知或设置umask呢?它的指定条件以下列的方式来指定:

[root@www ~]#umask
0022       <==与一般权限有关的是后面三位数
[root@www ~]#umask -S
u=rwx,g=rx,o=rx

查看的方式有两种,一种可以直接输入umask,就可以看到数字形态的权限设置分数,一种则是加入-S这个参数,就会以符号类型的方式来显示出权限了,奇怪的是,怎么umask会有四组数?不应该只有三组吗?是没错,第一组是特殊权限用的,我们先不理他,直接看后面三组即可。

在默认权限属性上目录与文件是不一样的,我们知道x权限对与目录是非常重要的,但是一般文件创建时则不应该有执行的权限,因为一般文件通常是用于数据的记录。当然不需要执行,因此在默认情况如下:

若用户创建文件则默认没有可执行x权限,既只有r,w这两个选项,也就是最大为666,默认权限为:

-rw-rw-rw-

若用户新建目录时,则由于x与是否可进入此目录有关,因此默认为所有权限均开放,既777分,默认权限如下:

drwxrwxrwx

要注意的是,umask的分数指的是该默认值需要减掉的权限,因为r、w、x分别是4,2,1也就是说,当拿掉能写的权限,就是输入2,而如果要拿掉能读的权限,就是输入4,要拿掉读与写的权限就是6,而要拿掉执行与写入的权限就是3。什么是5?    5就是读与执行的权限。

如果以上面的例子来说明的话,因为umask为022,所以user并没有被拿掉任何权限。不过group、others的权限被拿掉了2,(也就是说w这个权限),那么当用户:

新建文件时:(-rw-rw-rw-)-(-----w--w-)==-rw-r--r--

新建目录时:(drwxrwxrwx)-(d----w--w-)==drwx-r-xr-x

umask的利用与重要性:

如果设定umask为022的话,那么新建的数据只有用户自己具有w权限,同用户组的人只有r这个可读的权限而已,并无法修改。这样怎么共同制作专题?你说是吧。

所以,当我们需要创建文件给同组的用户共同编辑专题时,那么umask的用户组就不能拿掉2这个w权限。umask就得要是002之类的才可以,这样新建文件才能够使-rw-rw-r--

的权限模样,那么如何设置umask呢?直接在umask后面输入002就可以了。

[root@www ~]#umask 002
[root@www ~]#touch test1
[root@www ~]#mkdir test2
[root@www ~]#ll
-rw-rw-r-- 1 root root        0     Sep  27  00:36  test1
drwxrwxr-x 2 root root        4096  Sep  27  00:36  test2
所以说,这个umask对与新建文件与目录的默认权限是很有关系的,这个概念可以用在任何服务器上,尤其是你在未来假设文件服务器上。

值得注意的是:

假设你的umask为003,那么这种情况下新建的文件和目录的权限都是什么?

如果使用默认值相减的话,则文件变成666-003=663,即是-rw-rw-wx,这可是完全不对的,想想看原本文件就拿掉了x的默认属性,怎么可能后来又冒出来x的默认属性,正确的做法应该是:

文件:(-rw-rw-rw-)-(---------wx)=-rw-rw-r--

目录:(drwxrwxrwx)-(---------wx)=drwxrwxr--

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐