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
命令。