Jak naprawić bash lub auto run / bin / bash podczas logowania SSH


16

Podczas logowania jak rootna moim serwerze wszystko działa poprawnie, ale kiedy loguję się, ponieważ myusernamebash nie działa poprawnie.

Linia zaczyna się od:

$ 

zamiast

myusername@myserver:~$

i wszystkie klawisze specjalne, takie jak klawisze strzałek, klawisze tabulatorów itp., nie będą działać.

Po wpisaniu bin/bashdziała ponownie, ale chcę naprawić problem lub uruchomić się automatycznie bin/bashprzy logowaniu. Jak mogę to naprawić?

ssh  bash 

Odpowiedzi:


16

Musisz tylko zmienić powłokę. Jako ten użytkownik uruchom:

$ chsh -s /bin/bash

Następnie wyloguj się i zaloguj ponownie.

Po wykonaniu tej czynności monit nie wygląda tak, jak chcesz, musisz zacząć dostosowywać zmienną PS1 środowiska.


Jest to właściwie niebezpieczne, ponieważ pytanie dotyczy rootużytkownika. Prawdopodobnie nie używa Linuksa. Root powinien pozostać z domyślną powłoką, ponieważ sprzedawca prawdopodobnie będzie liczyć na to, że będzie to kshcokolwiek innego. Zamiast tego prawdziwa odpowiedź brzmi: „i tak nie powinieneś logować się jako root”.
bahamat

12

Musisz zmienić powłokę. Uruchom polecenie

chsh -s /bin/bash

następnie zaloguj się ponownie.

Jednak nie wszyscy użytkownicy mają prawo do zmiany własnej powłoki. Jeśli używasz, sudopamiętaj, aby dodać swoją nazwę użytkownika do chshpolecenia jako

sudo chsh <username> -s /bin/bash

w przeciwnym razie nieumyślnie zmienisz powłokę na root.


Uczciwy punkt. Lekko rozszerzył odpowiedź.
Mikael Fremling

Byłem bardzo naiwny, próbując: sudo chsh -s /bin/bashponieważ mój użytkownik nie miał uprawnień do zmiany powłoki. Twoja odpowiedź pomogła mi rozwiązać. Dzięki!
Edenshaw

5

Jednym z możliwych powodów jest to, że domyślną powłoką nazwy użytkownika nie jest bash.

Możesz sprawdzić powłokę bieżącego użytkownika za pomocą:

  • echo ${SHELL}
  • echo $0

Aby trwale zmienić powłokę użytkownika, zobacz man chsh np .:

chsh -s /bin/bash

2

Jeśli twoje hasło użytkownika sudo jest wyłączone, możesz /etc/passwdbezpośrednio edytować , znaleźć linię, w której znajduje się użytkownik i zmienić ścieżkę powłoki na /bin/bash.

Oto wyjaśnienie formatu / etc / passwd .


0

Chciałem tylko dodać jeszcze jedną rzecz.

Jeśli wymagany jest dostęp do sudo, aby zmienić bash dla tego użytkownika, musisz również podać swoją nazwę użytkownika w poleceniu sudo, ponieważ bez nazwy użytkownika będzie ona dotyczyła użytkownika root.

$ sudo chsh -s /bin/bash <user>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.