Имя пользователя отображается как «bash-3.0» в оболочке SSH

Я работаю над сервером Redhat, и одно из имен пользователей отображается как «bash-3.0» в «SSH Secure Shell Client».

Его имя отображается правильно в /etc/passwd . Как такое могло произойти?
Как я могу это исправить?

Является ли оболочка по умолчанию пользователем другой, чем другие? (также в /etc/passwd ) Это может быть потенциальной причиной.

Вы получаете приглашение «bash» при запуске bash в вашем терминале без настройки пользовательского приглашения. Поскольку это происходит только с одним пользователем, у них может быть другая оболочка для входа, чем другие, или они могут запускать bash в сценарии входа в систему или на терминале.

Если оболочка по умолчанию отлично (сопоставление с другими пользователями), попробуйте определить, отличается ли .bashrc или .bash_profile чем тот, что находится в домашней папке других пользователей? (Может также быть ~/.profile , ~/.zprofile или ~/.login зависимости от того, что вы используете …)

он был решен после восстановления файлов (.bashrc и .bash_profile) из / etc / skel /, кажется, что они были удалены по ошибке

Причина, по которой вы видели версию bash вместо имени пользователя после удаления файлов профиля, заключалась в том, что в эти файлы задана командная строка (часто содержащая имя пользователя). После вызова bash --norc вы увидите точно то же bash --norc .

Интересно, что в вашем / etc / profile не задано командное приглашение, что часто бывает в современных системах; обычно у вас есть что-то вроде

 если ["$ PS1"];  тогда
   если ["$ BASH"];  тогда
     PS1 = '\ u @ \ h: \ w \ $'
     если [-f /etc/bash.bashrc];  тогда
         ,  /etc/bash.bashrc
     фи
   еще
     если ["` id -u` "-eq 0];  тогда
       PS1 = '#'
     еще
       PS1 = '$'
     фи
   фи
 фи