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