“umask”变量可以包含大于“7”的数字吗?

“umask”变量可以包含大于“7”的数字吗?

据我所知,我们使用“umask”来设置不同的安全级别:

掩码值 安全级别 有效权限(目录)
022 宽容的 第755章
026 缓和 第751章
027 缓和 750
077 严重 700

我们可以将 umask 设置为028或任何其他值,使其包含大于“7”的数字吗?

答案1

shell 的umask命令将权限掩码视为以 8 为基数的八进制数。与十进制(十位数字)或十六进制(十六进制)不同,基数 8 仅包含 0 到 7 的八位数字。

所以,不,你不能umask 028在shell中使用,它没有任何意义。当然,umask只是一堆位,一个数字,它也可以用十进制或十六进制表示。例如,在 C 代码中,022(八进制)与(十进制)相同18,因此设置 umask 的系统调用022可以写为umask(18)

但是考虑到有三个权限位 ( rwx),并且三个位可以代表八个不同的值,八进制是表示权限位的一种相当有用的方式。

此外,考虑 umask 值对于授予其他用户的权限的含义(而不是单个单词的描述)可能会很有用。

相关内容