Jeśli nie znamy hasła roota i nie mamy dostępu roota do komputera, jak możemy zmienić hasło roota?
Jeśli nie znamy hasła roota i nie mamy dostępu roota do komputera, jak możemy zmienić hasło roota?
Odpowiedzi:
Oto kilka sposobów, od których mogę myśleć, od najmniej inwazyjnych do najbardziej ingerujących.
Z sudo: jeśli masz sudo
uprawnienia do uruchamiania passwd
, możesz:
sudo passwd root
Wprowadź swoje hasło, a następnie dwukrotnie wprowadź nowe hasło roota. Gotowy.
Edycja plików : to działa w mało prawdopodobnym przypadku, gdy nie ma pełnego sudo
dostępu, ale trzeba zrobić, mieć dostęp do edycji /etc/{passwd,shadow}
. Otwórz /etc/shadow
za pomocą sudoedit /etc/shadow
lub za pomocą sudo $EDITOR /etc/shadow
. Zamień pole hasła roota (wszystkie losowe znaki między drugim i trzecim dwukropkiem :
) na pole hasła własnego użytkownika. Zapisać. Lokalny ma takie samo hasło jak ty. Zaloguj się i zmień hasło na coś innego.
To są te łatwe.
Tryb pojedynczego użytkownika : To właśnie wyjaśnił Renan. Działa, jeśli możesz dostać się do GRUB (lub twojego programu ładującego) i możesz edytować wiersz poleceń Linuksa. Nie działa, jeśli używasz Debiana, Ubuntu i niektórych innych. Niektóre konfiguracje modułu ładującego wymagają do tego hasła i musisz to wiedzieć. Bez ceregieli:
kernel
lub linux
.Twój system uruchomi się w trybie pojedynczego użytkownika. Niektóre dystrybucje nie będą w tym momencie pytać o hasło roota (robią to Debian i oparte na Debianie). Jesteś teraz rootem. Zmień swoje hasło:
mount / -o remount,rw
passwd # Enter your new password twice at the prompts
mount / -o remount,ro
sync # some people sync multiple times. Do what pleases you.
reboot
i reboot
, lub jeśli znasz swój normalny poziom działania, powiedz telinit 2
(lub cokolwiek to jest).
Zastępowanieinit
: powierzchownie podobny do triku w trybie pojedynczego użytkownika, w dużej mierze z tymi samymi instrukcjami, ale wymaga znacznie większej sprawności z linii poleceń. Uruchamiasz jądro jak wyżej, ale zamiast tego single
dodajesz init=/bin/sh
. To zadziała /bin/sh
w miejsce init
i da ci bardzo wczesną powłokę bez prawie żadnych udogodnień. W tym momencie Twoim celem jest:
passwd
uruchomiony.passwd
polecenia.W zależności od konkretnej konfiguracji mogą one być trywialne (identyczne z instrukcjami dla trybu pojedynczego użytkownika) lub wysoce nietrywialne: ładowanie modułów, inicjowanie oprogramowania RAID, otwieranie zaszyfrowanych woluminów, uruchamianie LVM i tak dalej. Bez init
tego nie uruchamiasz demonów ani żadnych innych procesów, ale /bin/sh
i ich dzieci, więc jesteś całkiem dosłownie sam. Nie masz również kontroli zadań, więc uważaj, co piszesz. Jeden zgubił się cat
i może być konieczne ponowne uruchomienie komputera, jeśli nie możesz się z niego wydostać.
Dysk ratunkowy : ten jest łatwy. Uruchom wybrany dysk ratunkowy. Zamontuj główny system plików. Proces zależy od sposobu ułożenia warstw w 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 dowolna nazwa urządzenia blokowego przypisana do głównego systemu plików przez dysk ratunkowy i $EDITOR
jest twoim ulubionym edytorem (który może być vi
w systemie ratunkowym). Po reboot
, pozwól maszynie uruchomić się normalnie; Hasło roota będzie hasłem twojego użytkownika. Zaloguj się jako root i zmień go natychmiast.
Oczywiście istnieją niezliczone warianty powyższego. Wszystkie sprowadzają się do dwóch kroków:
Myślę, że to powinno działać na prawie każdej dystrybucji.
Jeśli możesz uzyskać dostęp do partycji root z innego systemu, np. Live CD, możesz jako root z niej edytować /etc/shadow
; najpierw musisz chmod u+w shadow
. Znajdź wpis root
, prawdopodobnie jest to pierwszy i wygląda mniej więcej tak:
root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::
Wymaż wszystko między dwoma pierwszymi dwukropkami, aby otrzymać:
root::15666:0:99999:7:::
Potem chmod u-w shadow
. Możesz teraz zrestartować system, a root nie będzie miał hasła. Możesz po prostu wpisać root
po znaku zachęty do logowania i nie poprosi o to. Następnie możesz użyć, passwd
aby ustawić jeden.
Aby zachować szczególną ostrożność:
/etc/shadow
pierwszego.passwd
w środowisku chroot z płyty CD na żywo?
/etc/shadow
Sądząc po tagach, których używam, używasz RHEL, ale to rozwiązanie powinno działać równie dobrze dla wszystkich dystrybucji.
Jeśli hasło roota zostanie zapomniane, możesz uruchomić system w trybie pojedynczego użytkownika i użyć go do zmiany hasła. Podejście to opisano w przewodniku Red Hat krok po kroku :
kernel
, naciśnij eponownie.single
. Następnie naciśnij ENTERi boot z niego.W końcu pojawi się monit, w którym możesz wpisać passwd root
i zmienić hasło. Następnie wpisz, reboot
aby ponownie uruchomić system.
/boot/grub/grub.conf
aby usunąć hasło bootloadera i /etc/inittab
zmienić powłokę dla jednego użytkownika na coś takiego jak / bin / sh (cc @pradeepchhetri)