1.命令作用
umask用于查看/修改Linux新建文件和目录屏蔽掉的读写执行权限的掩码值;主要用于控制Linux新建文件和目录的默认读写执行权限,有助于提升系统的安全性与协作效率
2.命令语法
Usage: umask [-p] [-S] [mode]
3.参数详解
OPTION:
- -p,显示当前掩码值,格式如:umask 0022;不加任何参数执行仅显示掩码值
- -S,符号化显示新建目录的读写执行权限
- mode,定义新的掩码值(会话直接执行仅当前会话生效,添加到用户.bashrc或.bash_profile文件则当前用户有效)
4.权限原理
4.1.掩码值原理解释
①.umask掩码计算前提:
- 文件默认最大权限为666(-rw-rw-rw-)
- 目录默认最大权限为777(drwxrwxrwx)
②.umask掩码计算方法:
- 新创建的文件和目录权限 = 默认最大权限值 - umask定义的掩码值
- 掩码值是8进制,按8进制进行计算
③.举例说明:
- umask掩码定义为0022(只需要看后3位即可)
- 新建文件的默认权限为:666-022=644(-rw-r--r-)
- 新建目录的默认权限为:777-022=755(drwxr-xr-x)
4.2.常见掩码场景
| 序号 | umask掩码 | 新建文件权限 | 新建目录权限 | 场景说明 |
|---|---|---|---|---|
| 1 | 002 | 664 | 775 | 多人协作,允许同组用户写入(普通用户默认) |
| 2 | 022 | 644 | 755 | 安全设置,其他用户只读(root用户默认) |
| 3 | 077 | 600 | 700 | 安全性要求高,仅自己可访问 |
| 4 | 007 | 660 | 770 | 同组用户完全共享,其他人无权访问 |
5.常用用例
5.1.查看umask掩码值
[root@node2 ~]# umask # 仅输出掩码值
0022
[root@node2 ~]# umask -p # 输出"umask 掩码值"
umask 0022
[root@node2 ~]# umask -S # 输出umask掩码值对应的新建目录的默认权限
u=rwx,g=rx,o=rx
[root@node2 ~]#
5.2.修改umask掩码值
5.2.1.会话临时修改
[root@node2 ~]# umask 002 # 会话直接修改
[root@node2 ~]# umask -p 022 # 指定参数-p修改
[root@node2 ~]# umask -S 002 # 指定参数-S修改,返回修改后新建目录的默认权限
u=rwx,g=rwx,o=rx
[root@node2 ~]#
5.2.2.用户永久修改
[user1@node2 ~]$ umask
0002
[user1@node2 ~]$ echo "umask 022" >> .bashrc # 用户永久生效需要写入环境变量文件
[user1@node2 ~]$ umask
0002
[user1@node2 ~]$ source .bashrc # source使环境变量生效,或者重新连接会自动生效
[user1@node2 ~]$ umask
0022
[user1@node2 ~]$
5.3.设置掩码值创建新文件目录
5.3.1.掩码值022
[user1@node2 ~]$ umask 022
[user1@node2 ~]$ umask
0022
[user1@node2 ~]$ touch file1
[user1@node2 ~]$ mkdir dir1
[user1@node2 ~]$ ll
total 0
drwxr-xr-x 2 user1 user1 6 Jul 18 12:12 dir1
-rw-r--r-- 1 user1 user1 0 Jul 18 12:12 file1
[user1@node2 ~]$
5.3.2.掩码值077
[user1@node2 ~]$ umask 077
[user1@node2 ~]$ umask
0077
[user1@node2 ~]$ touch file1
[user1@node2 ~]$ mkdir dir1
[user1@node2 ~]$ ll
total 0
drwx------ 2 user1 user1 6 Jul 18 12:10 dir1
-rw------- 1 user1 user1 0 Jul 18 12:10 file1
[user1@node2 ~]$
1162

被折叠的 条评论
为什么被折叠?



