|
umask 是 shell 内置命令,它用来设置权限掩码,其使用语法为:mask [mask]
一个文件的最终权限是由默认权限减去其掩码得来。
对于目录,默认的权限是 777 ,而一般文件则是目录的权限去掉可执行权限所得,也就是 666 。
对于普通用户而言,默认的掩码为 002 ,于是有目录的权限为 777 - 002 = 775 ;而一般文件的权限为 666 - 002 = 664 。
对于 root 而言,默认的掩码为 022 ,于是有目录的权限为 777 - 022 = 755 ;而一般文件的权限为 666 - 022 = 644 。
直接运行 umask ,就会打印出八进制表示的掩码值:有人会问,0002 和 002 有什么不同?为什么前面多了个 0 ,答案是它们是一样,多出一个 0 是用来表示 SUID/SGID/Stick位 的。
可以使用 -S 选项以字符的形式打印出来:$ umask -S
u=rwx,g=rwx,o=rx
举例:$ umask 022
$ umask
0022
$ touch my.txt
$ mkdir mydir
$ ls -ld mydir/
drwxr-xr-x. 2 beyes beyes 4096 Mar 8 15:31 mydir/
$ ll my.txt
-rw-r--r--. 1 beyes beyes 0 Mar 8 15:31 my.txt |
|