曲径通幽论坛

标题: umask -- 设置权限掩码 [打印本页]

作者: beyes    时间: 2013-5-4 15:10
标题: umask -- 设置权限掩码
umask 是 shell 内置命令,它用来设置权限掩码,其使用语法为:mask [mask]

一个文件的最终权限是由默认权限减去其掩码得来。

对于目录,默认的权限是 777 ,而一般文件则是目录的权限去掉可执行权限所得,也就是 666 。

对于普通用户而言,默认的掩码为 002 ,于是有目录的权限为 777 - 002 = 775 ;而一般文件的权限为 666 - 002 = 664 。

对于 root 而言,默认的掩码为 022 ,于是有目录的权限为 777 - 022 = 755 ;而一般文件的权限为 666 - 022 = 644 。

直接运行 umask ,就会打印出八进制表示的掩码值:
$ umask
0002
有人会问,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





欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2