Popełniłem ten sam błąd, dodając moje konto do grupy (zapomniałem -a
). Miałem zainstalowany system z zablokowanym loginem roota, a moje konto było jedynym na komputerze.
Przyjęta odpowiedź nie pomogła mi. Podczas uruchamiania w trybie odzyskiwania dostałem tylko nieprzydatną wiadomość
Nie można otworzyć dostępu do konsoli, konto root jest zablokowane. Więcej informacji na stronie podręcznika użytkownika sulogin (8)
Naciśnij ENTER, aby kontynuować
Po naciśnięciu klawisza ENTER system uruchomił się normalnie: nie można uzyskać dostępu do konta root, aby rozwiązać problem. Pozostawiam tę odpowiedź na wypadek, gdyby ktoś w tym momencie znalazł się w moich butach. Użyj następujących opcji tylko wtedy, gdy nie możesz przejść do trybu odzyskiwania za pomocą menu Grub .
Przewodnik dotyczący uzyskania powłoki roota:
- Uruchom system w menu Grub i zaznacz (ale nie naciskaj Enterdalej!) Normalną (domyślną, nie odzyskiwanie!) Opcję rozruchu.
- Prasa
e
. Grub wyświetli edytor wiersza poleceń z wieloma wierszami, z których każdy może wydawać się nieznany, jeśli nie onieśmiela. Nie martw się, wszelkie wprowadzone zmiany nie zostaną zapisane na stałe.
- Znajdź linię, która czyta
linux ... ro ...
. To jest linia poleceń jądra. Wymień ro
żeton rw
, aby korzeń systemu plików do zapisu / odczytu, a także dodać kolejną linię poleceń parametr jądra init=/bin/sh
. To instruuje jądro do wykonania sh
zamiast /sbin/init
. W końcu linia powinna wyglądać linux ... rw init=/bin/sh ...
. Uwaga: Możesz sobie poradzić nawet z gołym grub>
monitem. Z przyjemnością wyjaśnię krok po kroku, jeśli wszystko inne zawiedzie dla ciebie; zostaw komentarz do tej odpowiedzi.
- Po zmianie naciśnij, F10aby użyć poleceń edytora do uruchomienia systemu (lub przeczytaj instrukcje uruchamiania bezpośrednio pod oknem edytora, jeśli Grub jest skompilowany inaczej). Dostaniesz monit o powłokę roota, ponieważ proces init działa jako PID 1 z tożsamością roota.
- Wprowadź na przykład zmianę, którą chcesz wprowadzić
usermod -a -Gadm,sudo YOURUSERID
. Potwierdź id -a YOURUSERID
, że odzyskałeś członkostwo sudo. Jeśli pojawi się błąd „nie znaleziono polecenia”, użyj /sbin/usermod
i /bin/id
.
W tym momencie nie można zamknąć systemu ani zrestartować systemu. reboot
, halt
Lub poweroff
nie będzie działać, a exit
od powłoki spowoduje panikę jądra, ponieważ proces PID 1 nie oczekuje się po prostu wyjść. Następne dwa polecenia, które musisz wydać, to:
sync
exec /sbin/init
sync
na wypadek, gdyby coś poszło nie tak, aby zapisać wszystkie zmiany na dysku i exec
zastąpić powłokę rzeczywistą init
(która może być systemd, upstart lub System V init, ale zawsze jest wywoływana /sbin/init
). System najprawdopodobniej będzie nadal uruchamiał się normalnie (bez trybu odzyskiwania).
- Zaloguj się i zrestartuj system raz, np.
sudo reboot
- powinieneś odzyskać swoje uprawnienia sudo. Ponowne uruchomienie jest zalecane, ponieważ (choć bardzo rzadko) init
można przekazać dodatkowe parametry podczas normalnego rozruchu, czego nie zrobiliśmy. W przypadku exec
niepowodzenia po prostu zresetuj maszynę i pozwól jej uruchomić się normalnie. Wszystkie nowoczesne systemy plików kronikowania, takie jak ext4, xfs i btrfs, odzyskują się szybko (najwyżej kilka sekund na sprawdzenie dziennika, jeśli sync
ed przed resetowaniem), i wszystko będzie gotowe.
Trochę tła
Nie było dyskusji na temat zgłoszenia Debiana na temat tego samego problemu, i, o ile rozumiem, to zdecydowano funkcję, a nie błąd, który sądzę, aby były raczej pomyłka. Będąc w tym biznesie od 25 lat, nie mogę się nie zgodzić z argumentem Michaela Biebl w przesłaniu nr 31 w tym wątku:
Zastanów się: masz laptopa z zablokowanym kontem głównym. Domyślnie program ładujący gruba generuje pozycję rozruchową dla trybu ratunkowego. Tak więc, nawet jeśli zablokujesz bios, aby uniemożliwić uruchamianie z płyty CD-ROM lub USB, a ty zabezpieczysz gruba hasłem, ktoś może łatwo uzyskać dostęp do roota, jeśli zostawisz laptopa na chwilę bez nadzoru.
Poprawny, IMO, jeśli nie dość ogólny, sprzeciw został podany w wiadomości nr 70 przez Felipe Sateler:
Dla wielu (większości?) Komputerów dostęp fizyczny oznacza utratę bezpieczeństwa ze względu na bezpieczeństwo, ponieważ można po prostu zdemontować urządzenie i uzyskać dysk twardy.
Jest to szczególnie ważne w przypadku laptopa, o którym mowa w argumencie Michaela: jeśli pozostawisz go na chwilę bez opieki, a ktoś będzie szukał twoich danych, laptop po prostu zniknie, aby nigdy więcej go nie zobaczyć. I dla każdej maszyny, nie „wielu” lub „większości”, nawet tych przykręconych w 8 punktach do szafy, gdy tylko atakujący uzyska fizyczny dostęp do maszyny, gra naprawdę się kończy.