umask
umask
指定的是当前用户新建文件(目录)时的默认权限
可以直接输入umask查看新建文件的默认权限:
umask
0022 # 后三个数字022是我们需要的权限, 第一个是特殊权限
也可以加参数-S
:
umask -S
u=rwx,g=rx,o=rx # 以符号的形式展示权限
乍一看, 不对呀, u=rwx
那么对应的权限数字是7
, g=rx
和o=rx
对应的权限数字都是5
. 那为啥输入umask
后三位显示022
呢?
因为umask的值表示的是默认权限需要减去的权限.
r
, w
, x
的默认权限为4
, 2
, 1
.
- 在
u=rwx
中, 出现了r
,w
,x
那么就没有要减去的权限, 用户要减去的权限为0
g=rx
中出现了r
,x
, 没有出现w
就要减去w
的权限, 为2
. 则用户组要减去的权限为2
o=rx
中出现了r
,x
, 没有出现w
就要减去w
的权限, 为2
. 则其他用户要减去的权限为2
这样, 我们看到umask
的后三个数字是002
设置默认的权限
umask
既然能够获取新建文件的权限, 那么也能设置新建文件的权限. 我们只需在后面加上数字即可.
umask 002
# 先设置默认权限
umask
0002 # 然后获取权限, 发现返回值的后三位变成002了
注意: 既然umask的值表示默认权限需要减去的权限, 那么umask设置的值也表示默认权限需要减去的权限
当然我们也可以用字符串的形式更改
umask u=rw
# 减去u的x权限(即减去1)
umask
0102 # 修改后的umask值