如何设置 umask 使目录为“rx”,文件为“---”

如何设置 umask 使目录为“rx”,文件为“---”

r-x我想设置新创建的目录的默认权限其他的以及那些新创建的文件(非目录文件)具有---.

如果我将 umask 设置为 2,则获得目录权限,r-x但获得文件权限r--

我找不到任何方法来实现我想要的umask

最终,我想要其他的能够遍历目录但不能读取文件的内容。我认为这是一个非常合理的要求,但最终似乎没有这样的设置。

答案1

如果您仅在 shell 提示符下使用命令创建目录mkdir,则可以:

umask 7
mkdir() (umask 2 && command mkdir "$@")

在您的 shell 自定义文件中(~/.zshrcfor zsh~/.bashrcfor bash...)。

即将 umask 设置为 7,但重新定义mkdir为调用实数的函数mkdir(使用相同的参数 ( "$@")),umask 为 2。(请注意,(...)创建一个子 shell,因此umask 2仅在该函数内应用)。

相关内容