Ubuntu服务器10中的umask

这是一个testing机器,而不是生产。 我在用户的.bashrc中包含了以下内容:

umask 000 

当我去我的主目录中创build一个文件,使用vi test.txt,文件获得许可rw-rw-rw。

我也尝试手动设置umask:

 umask a=rwx 

我做错了什么,因为我需要在文件和目录上相当于CHMOD 0777或0755? 再一次,这是一个testing的情况,所以目前安全是不重要的。

编辑:来想一想,这是不可能的? 由于用于文件的umask被减去666,所以最低的umask是000,因此,666的CHMOD是一个文件可以得到的最高? 没有办法使用umask给文件CHMOD 755或777?

我无法find一个参考,但我相当确定,您不能将x设置为文件的默认权限。

umask设置默认权限,它用于修改某些系统调用的默认模式,如open(2)mkdir(2)

在你的情况下, vim创build的模式是0666 ,这个模式会被umask进一步修改。 默认0022,然后创build一个模式为0644的文件。umask不能添加位,它只能掩盖它们(因此名称)。

作为一个例子,执行

 $ touch testfile $ ls -l testfile -rw-r--r-- 1 bob bob 0 2011-06-27 16:36 testfile 

但它进行了以下系统调用(注意mode_t字段中的0666)

 open("testfile", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3