# umask - 权限掩码
> umask可以设置和查询用户创建目录或文件的默认权限,它设置权限的用法和chmod的用法刚好相反。chmod是修改单个或多个文件或目录的权限,且权限对应的数字是"正向的",而umask是针对用户设置的是"去掉权限",权限对应的数字是"反向的",**例如执行命令`umask 002`,当前用户所创建的目录或文件权限则是775,也就是rwx rwx r-x**。
## 语法
### 查询当前用户umask值
$ umask
### 修改当前用户umask值
```shell
$ umask [umask值]
```
## 参数
umask值对应的权限:
| 值 | 文件 | 目录 |
| --- | --- | --- |
| 0 | 6 rw- | 7 rwx |
| 1 | 6 rw- | 6 rw- |
| 2 | 4 r-- | 5 r-x |
| 3 | 4 r-- | 4 r-- |
| 4 | 2 -w- | 3 -wx |
| 5 | 2 -w- | 2 -w- |
| 6 | 0 --- | 1 --x |
| 7 | 0 --- | 0 --- |
规律:
* 目录:最大值(7)减去umask值等于目录的默认权限。目录需要有执行权限,不然无法进入目录。
* 文件:最大值(6)减去umask值如果是偶数,则等于文件的默认权限,如果是单数,则数字加1,因为文件默认不允许有执行权限。
## 常用umask值
| umask值 | 文件 | 目录 |
| --- | --- | --- |
| 002 | 664 | 775 |
| 022 | 644 | 755 |
| 027 | 640 | 750 |
| 077 | 600 | 700 |
| 006 | 660 | 771 |