“mkpasswd -c” 的输出与“cat /etc/passwd | grep $USER” 的输出不同

“mkpasswd -c” 的输出与“cat /etc/passwd | grep $USER” 的输出不同

我注意到运行一些 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 中的条目。

相关内容