制作测试文件时得到700,但umask是0002?为什么不是 664 ?

1 bash permissions umask

文件和目录的默认值 666 和 777 分别存储在哪里?

umask 0002
touch dummy 
ls -l 
Run Code Online (Sandbox Code Playgroud)

告诉我 dummy 的权限是 700,而不是预期的 644。有什么想法吗?

max*_*max 6

[max@localhost ~]$ umask

这将显示默认的 umask

0002

/etc/bashrc文件中存储默认权限

16 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; 然后
 17 乌面具 002
 18 其他
 19 乌面具 022
 20菲

普通用户 002 的默认 umask

root 用户的默认 umask 是 022

对于目录,基本权限是 0777,对于文件 0666

这意味着如果您将 umask 值设置为 002,那么您将从基本权限中减去 umask

对于目录

777-002= 775

对于文件

666-002= 664

[max@localhost ~]$ mkdir file1

[max@localhost ~]$ ls -ld file1

drwxrwxr-x 2 max max 4096 Sep 25 15:37 file1 ------> 775

[max@localhost ~]$ touch file2

[max@localhost ~]$ ls -l file2

-rw-rw-r-- 1 max max 0 Sep 25 15:40 file2-------> 664