linux umask命令用法举例

发布时间:2020-03-22编辑:脚本学堂
本文介绍下,linux的umask命令的用法,通过一些例子,帮助大家的理解,有需要的朋友参考下。

linux中,umask是目录的权限掩码值。
即该目录在默认情况下,新创建出来的目录和文件的所具有的权限。
但它并不是直接显示的权限,而是一个掩码值,而真实的权限值需要计算。

目录和文件具有不同的计算方法,具体如下:
1、目录的计算方法,目录系统默认为777,那么此目录的权限就是用777-umask值,就是该目录具有的真实权限。例:
 

复制代码 代码示例:
[ming@jbxue tmp]$ umask
0002

上述例子中,第一位为特殊权限位,真实权限为777-002=775,
 

复制代码 代码示例:
[ming@jbxue tmp]$ mkdir test
[ming@jbxue tmp]$ ls -ld test
drwxrwxr-x 2 ming ming 4096 Aug 25 10:48 test

所建目录权限果然为775.

2、文件的计算方法,系统默认所新建的文件都不具有执行权限,因此为666,新建文件权限就是666-002=664.
 

复制代码 代码示例:
[ming@jbxue tmp]$ touch test123
[ming@jbxue tmp]$ ls -l test123
-rw-rw-r-- 1 ming ming 0 Aug 25 10:51 test123

新建文件果然为664.

3、修改umask值。
为目录新建权限进行设定。
比如想将test目录中,新建的子目录和文件权限定义为755,那么只需要用系统默认目录777-755即可,结果为022。
例如:
 

复制代码 代码示例:
[ming@jbxue test]$ umask 0022
[ming@jbxue test]$ umask
0022
[ming@jbxue test]$ mkdir abc
[ming@jbxue test]$ ls -ld abc
drwxr-xr-x 2 ming ming 4096 Aug 25 10:59 abc ? # 果然为755权限

如果想让该test目录中新建的文件权限为444,那么就用系统默认文件权限666-444=222。
 

复制代码 代码示例:
[ming@jbxue test]$ umask 0222
[ming@jbxue test]$ touch test123
[ming@jbxue test]$ ls -l test123
-r--r--r-- 1 ming ming 0 Aug 25 11:03 test123 ? # 果然为444权限

如果想更改整个系统全部默认的umask值,可以更改/etc/bashrc中的umask值。