远程命令具有不同的 umask

远程命令具有不同的 umask

ssh user@host "umask"给出 0174

ssh user@host服务器 shell 的 umask 为 0002

你能解释一下这是怎么发生的吗?

UPD:实际上,是 /etc/passwd 覆盖了 umask。

答案1

来自 bash 手册页:

当启动非登录 shell 的交互式 shell 时,~/.bashrc如果该文件存在,bash 将从 读取并执行命令。(...) 当作为交互式登录 shell 或带有选项的非交互式 shell 调用时,它首先尝试按顺序从和 --login读取并执行命令。/etc/profile~/.profile

在您的第一个命令 ( ssh user@host "umask") 中,它不是登录 shell,在第二个命令中,它是。因此,请检查~/.bashrc文件中的umask 0002命令。

相关内容