Как исправить bash или автоматический запуск / bin / bash при входе в SSH

16

При входе в систему как rootна моем сервере все работает нормально, но при входе в систему, как myusernamebash не работает правильно.

Строка начинается с:

$ 

вместо того

myusername@myserver:~$

и все специальные клавиши, такие как клавиши со стрелками, клавиши табуляции и т. д., не будут работать.

Когда я набираю текст, bin/bashон снова работает, но я хотел бы решить проблему или запустить авто bin/bashпри входе в систему. Как я могу это исправить?


источник

Ответы:

16

Вам просто нужно изменить свою оболочку. Под этим пользователем запустите:

$ chsh -s /bin/bash

Затем выйдите и вернитесь.

После этого приглашение не будет выглядеть так, как вам нужно, вам нужно будет настроить переменную PS1 вашей среды.

EEAA
источник
На самом деле это довольно опасно, так как вопрос задается о rootпользователе. Вероятно, он не использует Linux. Root должен оставаться с оболочкой по умолчанию, так как поставщик, вероятно, рассчитывает на то, что он kshили что-то еще он выбрал. Вместо этого реальный ответ: «Вы не должны входить в систему как пользователь root».
Багамат
12

Вы должны изменить свою оболочку. Запустите команду

chsh -s /bin/bash

затем войдите снова.

Однако не все пользователи имеют право менять свою оболочку. Если вы используете не sudoзабудьте добавить свое имя пользователя в chshкоманду как

sudo chsh <username> -s /bin/bash

в противном случае вы случайно измените оболочку для root.

Микаэль Фремлинг
источник
Честная оценка. Немного расширил ответ.
Микаэль Фремлинг
Я был очень наивен, чтобы попытаться: sudo chsh -s /bin/bashтак как у моего пользователя не было разрешения менять оболочку. Ваш ответ помог мне решить это. Благодарность!
Edenshaw
5

Одной из возможных причин является то, что оболочкой myusername по умолчанию является не bash.

Вы можете проверить оболочку вашего текущего пользователя с помощью:

  • echo ${SHELL}
  • echo $0

Чтобы навсегда изменить пользовательскую оболочку, см. man chsh , Например:

chsh -s /bin/bash
Х.-Дирк Шмитт
источник
2

Если ваш пароль пользователя sudo отключен, вы можете отредактировать его /etc/passwdнапрямую, найти строку, где находится ваш пользователь, и изменить путь оболочки /bin/bash.

Вот объяснение формата / etc / passwd .

foman
источник
0

Просто хотел добавить еще одну вещь.

Если для изменения bash для этого пользователя требуется доступ sudo, вам также необходимо указать свое имя пользователя в команде sudo, поскольку без имени пользователя оно будет применяться к пользователю root.

$ sudo chsh -s /bin/bash <user>
Prateek
источник