Eu notei que meu $HOME
se torna diferente de ~
depois de executar alguns comandos SSH. Eu gostaria de entender o que está causando essa diferença.
Estou usando o SSH do Cygwin:
$ which ssh
/usr/bin/ssh
Isso é o que eu vejo:
$ echo $HOME
/c/Users/axxx
$ echo ~
/home/axxx
Ao investigar isso, notei que /etc/passwd | grep $USER
difere de mkpasswd -c
. Eu esperava que eles fossem iguais e, quando $HOME
e ~
se tornaram distintos, ~
é igual ao diretório inicial correspondente à saída de mkpasswd -c
, enquanto $HOME
é igual à entrada do diretório inicial em /etc/passwd
.
Além da localização do diretório inicial, as entradas para ID do usuário e ID do grupo também são distintas. Existe uma diferença no nome de usuário também, em /etc/passwd
, notei que meu nome de usuário está no formato dxxx+axxx
onde dxxx
é o nome da minha máquina, enquanto na saída de mkpasswd -c
, meu nome de usuário é simplesmente axxx
.
[Adicionado mais tarde]
Eu notei que ~ é obtido de db_home do /etc/nsswitch.conf e $ HOME corresponde à entrada em / etc / passwd.
Tags cygwin