Linux - hasło root'a



Gdy zapomnimy hasło root'a

Jak w temacie, co zrobić w takiej sytuacji. Czy jesteśmy skazani na porażkę i reinstall systemu? Odpowiedź brzmi "nie". Jest możliwość zmiany hasła bez jego znajomości. W zależności od systemu musimy wykonać kilka kroków. Metoda opiera się na modyfikacji parametrów uruchamiania systemu w GRUB'ie. Dążymy do tego by system zalogował się nam na konto root bez podawania jego hasła. Później zmieniamy hasło za pomocą passwd i przywracamy sposób uruchamiania systemu do stanu pierwotnego. Aby bardziej zobrazować linie w GRUB'ie przed i po zmianie zamieszczam je.
Przykładowa linia przed zmianą:

ro root=LABEL=/

Przykładowa linia po zmianie:

ro root=LABEL=/ single

Poniżej szczegóły.


Debian i jego pochodne

Wchodzimy w opcje bootowania w grubie, wciskamy "a" by przejść do edycji. Usuwamy "rhgb quiet", a zamiast tego wpisujemy "1"


CentOS-6

W świerzej instalacji nie można zmienić wpisów bez dodatkowej czynności: bootowanie musi nastąpić z dodanym wpisem selinux="0" w grub kernel line lub wykonując "setenforce 0" po logowaniu, a przed resetem.


CentOS-7

W boot loaderze wciskamy "e" - edycja wpisu
Inne opcje:
"Esc" - anuluje zmiany
"c" - ładuje command line interface
W Red Hat Enterprise Linux 7 rescue mode jest tażsamy z single user mode i wymaga hasła roota.
Powyższa opcja dotyczy architektury 64 bit.
Dla innych jest to linux16 line (x86-64), linuxefi (UEFI).
Opcje "1", "s" i "single" są tożsame.
Poniżej przykładowa linia po zmianie:

systemd.unit=rescue.target

ctrl + x - uruchamia system z danym parametrem.
Możemy także uruchomić system w bardziej okrojonym trybie niż rescue. Służy do tego tryb emergency, który zapewnia nam tryb tylko do odczytu, brak sieci i minimalny zestaw narzędzi.

systemd.unit=emergency.target

Red Hat Enterprise Linux 7

Tutaj mamy aż dwa sposoby na zmianę hasła root'a.

Pierwszy z nich jest przy użyciu dysku instalacyjnego:
- starujemy z dysku instalacyjnego
- Troubleshooting
- Rescue a Red Hat Enterprise Linux System
- przechodzimy przez poszczególne kroki
- chroot /mnt/sysimage
- passwd
- rm -f /.autorelabel # usuwamy by uniknąć zmiany etykiety dysku przez SELinux
- exit
- exit drugi raz

Drugi sposób opiera się na użyciu rd.break
- edycja wpisów gruba
- usuwamy rhgb i quiet
- dodajemy rd.break enforcing=0
- ctrl + x
- mount -o remount,rw /sysroot     # przemontowujemy filesystem, gdyż jest tylko do odczytu
- chroot /sysroot
- passwd
- touch /.autorelabel
- mount -o remount,ro /
- exit
- exit (drugi raz)
- restorcon /etc/shadow     # jeżeli enforcing=0 i tworzyliśmy .autorelabel
- setenforce 1
- getenforce