Jest kilka sposobów, o których mogę pomyśleć, od najmniej inwazyjnych do najbardziej inwazyjnych.
Z sudo: jeśli masz sudo
uprawnienia do uruchamiania passwd
, możesz zrobić:
sudo passwd root
Wprowadź swoje hasło, a następnie wprowadź nowe hasło dla roota dwa razy. Done.
Edytowanie plików: to działa w mało prawdopodobnym przypadku, gdy nie masz pełnego dostępu sudo
, ale masz dostęp do edycji /etc/{passwd,shadow}
. Otwórz /etc/shadow
, albo z sudoedit /etc/shadow
, albo z sudo $EDITOR /etc/shadow
. Zastąp pole hasła root’a (wszystkie losowe znaki między drugim i trzecim dwukropkiem :
) polem hasła własnego użytkownika. Zapisz. Lokalny ma takie samo hasło jak Ty. Zaloguj się i zmień hasło na coś innego.
To są te łatwe.
Wymagany restart
Tryb pojedynczego użytkownika: To zostało właśnie wyjaśnione przez Renana. Działa, jeśli możesz dostać się do GRUB-a (lub twojego boot loadera) i możesz edytować linię poleceń Linuksa. Nie działa, jeśli używasz Debiana, Ubuntu i kilku innych. Niektóre konfiguracje bootloadera wymagają podania hasła i musisz je znać, aby kontynuować. Bez dalszych ceregieli:
- Reboot.
- Wprowadź hasło boot-time, jeśli istnieje.
- Wprowadź menu swojego programu ładującego.
- Jeśli dostępny jest tryb pojedynczego użytkownika, wybierz go (Debian nazywa go 'Recovery mode').
- Jeśli nie, i uruchomiłeś GRUB-a:
- Podświetl swoją normalną opcję startową.
- Naciśnij e, aby wejść w tryb edycji. Możesz zostać tam poproszony o hasło do GRUBa.
- Podświetl linię zaczynającą się od
kernel
lublinux
. - Naciśnij e.
- Dodaj słowo 'single' na końcu. (nie zapomnij poprzedzić go spacją!)
- Naciśnij Enter i uruchom edytowaną zwrotkę. Niektóre GRUBy używają Ctrl-X, inne b. Na dole ekranu jest napisane, który z nich jest właściwy.
Twój system uruchomi się w trybie pojedynczego użytkownika. Niektóre dystrybucje nie poproszą Cię o hasło roota (Debian i oparte na Debianie tak). Teraz jesteś rootem. Zmień swoje hasło:
mount / -o remount,rwpasswd # Enter your new password twice at the promptsmount / -o remount,rosync # some people sync multiple times. Do what pleases you.reboot
i reboot
, lub, jeśli znasz swój normalny runlevel, powiedz telinit 2
(lub cokolwiek to jest).
Replacing init
: powierzchownie podobny do sztuczki z trybem pojedynczego użytkownika, z w dużej mierze tymi samymi instrukcjami, ale wymaga znacznie więcej zręczności z wierszem poleceń. Uruchamiamy jądro jak wyżej, ale zamiast single
, dodajemy init=/bin/sh
. Spowoduje to uruchomienie /bin/sh
w miejsce init
, i da ci bardzo wczesną powłokę z prawie żadnymi udogodnieniami. W tym momencie twoim celem jest:
- Zamontowanie woluminu root.
- Uruchomienie
passwd
running. - Zmiana hasła za pomocą polecenia
passwd
.
W zależności od konkretnej konfiguracji, mogą to być trywialne (identyczne z instrukcjami dla trybu pojedynczego użytkownika), lub wysoce nietrywialne: ładowanie modułów, inicjalizacja programowego RAID, otwieranie zaszyfrowanych woluminów, uruchamianie LVM, et cetera. Bez init
, nie uruchamiasz dajmonów ani żadnych innych procesów poza /bin/sh
i jego dziećmi, więc jesteś dosłownie zdany na siebie. Nie masz też kontroli nad zadaniami, więc uważaj na to, co wpisujesz. Jeden źle umieszczony cat
i możesz być zmuszony do ponownego uruchomienia, jeśli nie możesz się z tego wydostać.
Rescue Disk: ten jest prosty. Uruchom wybrany przez siebie dysk ratunkowy. Zamontuj swój główny system plików. Proces zależy od tego, jak ułożone są woluminy, ale ostatecznie sprowadza się do:
# do some stuff to make your root volume available. # The rescue disk may, or may not do it automatically. mkdir /tmp/my-root mount /dev/$SOME_ROOT_DEV /tmp/my-root $EDITOR /tmp/my-root/etc/shadow # Follow the `/etc/shadow` editing instructions near the top cd / umount /tmp/my-root reboot
Oczywiście, $SOME_ROOT_DEV
to jakakolwiek nazwa urządzenia blokowego jest przypisana do twojego głównego systemu plików przez dysk ratunkowy, a $EDITOR
to twój ulubiony edytor (który może mieć vi
w systemie ratunkowym). Po wykonaniu reboot
, pozwól maszynie uruchomić się normalnie; hasło roota będzie hasłem twojego własnego użytkownika. Zaloguj się jako root i zmień je natychmiast.
Inne sposoby
Oczywiście, istnieje niezliczona ilość wariantów powyższego. Wszystkie sprowadzają się do dwóch kroków:
- Uzyskać dostęp do komputera przez roota (catch-22 – i prawdziwa sztuczka)
- Zmienić jakoś hasło roota.
.