Błędnie wszedłem
chsh -s /usr/bin
zamiast
chsh -s /bin/bash
a teraz nie mogę zalogować się do powłoki roota, jak ręcznie uruchomić powłokę bash jako root?
sudo vipw
działa?
Błędnie wszedłem
chsh -s /usr/bin
zamiast
chsh -s /bin/bash
a teraz nie mogę zalogować się do powłoki roota, jak ręcznie uruchomić powłokę bash jako root?
sudo vipw
działa?
Odpowiedzi:
Chociaż root nie ma dostępu, użytkownik w grupie sudo może nadal uruchamiać uprzywilejowane polecenia - wygląda na to, że błąd nie występuje w sudo, ale w innym miejscu sudo chsh
polecenia (np. Błąd chsh).
Jako takie twoje sudo najwyraźniej działa.
Plik passwd można edytować za pomocą:
sudo vipw
I powłoka root zmieniła się ręcznie.
( /etc/passwd
zwykle pierwsza linia )
root:x:0:0:root:/root:/bin/bash
Komendy vipw i vigr edytują odpowiednio pliki / etc / passwd i / etc / group. Za pomocą flagi -s będą edytować wersje cień tych plików, odpowiednio / etc / shadow i / etc / gshadow. Programy ustawią odpowiednie blokady, aby zapobiec uszkodzeniu plików.
vipw
i vigr
dziękuję! Zawsze używałemsudo vim /etc/passwd
visudo
sudo.ws/man/1.8.15/visudo.man.html , @tac
sudo -e
wykonuje tę funkcję blokowania-edycji dla dowolnej edycji.
Inną opcją, zakładając, że masz dostęp do innego konta, jest ręczne zastąpienie domyślnej powłoki za pomocą su --shell=/bin/bash
:
-s, --shell = SHELL
uruchom SHELL, jeśli pozwala na to / etc / shells
Podstawową zaletą tego jest to, że wymaga tylko dostępu do innego konta, a nie innego uprzywilejowanego .
Ze względów bezpieczeństwa loginy tekstowe lub graficzne oraz narzędzia podobne su
i sudo
umożliwiające uruchamianie poleceń jako inny użytkownik - wszystkie te polecenia uruchamiane są przez powłokę użytkownika docelowego. Jeśli powłoka docelowego użytkownika nie działa, cóż, zobaczyłeś wyniki :-(
Jeśli nie zdarzy Ci się, aby gdzieś nadal działała powłoka root lub coś takiego jak plik binarny z setuid-root lub coś, co pozwala ci to obejść, ponowne uruchomienie i usunięcie problemu za pomocą systemu ratunkowego lub obrazu na żywo jest prawdopodobnie najlepszym rozwiązaniem.
Uruchom system ratunkowy, zamontuj gdzieś na przykład główny system plików prawdziwego systemu /mnt/foo
i edytuj, /mnt/foo/etc/passwd
aby naprawić powłokę. Zapisz, odmontuj i gotowe.
/etc/passwd
to nie jest zwykły tekst? Nie widziałem tego przynajmniej od dekady. Czy to wciąż coś na niektórych systemach? W każdym razie myślę, że chroot /mnt/foo chsh -s /bin/bash
może załatwić sprawę?
Dodaj init=/bin/bash
do wiersza poleceń jądra (jeśli uruchamiasz się z grub, naciśnij, e
aby edytować pozycję rozruchową), a będziesz miał powłokę bash działającą jako root bez konieczności podawania hasła. Twój główny system plików prawdopodobnie nadal będzie montowany tylko do odczytu, więc najpierw musisz go ponownie zamontować, a następnie możesz z powrotem zmienić powłokę chsh
.
sudo usermod -s /bin/bash jdoe
zmieni powłokę jdoe na bash
. Następnie możesz to sudo egrep jdoe /etc/passwd
zweryfikować.