Я заметил, что мой $HOME становится отличным от ~ после выполнения некоторых команд SSH. Я хотел бы понять, что вызывает эту разницу.

Я использую SSH Cygwin:

$ 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 .

В дополнение к местоположению домашнего каталога, записи для идентификатора пользователя и идентификатора группы также различны. Существует также разница в имени пользователя, в /etc/passwd я заметил, что мое имя пользователя имеет вид dxxx+axxx где dxxx - это имя моего компьютера, в то время как в выводе mkpasswd -c мое имя пользователя просто axxx .

[Добавлено позже]

Я заметил, что ~ взят из db_home из /etc/nsswitch.conf, а $ HOME соответствует записи в /etc /passwd.

0