Як виправити bash або автоматично запустити / bin / bash на SSH логін


16

Під час входу в систему, як rootна моєму сервері, все працює добре, але коли я входжу в систему, як myusernamebash працює неправильно.

Рядок починається з:

$ 

замість

myusername@myserver:~$

і всі спеціальні клавіші, такі як клавіші зі стрілками, клавіші вкладки тощо, не працюватимуть.

Коли я друкую, bin/bashце працює знову, але я хотів би вирішити проблему або автозапустити bin/bashпри вході. Як я можу це виправити?

ssh  bash 

Відповіді:


16

Вам просто потрібно змінити свою оболонку. Як цей користувач, запустіть:

$ chsh -s /bin/bash

Потім вийдіть і знову ввійдіть.

Після цього підказка не виглядає так, як вам потрібно, вам потрібно почати налаштування змінної PS1 вашого оточення.


Це насправді небезпечно, оскільки питання задається rootкористувачеві. Ймовірно, він не використовує Linux. Корінь повинен залишатися з оболонкою за замовчуванням, оскільки постачальник, ймовірно, збирається розраховувати на те, що це буде kshабо що б там не було обрано. Натомість справжня відповідь - "все одно ви не повинні входити як корінь".
Багамат

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 .


0

Просто хотів додати ще одну річ.

Якщо для зміни bash для цього користувача потрібен доступ sudo, то вам також потрібно вказати своє ім'я користувача в команді sudo, оскільки без імені користувача воно буде застосовуватися до кореневого користувача.

$ sudo chsh -s /bin/bash <user>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.