【问题标题】:Effect of umask on text filesumask 对文本文件的影响
【发布时间】:2015-06-05 11:13:53
【问题描述】:

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

例如,考虑 umask 037。在新创建的可执行文件或目录上,我知道权限将来自简单的减法 (777-037 = 740)。不过我的问题是,明显的减法如何确定默认权限为 666 的文本文件的权限。

要明确减法是如何完成的(666-037 = 637?)显然拥有可执行文本文件是没有意义的,并且根据我执行的一些示例,我知道在这种情况下文件权限应该锻炼到 640。

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

【问题讨论】:

    标签: linux file unix permissions umask


    【解决方案1】:

    这不是减法。它是掩码:使用umask 的按位补码(“NOT”)的布尔值“AND”。因此,将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

    【讨论】:

    • 感谢您提供示例和文献的快速回复!
    • 我唯一要补充的是,在使用“AND”操作进行组合之前,umask 本身已被否定。
    • 哈哈。你完全正确。显然,我只是在脑海中做了那部分,甚至没有注意到。我已经更新了答案以反映这一点。谢谢。
    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多