Jak możemy zmienić hasło roota?


Odpowiedzi:


63

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:

  1. Restart.
  2. Wprowadź hasło czasu rozruchu, jeśli istnieje.
  3. Wejdź do menu modułu ładującego.
  4. Jeśli dostępny jest tryb pojedynczego użytkownika, wybierz go (Debian nazywa go „trybem odzyskiwania”).
  5. Jeśli nie, uruchomisz GRUB:
    1. Podświetl swoją normalną opcję rozruchu.
    2. Naciśnij, eaby przejść do trybu edycji. Możesz zostać poproszony o podanie hasła GRUB.
    3. Podświetl linię zaczynającą się od kernellub linux.
    4. Prasa e.
    5. Dodaj słowo „singiel” na końcu. (nie zapomnij wstawić spacji!)
    6. 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:

  1. Zainstaluj wolumin główny.
  2. Uzyskaj passwduruchomiony.
  3. 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:

  1. Uzyskaj dostęp root do komputera (catch-22 - i prawdziwa sztuczka)
  2. Zmień hasło roota jakoś.

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ć?
CMCDragonkai

WRT „Jakoś zmienić hasło roota”, patrz tutaj: unix.stackexchange.com/a/168422/25985
goldilocks

7

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 :

  1. Wejdź do menu GRUB i naciśnij e.
  2. Wybierz linię zaczynającą się od kernel, naciśnij eponownie.
  3. 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.


1
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)
NullUser
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.