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

Mar*_*ton 2 linux permissions umask

我想r-x其他人设置新创建的目录的默认权限,并将新创建的文件(非目录文件)的默认权限设置为---.

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

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

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

Sté*_*las 5

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

umask 7
mkdir() (umask 2 && command mkdir "$@")
Run Code Online (Sandbox Code Playgroud)

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

所设置的umask设置为7,但重新定义mkdir到一个地方真正的函数mkdir被调用(使用相同的参数("$@"))具有2的umask的(请注意,(...)创建一个子shell,所以umask 2只能在该函数内使用)。