Zmień powłokę roota bez sudo

1

Przez przypadek zmieniłem moją powłokę root, aby użyć nieistniejącej powłoki, a teraz użytkownik root ulega awarii podczas próby zalogowania. Ponieważ nie mam zainstalowanego sudo , nie mogę ręcznie zmienić powłoki w etc / passwd. Czy są jakieś opcje w trybie ratunkowym, które mogą mi pomóc?

cjsimon
źródło
Spróbowałbym użyć dysku na żywo do naprawy powłoki roota. To prawdopodobnie byłby twój najlepszy wynik. Użyj Cd lub USB Live Boot.
NetworkKingPin
1
Dysk na żywo działał idealnie. Zamontowałem dysk i skorzystałem z chroot, aby uzyskać do niego dostęp. Stamtąd udało mi się zmodyfikować wartość powłoki root w / etc / passwd.
cjsimon
Cieszę się, że pomogłem.
NetworkKingPin

Odpowiedzi:

3

Opublikowanie tego jako odpowiedzi na dalszą pomoc potrzebującym.

W takim przypadku użyj dysku Live. Każdy dysk Live będzie działał.

Zamontuj dysk i używaj chroot, jak @Christoper Simonpodano.

I zmodyfikuj wprowadzone ustawienia, które sprawiły, że Distro nie nadaje się do użytku.

NetworkKingPin
źródło
0

Najpierw edytuj, /etc/shellsaby dołączyć wiersz pasujący do powłoki zdefiniowanej dla katalogu głównego, na przykład

/bin/zsh

Wydaje się, że ten prezent wystarczy, aby go zignorować.

su -s '/bin/bash' -c 'vi /etc/passwd'

Powinno to zawiesić się na chwilę, gdy szuka Zsh, a następnie kontynuować i uruchomić bash i wykonać polecenie.

Paweł
źródło
Wygląda na to, że niepoprawnie odczytuje niepoprawną powłokę jako część polecenia: „Nie można wykonać zsh”
cjsimon
Dla obu z nich? Tak, widzę, że nadal próbuje wywołać powłokę domową, gdy su. Wytrzymać.
Paul
/ etc / shells jest odczytywany tylko bez uprawnień roota
cjsimon
Oczywiście, że tak. Bzdury.
Paul