我是Linux新手。我正在使用umask命令进行一些试验。我将umask设置为001,但是当我创建一个文件并显示一个长列表时,新文件不会显示允许执行权限。我想知道为什么?
答案 0 :(得分:1)
Umask有点特别。一点意味着你实际上是在禁用权限。它的实现是:
(not umask) & filemode
文件模式是用户想要创建的内容。
所以你禁用了执行位:
001 -> complement -> 110 -> rw-
您要尝试的掩码是110(位)或006(八进制):)
答案 1 :(得分:1)
umask告诉系统从creat()
调用时给出的模式位掩码中删除哪些位。 umask通常表示为八进制数,每个数字由3位组成(r
= 4,w
= 2,x
= 1)。三个八进制数字代表“用户”,“组”,“其他”。
如果creat
使用666
的模式rw-
或777
的{{1}},则由程序决定。在这种情况下,显然使用了rwx
。 (通常使用666
创建一个文件,除非它应该是可执行文件。在这种情况下,使用666
。这对于编译器来说就是重要的。)
非常常见的777
是umask
(八进制)。它将022
(666
)转换为rw-rw-rw-
(644
)和rw-r--r--
(777
)转换为rwxrwxrwx
({{1}这些分别是最终应用于文件的文件模式。
您的umask 755
只能关闭“其他”群组的rwxr-xr-x
位。因此001
将成为x
(777
),而776
将保持rwxrwxrw-
(666
)。
答案 2 :(得分:0)
可能是系统管理员设置了一个umask异常,默认情况下不允许执行权限。有关更多信息,请参阅此文章: http://boulderapps.co/on-create-a-new-file-why-are-the-execute-permissions-not-set-to-my-umask