Miesięczne archiwum: Lipiec 2006

Resetowanie hasła roota

Kemyk, zadowolony użytkownik Suse zapytał mnie, jak odzyskać hasło roota – bo zapomniał 😉

Rozwiązań problemu jest kilka, ale opiszę sprawdzony sposób.
BTW: wszystkie sprawdzane przeze mnie sposoby wymagają fizycznego dostępu do komputera.

Cały problem sprowadza się do edycji pliku /etc/passwd lub /etc/shadow. Większość nowoczesnych dystrybucji używa przesłaniania haseł (ang. shadow password). Technika ta polega na utrzymywaniu danych użytkowników w /etc/passwd i ich haseł w osobnym pliku /etc/shadow i odpowiednim ustawieniu praw dostępu. Oczywiście hasła są zakodowane.

Sposób 1

Uruchamiamy system z jakiegoś live cd (ie. Knoppix, Slax) lub płyty instalacyjnej która umożliwia „rescue” systemu. Najprawdopodobniej system uruchomi się trybie tekstowym (czy są graficzne „rescue mode’y”?). Wykonujemy następujące kroki:

1. Mountujemy partycję, na której znajduje się nasz „zapomniany root”

Jeśli przykładowo nasz linuks znajduje się na /dev/hda1 (tzn. znajduje się tam katalog bin, etc) i w naszym ratunkowym syst6emie istnieje katalog /mnt (np w Suse) mountujemy go w trybie odczytu-zapisu wykonując polecenie

mount /dev/hda1 /mnt -o rw

2. Sprawdzamy czy plik passwd ma odpowiednią strukturę

„Używamy ulubiony edytor do edycji pliku ;-)”. Bardzo lubię ten tekst, bo w praktyce musimy użyć vi. Wydajemy komendę

vi /mnt/etc/passwd

Zobaczymy wśród wielu linii np taką

root:x:0:0:root:/root:/bin/bash

Interesujące dla nas jest, aby po słowie po pierwszym dwukropku był x. Prawdopodobnie tak jest i wpisujemy :q! i ENTER – opuszczamy vi.

3. Edytujemy plik shadow

Uruchamiamy vi komendę

vi /mnt/etc/shadow

Wśród wielu linii wyszukujemy taką linię (lub podobną, musi zaczynać się od root:, to co jest dalej musi się różnić

root:$1$aPe/21ze$oz.0VEaDNAI20qZ6gC347.:13334::::::

Ustawiamy siś na pierwszym znaku po dwukropku (w tym przypadku $). Naciskamy delete na klawiaturze tak długo aż pod kursorem ustawi się drugi dwukropek. Oczekuję mniej więcej takiego wyniku

root::13334::::::

Zapisujemy efekty naszej pracy wpisując :wq i ENTER – wracamy do konsoli.

4. Resetujemy komputer

Wpisujemy reboot i ENTER. Wyjmujemy płytę z napędu cd/dvd podczas rozruchu i uruchamiamy naszego linuksa normalnie.

5. Logujemy się jako zwykły użytkownik

Ponieważ nie każda dystrybucja umożliwia wykonanie su z X-ów proponuję kombinację klawiszy CTRL+ALT+1 aby przejść na pierwszą konsolę. Wpisujemy swój login i hasło (zwykłego użytkownika!!!)

Uruchamiamy komendę su i ENTER. Jeżeli wszystko poszło dobrze mamy uprawnienia roota!

6. Wpisujemy nowe hasło root

Uruchamiamy polecenie passwd i ENTER – ustanawiamy nowe hasło wpisując je dwukrotnie.
Poleceniem exit i ENTERwracamy na konto zwykłego użytkownika. Gdy chcemy wrócić do trybu graficznego wystarczy (najprawdopodobniej – zależy od dystrybucji) jednocześnie nacisnąć klawisze CTRL+ALT+7

I to wszystko!