Я заметил, что мой $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.