umask对文本文件的影响

时间:2015-06-05 11:13:53

标签: linux file unix permissions umask

在处理可执行文件或目录的权限时,我理解umask如何工作,至少是基本级别。但是,当涉及到umask如何将其规则应用于文本文件时,我很困难。

例如,考虑umask 037.在新创建的可执行文件或目录中,我理解权限将来自简单的减法(777-037 = 740)。我的问题是,然后明显的减法如何用于确定权限,例如说文本文件的默认权限是666.

要明确减法是如何完成的(666-037 = 637?)显然有一个可执行的文本文件是没有意义的,并且根据一些例子我已经进行了我知道在这种情况下的文件权限应该工作到640.

这次减法是如何完成的?我们如何到达666-037 = 640?

1 个答案:

答案 0 :(得分:1)

它不是减法。它的掩蔽:布尔" AND"使用umask的按位补码(" NOT")。因此,将umask视为应从模式中删除的位。

Create mode  0666 (octal)                         = 110110110 (binary)
Mask          037 (octal) = 000011111 (binary)
(Complement of mask)      = 111100000 (binary)    = 111100000 (binary) &
                                                    ---------
Result       0640                                   110100000

另见http://en.wikipedia.org/wiki/Boolean_algebra#Basic_operations