你为什么要用umask?

时间:2010-05-06 10:23:34

标签: c++ c unix

我正在阅读一些源代码,我在主程序的最开始就找到了这个陈述:

umask(077);

可能是什么原因?

手册页(man 2 umask)声明:

  

umask - 设置文件创建模式掩码

     

此清算允许每个用户   限制对他的默认访问   文件

但我不清楚为什么会这样做?作为捷径?

2 个答案:

答案 0 :(得分:10)

设置umask(077)可确保程序创建的任何文件只能由其所有者访问(第一个位置为0 =可能具有的所有权限),其他人(第二个/第三个位置中的7个=不允许所有权限)组/其他)。

答案 1 :(得分:4)

它需要文件系统安全性。 umask包含反转数字,用作新文件的文件模式。例如

dzen@DZeN ~ $ umask
022
dzen@DZeN ~ $ touch file
dzen@DZeN ~ $ ls -la file
-rw-r--r--  1 dzen  dzen  0  6 may 14:29 file
dzen@DZeN ~ $ umask 777
dzen@DZeN ~ $ umask      
0777
dzen@DZeN ~ $ touch file1
dzen@DZeN ~ $ ls -la file1
----------  1 dzen  dzen  0  6 may 14:30 file1