Linux命令(15)---umask

umask命令

umask控制文件或目录默认权限分配的命令。

超级用户创建目录权限默认是755,创建文件默认权限是644。

Linux命令(15)---umask_第1张图片

用户的默认权限

如果用户的UID大于199,且id -gn、id -un相等,umask是002,否则umask是022。
这里写图片描述

超级用户root:
uid<199

[root@ianLinux ~]# umask
0022
[root@ianLinux ~]# id root
uid=0(root) gid=0(root) 组=0(root)
[root@ianLinux iantest]# id -gn
root
[root@ianLinux iantest]# id -un
root

普通用户Lisa:
uid>199 且且id -gn、id -un相等

[Lisa@ianLinux ~]$ umask
0002
[Lisa@ianLinux ~]$ id Lisa
uid=503(Lisa) gid=503(Lisa) 组=503(Lisa)
[Lisa@ianLinux ~]$ id -gn
Lisa
[Lisa@ianLinux ~]$ id -un
Lisa

普通用户IanB:

uid>199,但id -gn不等于id -un

[IanB@ianLinux ~]$ umask
0022
[IanB@ianLinux ~]$ id IanB
uid=502(IanB) gid=501(inhome) 组=501(inhome)
[IanB@ianLinux ~]$ id -gn
inhome
[IanB@ianLinux ~]$ id -un
IanB

文件权限的计算

基于文件的:当前文件权限为666-umask。

[root@ianLinux iantest]# ll
总用量 4
drwxr-xr-x 2 root root 4096 99 15:41 d755
-rw-r--r-- 1 root root    0 99 15:41 f644
[root@ianLinux iantest]# umask
0022

那么f644的rw-r–r–(644):666-umask(022)

[root@ianLinux iantest]# umask 044
[root@ianLinux iantest]# touch 044.log
[root@ianLinux iantest]# ll ftest 
-rw--w--w- 1 root root 0 99 16:21 044.log

那么044.log的rw–w–w-(622):666-umask(044)

[root@ianLinux iantest]# umask 032
[root@ianLinux iantest]# umask
0032
[root@ianLinux iantest]# touch 032.log
[root@ianLinux iantest]# ll 032.log
-rw-r--r-- 1 root root 0 99 16:27 032.log

按之前的算法此时666-032,032.log的权限应该是634,可是实际上032.log的权限为644。

所以如果umask的部分位或全部位为奇数,那么666-umask的文件权限位计算结果要在umask为奇数的位上再加1,这才是最终的文件权限值。
666
032-
010+
——–
644

基于目录的:当前目录权限777-umask。

[root@ianLinux iantest]# ls -ld d755
drwxr-xr-x 2 root root 4096 99 15:41 d755
[root@ianLinux iantest]# umask
0022

d755目录的权限为777-022。

你可能感兴趣的:(Linux基础)