我读到的Linux Command Line and Shell Scripting Bible by Richard Blum Christine Bresnahan
是:
从对象的完全权限集中减去umask值。文件的完全许可权是666模式,而目录的完全许可权是777。
因此,如果无法立即获得文件的读写,执行权限,那么用户是否需要在每次执行操作时都要更改文件。如果程序员需要测试代码,该怎么办?那其他文件类型呢?提前致谢。
从对象的完全权限集中减去umask值。
这不是真的 或者至少它是不准确的,并且简化为常见情况。
首先,基本值不是“权限的完整集合”,而是创建文件的任何过程都将设置为文件权限。当然,对于常规文件,这通常是0666
:想法是(例如)文本编辑器不应决定文件的权限,而应允许用户通过来决定umask
。
但是创建文件的过程不需要0666
用作文件权限。对于私有文件(例如SSH密钥),0600
将使用它,以便无论umask如何,除所有者外,其他任何人都无法访问该文件。同样,对于可执行文件,0777
可以使用它,以便生成的文件是可执行文件。
对于目录,0777
这是很常见的,因为该x
钻头实际上和通用钻头一样是必要的r
。对于普通数据文件,不是,所以这就是为什么常见情况是0666
文件和0777
目录的原因。
使用的基本权限当然可以是其他权限,但是这些很可能是常见情况。
其次,不减去umask的值,而是将其屏蔽掉。减法意味着从一位到下一位进行进位,并且减去例如0007
from0666
将得到0657
。那不是umask的工作方式,那将是无用的。
请注意,仅在创建文件时使用umask ,Linux手册页也将其称为“文件模式创建掩码”。之后,chmod()
可以用来更改权限而不受umask的限制。
因此,如果无法一次读取,写入,执行文件权限,
当然可以。对于非可执行文件而言,它只是没有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句