我注意到运行一些 SSH 命令后我的$HOME
变得不同~
。我想了解是什么导致了这种差异。
我正在使用 Cygwin 的 SSH:
$ which ssh
/usr/bin/ssh
这是我所看到的:
$ echo $HOME
/c/Users/axxx
$ echo ~
/home/axxx
在调查这个问题时,我注意到/etc/passwd | grep $USER
与不同mkpasswd -c
。我预计它们是相同的,当$HOME
和~
变得不同时,~
等于对应于输出的主目录,mkpasswd -c
而$HOME
等于中主目录的条目/etc/passwd
。
除了主目录的位置之外,用户 ID 和组 ID 的条目也不同。用户名也有所不同,在 中/etc/passwd
,我注意到我的用户名的形式为dxxx+axxx
其中dxxx
是我的机器名,而在 的输出中mkpasswd -c
,我的用户名只是axxx
。
[稍后添加]
我注意到 ~ 是从 /etc/nsswitch.conf 中的 db_home 中提取的,并且 $HOME 对应于 /etc/passwd 中的条目。