指定在建立文件时预设的权限掩码。
umask [-S][权限掩码]
umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。例如,root的权限为777,若[权限掩码]设为022,两者相减后可得755。
-S 以文字的方式(rwx)来表示权限掩码。 s或S(SUID,Set UID):可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。 请注意具备SUID权限的文件,黑客经常利用这种权限,以SUID配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。 s或S(SGID,Set GID):设置在文件上面,其效果与SUID相同,只不过将文件所有者换成用户组,该文件就可以任意存取整个用户组所能使用的系统资源。 T或T(Sticky):/tmp和 /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件。 因为SUID、SGID、Sticky占用x的位置来表示,所以在表示上会有大小写之分。加入同时开启执行权限和SUID、SGID、Sticky,则权限表示字符是小写的: -rwsr-sr-t 1 root root 4096 6月 23 08:17 conf 如果关闭执行权限,则表示字符会变成大写: -rwSr-Sr-T 1 root root 4096 6月 23 08:17 conf 如果要加上特殊权限,就必须使用4位数字才能表示。特殊权限的对应数值为: s或 S (SUID):对应数值4。 s或 S (SGID):对应数值2。 t或 T :对应数值1。 在umask中对文件来说,最大的数值是6,对文件夹来说,最大的数值是7。 大家看一下面的公式就明白了 666-umask值=文件的权限 777- umask值=文件夹的权限 普通用户是002,其建立的文件默认权限是666-002=664 其建立的文件夹默认权限是777-002=775 普通用户是022,其建立的文件默认权限是666-022=644 其建立的文件夹默认权限是777-042=755
显示目前用户(此例为root)的权限掩码:
$ umask 022 $ umask -S u =rwx,g=rx,o=rx <-- 代表同群组与其他用户没有写入的权限
将权限掩码设为000:
$ umask 000 $ umask -S u =rwx,g=rwx,o=rwx <-- 代表同群组与其他用户有所有的权限