umask 设置文件的缺省权限掩码

作用

umask 命令可以用来设置文件的缺省掩码,利用 umask 设置的掩码和系统中缺省最大权限掩码做异或运算,其结果便是文件的缺省权限。反之,若已知文件的权限,利用系统最大权限码减去文件的权限码,其差便为权限掩码。

什么是异或运算?

异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。

规则:如果 a、b 两个值不相同,则异或结果为1。如果 a、b 两个值相同,异或结果为 0。

什么是掩码?

在 Linux 中,每个用户都有一个用户掩码 umask,每个用户创建的文件的默认权限就与这个 umask 有关。

如果一个用户的 umask 是 0022(root 用户的默认 umask 值),那么这个用户创建的目录的默认权限为 0777 减去 0022 后的结果,即 0755(第一个0表示强制位和冒险位)。如果创建的是文件,则默认权限为 0777 减去 0022 后的结果,即 0755,然后在去掉执行位的 1,即 0644。

使用命令 umask 可以查看当前用户的默认掩码。可以看到 root 用户的默认掩码为 0022,普通用户的默认掩码为 0002。

如果要改变一个用户的 umask,则使用这个目录执行 umask 0003,表示将该用户的 umask 修改为 0003。

语法

umask [参数] [权限掩码]

参数

  • -S    以字符的方式来表示权限掩码

示例

(1)查看当前用户的缺省掩码

[hxstrive@localhost ~]$ umask
0002

(2)设置当前用户的缺省掩码为 006,使得创建出来的文件的默认权限为“rw-rw----”,即 660。

# 查看用户缺省掩码
[hxstrive@localhost ~]$ umask
0002

# 修改用户缺省掩码为 006
[hxstrive@localhost ~]$ umask 006

# 新建 umask_file 文件
[hxstrive@localhost ~]$ cat > umask_file
aaaaaa
^C

# 查看新建文件 umask_file 的权限
[hxstrive@localhost ~]$ ll umask_file 
-rw-rw----. 1 hxstrive hxstrive 7 Aug 27 23:52 umask_file

# 将用户缺省掩码复原
[hxstrive@localhost ~]$ umask 002

更多关于命令详细参考手册,请使用 man 命令或者 --help 参数获取帮助信息

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号