aA

Resetowanie hasła roota w systemie Linux

Resetowanie hasla roota

W tym artykule poznamy sposób na to, jak w prosty i stosunkowo bezbolesny sposób zresetować hasło superużytkownika w systemie Linux. Oczywiście uwzględnimy tutaj przede wszystkim systemy z rodziny Enterprise Linux. Poradnik ten działa więc zarówno na EuroLinuxie, jak i na RHEL-u®, Oracle® Linuxie, czy CentOS-ie.

Konieczność zresetowania hasła roota, oprócz oczywistego jego zapomnienia, wiąże się też z reguły z innymi problemami, takimi jak:

1. Skasowanie dostępu po kluczu SSH.
2. Niepoprawna konfiguracja firewall skutkująca niemożliwością zdalnego zalogowania się do systemu.
3. Brak użytkownika, który może eskalować swoje uprawnienia na przykład przy użyciu sudo.

By zresetować hasło roota, będziemy potrzebować:

1. Dostępu do konsoli maszyny, oczywiście dostęp ten może być zarówno fizyczny, jak i zwirtualizowany (np. przez klienta przeglądarkowego).
2. Jeśli dysk jest zaszyfrowany, to hasła do dysku.
3. Jeśli bootloader jest chroniony hasłem, będziemy potrzebować hasła lub użycia innego źródła, z którego uruchomimy system. Może to być płytka instalacyjna, na której wybieramy tryb ratowania systemu.

Ze względu na mnogość opcji, przedstawiony poradnik zakłada, że osoba próbująca zresetować hasło roota, ma dostęp do bootloadera lub jest w stanie uruchomić system ratunkowy.

Reset hasła w nowszych dystrybucjach Enterprise Linux 7 i 8

Jeśli mamy dostęp do bootloadera GRUB (najpopularniejszy bootloader wykorzystywany między innymi przez EL), przed startem systemu możemy przerwać sekwencję jego uruchamiania, wciskając dowolny klawisz. Następnie przy pomocy klawisza e należy wejść w edycję wpisu GRUB.

Reset hasła

Następnie poruszając się przy pomocy strzałek, wybieramy linię, na której znajdują się parametry jądra.

Reset hasła

Linia ta zaczyna się od „kernel” i w zależności systemu i jego konfiguracji, może to być między innymi: „kernel”, „kernel16” lub „kernelefi”. W pewnych przypadkach należy skasować niektóre parametry, z reguły „console=”. Na sam koniec linii dopisujemy rd.break. Następnie przy pomocy kombinacji klawiszy ctlr-x startujemy system. Procedura rozruchowa systemu zostanie wtedy zatrzymana na wczesnym etapie procesu jego uruchamiania.

Od tego momentu na konsoli należy wykonać następujące kroki:

1. mount -o rw,remount /sysroot – krok ten jest odpowiedzialny za ponowne zamontowanie głównej partycji systemu w trybie do odczytu.
2. chroot /sysroot – uruchamia powłokę w nowym katalogu głównym.
3. passwd – zmienia hasło superużytkownika.
4. Jeśli na systemie włączony jest SELinux, mamy dwie możliwości. Pierwszą dużo wolniejszą jest utworzenie pliku /.autorelabel np. przy pomocy touch /.autorelabel. Poskutkuje to jednak ponownym nadaniem kontekstów SELinuxowych dla wszystkich plików. Proces ten może być długotrwały, a czas jego trwania zależy między innymi od ilości plików i szybkości dysku. Niemniej, nawet na małych maszynach jest on zauważalny. Po tym procesie maszyna automatycznie się zrestartuje. Druga możliwość jest opisana w punkcie 5 i 6.
5. Przy pomocy load_policy -i ładujemy do jądra polityki SELinuxa. Przełącznik -i jest opcją informującą program load_policy, że ma do czynienia z pierwszym załadowaniem reguł SELinuxa i tylko w takim wypadku należy go używać.
6. Przy pomocy restorecon -Rv /etc/ lub restorecon -v /etc/shadow przywracamy konteksty plikom. Opcja -v odpowiada za bardziej informacyjne wyjście, czasem nazywane gadatliwym (wprost z tłumaczenia słowa verbose). Z kolei opcja -R przywraca rekursywnie konteksty.
7. Wyjść z chroota i wykonać reboot.

Przykładowe odzyskiwanie w EuroLinuxie 7:

3

Reset hasła w Enterprise Linuxie w wersji 6

EuroLinux w wersji 6 używa starszej wersji GRUB. Znów należy przerwać sekwencję uruchamiania.

Reset hasła

Następnie naciskamy na wybranym jądrze bądź systemie klawisz e w celu edycji parametrów.

Reset hasła

Wybieramy interesujący nas parametr, klikamy ponownie klawisz e, by dokonać edycji opcji jądra systemu operacyjnego.

Reset hasła

Późniejszym krokiem jest dopisanie jednego z następujących parametrów – single, s, S lub 1. Między grupą s, S, i single a 1 jest subtelna różnica, lecz w naszym wypadku dadzą one taki sam efekt.

Parametr ten sprawi, że init zastosuje swój poziom 1, czyli single user mode. Jest to tryb ratunkowy dla systemu. Co ciekawe, single user mode występuje też w innych rozwiązaniach, które obsługują wielu użytkowników np. PostgreSQL, na którym oparta jest platforma bazodanowa EuroDB. Po dodaniu parametru i ewentualnym skasowaniu innych wybranych zapisujemy zmiany, wciskając klawisz Enter.

Reset hasła

W końcu uruchamiamy system przy pomocy klawisza b.

Jak widać na zrzucie ekranu poniżej, wcale nie musimy ponownie montować dysku. Co więcej, w tym wypadku reguły SELinuxa są już załadowane, a ich ponowne załadownie się nie powiedzie.

Wystarczy więc wykonać:
1. passwd
2. reboot

Reset hasła

Zakończenie

W idealnym świecie hasła nigdy nie są zapominane, a ludzie pracujący nad systemami zawsze są dostępni i nie zmieniają miejsca pracy. Zawsze jednak warto mieć plan B, którego częścią może być przedstawiona powyżej instrukcja.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *