Linux默认权限命令:umask
一、umask介绍
在linux系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关。若用户创建一个文件,则文件的默认访问权限为 -rw-rw-rw- ,创建目录的默认权限 drwxrwxrwx ,而umask值则表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值。
二、umask值的含义
可以使用命令 umask 来查看umask值,每台主机可能会不一样
[root@zabbix-server-center ~]# umask
0022
可以看到umask值为0022,其中第一个0与特殊权限有关,可以暂时不用理会,后三位022则与普通权限(rwx)有关,其中022中第一个0与用户(user)权限有关,表示从用户权限减0,也就是权限不变,所以文件的创建者的权限是默认权限(rw),第二个2与组权限(group)有关,表示从组的权限减2,所以群组的权限也保持默认权限(r),最后一位2则与系统中其他用户(others)的权限有关,由于w=2,所以需要从其他用户默认权限(rw)减去2,也就是去掉写(w)权限,则其他人的权限为rw - w = r,则创建文件的最终默认权限为 -rw-rw-r-- 。同理,目录的默认权限为 drwxrwxrwx ,则d rwx rwx rwx - 022 = (d rwx rwx rwx) - (- --- -w- -w-) = d rwx r-x r-x,所以用户创建目录的默认访问权限为 drwxr-xr-x 。我们通过下面的例子验证一下:
(1)创建普通文件时:(文件默认权限) (-rw-rw-rw-)-(- --- -w- -w-)=-(rw--r--r-- )
(2)创建目录时:(文件默认权限)(drwxrwxrwx )-(- --- -w- -w-)=(drwxr-xr-x)
三、更改umask值:umask命令
可以通过命令 umask 值 的方式来更改umask值,比如我要把umask值改为027,则使用命令 umask 027 即可。改成027后,用户权限不变,群组权限减掉2,也就是去掉写(w)权限,其他用户减7,也就是去掉读写执行权限(rwx),所以其他用户没有访问权限。
[root@zabbix-server-center dir]# umask 0027 #更新设置umask值为0027
[root@zabbix-server-center dir]# umask
0027
[root@zabbix-server-center dir]# touch 2.txt
[root@zabbix-server-center dir]# ls -ll
总用量 8
-rw-r--r-- 1 root root 0 3月 6 11:05 1.txt
-rw-r----- 1 root root 0 3月 6 16:09 2.txt
drwsrwsr-x 2 root root 6 3月 5 15:59 dir_sgid
-rwsr--r-- 1 root root 15 3月 5 15:37 profile
drwxr-xr-x 2 root root 6 3月 6 16:01 t
-rwxr--r-- 1 alex alex 32 3月 5 14:55 t.sh
所以当我新建文件的时候,默认其它用户没有任何权限。当我们想改变创建文件和目录时的默认访问权限,则可以通过umask命令来实现。