umask
显示或设置创建文件的权限掩码。
概要
1umask [-p] [-S] [mode]
主要用途
- 显示当前的文件权限掩码。
- 通过八进制数的方式设置创建文件的权限掩码。
- 通过符号组合的方式设置创建文件的权限掩码。
参数
mode(可选):八进制数或符号组合。
选项
1-p:当没有参数时指定该选项,执行产生的输出格式可复用为输入;
2-S:以符号组合的方式输出创建文件的权限掩码,不使用该选项时以八进制数的形式输出。
返回值
返回状态为成功除非给出了非法选项或非法参数。
例子
以下的例子均假设文件权限掩码为0022。
1# 以八进制数的形式输出创建文件的权限掩码。
2umask -p
3# 执行结果:
4umask 0022
5# 以符号组合的方式输出创建文件的权限掩码。
6umask -S
7# 执行结果:
8u=rwx,g=rx,o=rx
参考
man chmod
文档的DESCRIPTION
段落得知:
u
符号代表当前用户。g
符号代表和当前用户在同一个组的用户,以下简称组用户。o
符号代表其他用户。a
符号代表所有用户。r
符号代表读权限以及八进制数4
。w
符号代表写权限以及八进制数2
。x
符号代表执行权限以及八进制数1
。+
符号代表添加目标用户相应的权限。-
符号代表删除目标用户相应的权限。=
符号代表添加目标用户相应的权限,删除未提到的权限。
那么刚才以符号形式输出的结果u=rwx,g=rx,o=rx
转化为八进制数等于0755
;
用八进制数来设置同样的权限,umask
需要额外的执行减法0777 - 0755
即0022
,而chmod
不需要。
符号组合模式的添加、删除、赋值权限。
1# 添加权限:
2# 为组用户添加写权限。
3umask g+w
4# 删除权限:
5# 删除其他用户的写、执行权限
6umask o-wx
7# 赋值权限:
8# 赋值全部用户所有权限,等价于umask u=rwx,g=rwx,o=rwx
9umask a=rwx
10# 清除其他用户的读、写、执行权限。
11umask o=
创建文件夹、文件(假设当前目录不存在)
1# 创建文件
2touch test.sh
3# 查看权限,发现执行权限的设置不起作用。
4stat test.sh
5# 创建文件夹
6touch newdir
7# 查看权限,发现执行权限的设置可以起作用。
8stat newdir
注意
-
该命令是bash内建命令,相关的帮助信息请查看
help
命令。 -
chmod
用于更改已有对象的权限,umask
影响之后新建对象的权限。 -
请谨慎使用该命令,特别是不要取消当前用户的读取权限,那样会导致你在终端使用
TAB
键补全时报错。
来源:https://github.com/jaywcjlove/linux-command
最后修改于: Wednesday, January 31, 2024
版权申明:
- 未标注来源的内容全部为原创,未经授权请勿转载(因转载后排版往往错乱、内容不可控、无法持续更新等);
- 非营利为目的,演绎本博客任何内容,请以'原文出处'或者'参考链接'等方式给出本站相关网页地址(方便读者)。