Oto kilka sposobów, od których mogę myśleć, od najmniej inwazyjnych do najbardziej ingerujących.
Bez ponownego uruchamiania
Z sudo: jeśli masz sudouprawnienia 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 sudodostępu, ale trzeba zrobić, mieć dostęp do edycji /etc/{passwd,shadow}. Otwórz /etc/shadowza pomocą sudoedit /etc/shadowlub 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.
Wymagany restart
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:
Restart.
Wprowadź hasło czasu rozruchu, jeśli istnieje.
Wejdź do menu modułu ładującego.
Jeśli dostępny jest tryb pojedynczego użytkownika, wybierz go (Debian nazywa go „trybem odzyskiwania”).
Jeśli nie, uruchomisz GRUB:
Podświetl swoją normalną opcję rozruchu.
Naciśnij, eaby przejść do trybu edycji. Możesz zostać poproszony o podanie hasła GRUB.
Podświetl linię zaczynającą się od kernellub linux.
Prasa e.
Dodaj słowo „singiel” na końcu. (nie zapomnij wstawić spacji!)
Naciśnij Enteri uruchom edytowaną sekcję. Niektóre GRUBY używają Ctrl- Xniektóre używają b. Mówi, który jest na dole ekranu.
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 singledodajesz init=/bin/sh. To zadziała /bin/shw miejsce initi da ci bardzo wczesną powłokę bez prawie żadnych udogodnień. W tym momencie Twoim celem jest:
Zainstaluj wolumin główny.
Uzyskaj passwduruchomiony.
Zmień hasło za pomocą passwdpolecenia.
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 inittego nie uruchamiasz demonów ani żadnych innych procesów, ale /bin/shi 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ę cati 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_DEVto dowolna nazwa urządzenia blokowego przypisana do głównego systemu plików przez dysk ratunkowy i $EDITORjest twoim ulubionym edytorem (który może być viw 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.
Inaczej
Oczywiście istnieją niezliczone warianty powyższego. Wszystkie sprowadzają się do dwóch kroków:
Uzyskaj dostęp root do komputera (catch-22 - i prawdziwa sztuczka)
W każdym razie, aby to zrobić zdalnie? Zakładając, że SSH został zamknięty.
CMCDragonkai
1
Bez SSH (lub, przypuszczalnie żadnej z innych, strasznie niepewnych metod, takich jak rsh lub telnet), nie masz zdalnego dostępu do komputera, więc nie możesz zmienić hasła. O ile oczywiście na komputerze docelowym nie ma znanego problemu, który może zostać wykorzystany zdalnie, który może w jakiś sposób pomóc w odrodzeniu powłoki. Ta myśl przeraża mnie bardziej niż działającego na niej demona telnet. :)
Alexios
Więc musiałbym się tam fizycznie teleportować, żeby to naprawić?
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ć rootpo znaku zachęty do logowania i nie poprosi o to. Następnie możesz użyć, passwdaby ustawić jeden.
Aby zachować szczególną ostrożność:
Utwórz kopię zapasową /etc/shadowpierwszego.
Nie loguj się jako ktoś inny niż root, dopóki nie ustawisz nowego hasła. To nie jest krytyczne, ale chroni przed teoretyczną możliwością nieuprzywilejowanego złośliwego oprogramowania, które wywołuje jakiś gradobicie („Hej, może nie ma hasła roota…”). Trochę naciągane IMO.
To zadziała, ale chłopcze to sprawia, że * kulę się *, aby usunąć hasło z konta root. Rozumiem, że Ubuntu nie upuszcza cię do powłoki roota na poziomie 1? Czy nie lepiej byłoby uruchomić passwdw środowisku chroot z płyty CD na żywo?
SailorCire,
Jeśli poczujesz się bezpieczniej, próbując najpierw tych innych metod, śmiało. Ale dopóki nie opuścisz systemu bez hasła roota, powinno to być w porządku. Nie byłoby sensu w złośliwym oprogramowaniu, które próbowałoby to wykorzystać, ponieważ gdyby działało przy rozruchu, i tak ma już uprawnienia root. Więc nie loguj się jak nikt inny, jak sądzę (może to być problem w systemach, które nie pozwalają na rootowanie za pomocą menedżera wyświetlania, chyba że możesz przełączyć się na konsolę). Nawet wtedy wydaje się to mało prawdopodobne.
goldilocks
@SailorCire ^^^
goldilocks
Mam również bardzo wątpliwości co do możliwości złośliwego oprogramowania. Jednak pomysł, który zasugerowałem, jest taki, że zabrania to mentalności typu „Och, zmienię to później, ponieważ teraz działa”, do której należy wielu z nas.
SailorCire,
Możesz również odnieść się do tej odpowiedzi, aby /etc/shadow
dowiedzieć
4
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 :
Wejdź do menu GRUB i naciśnij e.
Wybierz linię zaczynającą się od kernel, naciśnij eponownie.
Na końcu tej linii umieść single. Następnie naciśnij ENTERi boot z niego.
W końcu pojawi się monit, w którym możesz wpisać passwd rooti zmienić hasło. Następnie wpisz, rebootaby ponownie uruchomić system.
Działa to tylko wtedy, gdy nie masz hasła rozruchowego.
pradeepchhetri
1
A jeśli nie używasz / sbin / sulogin dla powłoki pojedynczego użytkownika (wyświetli się monit o hasło roota).
James O'Gorman,
Jeśli możesz dostać się do systemu plików, możesz edytować, /boot/grub/grub.confaby usunąć hasło bootloadera i /etc/inittabzmienić powłokę dla jednego użytkownika na coś takiego jak / bin / sh (cc @pradeepchhetri)
Odpowiedzi:
Oto kilka sposobów, od których mogę myśleć, od najmniej inwazyjnych do najbardziej ingerujących.
Bez ponownego uruchamiania
Z sudo: jeśli masz
sudo
uprawnienia do uruchamianiapasswd
, możesz: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.
Wymagany restart
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
lublinux
.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:
i
reboot
, lub jeśli znasz swój normalny poziom działania, powiedztelinit 2
(lub cokolwiek to jest).Zastępowanie
init
: 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 tegosingle
dodajeszinit=/bin/sh
. To zadziała/bin/sh
w miejsceinit
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:
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). Poreboot
, pozwól maszynie uruchomić się normalnie; Hasło roota będzie hasłem twojego użytkownika. Zaloguj się jako root i zmień go natychmiast.Inaczej
Oczywiście istnieją niezliczone warianty powyższego. Wszystkie sprowadzają się do dwóch kroków:
źródło
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 musiszchmod u+w shadow
. Znajdź wpisroot
, prawdopodobnie jest to pierwszy i wygląda mniej więcej tak:Wymaż wszystko między dwoma pierwszymi dwukropkami, aby otrzymać:
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.źródło
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.źródło
/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)