umask 设置默认权限 750

umask 设置默认权限 750

我正在解决以下问题Unix 教科书

我正在尝试解决这个问题(第 8 章,#15,第 207 页)

  1. 给出一个命令行,用于设置默认访问模式,以便您有读、写和执行权限,您的组有读和执行权限,您的组有读和执行权限,所有其他人对新创建的可执行文件没有权限或目录。您将如何测试它以确保它正常工作?

我最初的答案是使用umask 027,但是我找到touch使用或从未按应用到not 的vim执行权限按预期方式创建新文件。umask666777

由于我的最终目标是拥有 的权限值,750在我看来,该命令是不可能的,umask因为任何umask应用于666都不会导致750.

鉴于本节中的所有问题都涉及chmod并且umask该问题是否有缺陷,因为您无法使用 来实现预期目标umask

答案1

嗯,问题包含这部分:

对于新创建的可执行文件或目录。

新创建的可执行文件和目录可能是使用模式 0777 创建的,因此它们也将获得所需的执行权限。所以这个问题似乎是正确表述的,umask 027 应该可以。

答案2

这些文档您可以通过从 777 中减去来确定任何 umask(建议文件使用 666,因为默认情况下它们不可执行)。

所以你可以像

PERM=750
UMASK=$(expr 777 - $PERM)
echo $UMASK
>>> 27

请注意,它缺少前导零,这在某些情况下可能是一个问题,但如果您只是想要的话,效果很好

相关内容