A saída de “mkpasswd -c” difere de “cat / etc / passwd | grep $ USER ”

0

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.

    
por Arin Chaudhuri 25.07.2016 / 19:05

0 respostas

Tags