Podczas logowania jak root
na moim serwerze wszystko działa poprawnie, ale kiedy loguję się, ponieważ myusername
bash 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/bash
działa ponownie, ale chcę naprawić problem lub uruchomić się automatycznie bin/bash
przy logowaniu. Jak mogę to naprawić?
root
uż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 toksh
cokolwiek innego. Zamiast tego prawdziwa odpowiedź brzmi: „i tak nie powinieneś logować się jako root”.Musisz zmienić powłokę. Uruchom polecenie
następnie zaloguj się ponownie.
Jednak nie wszyscy użytkownicy mają prawo do zmiany własnej powłoki. Jeśli używasz,
sudo
pamiętaj, aby dodać swoją nazwę użytkownika dochsh
polecenia jakow przeciwnym razie nieumyślnie zmienisz powłokę na root.
źródło
sudo chsh -s /bin/bash
ponieważ mój użytkownik nie miał uprawnień do zmiany powłoki. Twoja odpowiedź pomogła mi rozwiązać. Dzięki!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 .:źródło
Jeśli twoje hasło użytkownika sudo jest wyłączone, możesz
/etc/passwd
bezpoś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 .
źródło
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.
źródło