Nu obișnuiesc să uit lucruri, mai ales pe cele importante, cum ar fi parolele. Dar, din păcate, astfel de necazuri se pot întâmpla oricui - chiar și mie :). Și am pățit-o recent: am schimbat parola unui sistem cu CentOS 7 chiar înainte de a pleca în concediu cu o parolă nouă, concepută după un alt algoritm decât cel pe care îl folosesc de ani și ani - două săptămâni de relaxare (mare, soare, bere...) au fost suficiente pentru a-mi zbura din minte noua parolă.
Și, bineînțeles, n-am reușit s-o nimeresc nici în primele 15 minute după revenirea din concediu și repetate încercări de conectare la sistemul respectiv. Dar nu e totul pierdut: există o metodă relativ simplă de resetare a parolei de root FĂRĂ să o cunoști pe cea de dinainte. Acest articol prezintă un truc simplu (încercat pe propria piele) de schimbare a parolei uitate - poate fi de un real ajutor administratorilor de sisteme Linux cu CentOS 7/Oracle Linux și care nu mai pot accesa serverul respectiv. Tutorialul funcționează doar dacă există acces direct la mașina respectivă - accesul remote nu este de ajutor, căci este necesar meniul de boot. Pașii care trebuie urmați au fost recreați pe o mașină virtuală cu CentOS 7 în Virtualbox.
Așadar, pentru început, să pornim sistemul cu CentOS 7 la care am uitat parola. Va apărea meniul de boot în care trebuie să selectăm kernelul dorit. Vom apăsa tasta e pentru a edita intrarea cu kernelul dorit:
În pagina care se deschide, vom naviga cu tastele săgeți sus-jos până găsim linia care conține root=/dev/maper/cl-root ro:
Caracterele ro le vom înlocui cu rw init=/sysroot/bin/sh:
După efectuarea acestei schimbări, apăsăm combinația de taste CTRL+X pentru a intra în modul single user. În acest shell vom schimba parola de root.
În modul single user vom rula comanda de mai jos:
chroot /sysroot
La final, vom rula comanda pentru schimbarea parolei superutilizatorului root (ni se va cere să scriem de două ori parola aleasă, FĂRĂ a solicita înainte vechea parolă):
passwd root
Pentru actualizarea contextelor SELinux, la final trebuie rulată comanda de mai jos:
touch /.autorelabel
Comanda exit
urmată reboot
și vă veți putea conecta la vechiul vostru sistem cu CentOS 7 folosind noua parolă aleasă! Metoda funcționează și pe Oracle Linux (dar și pe toate distribuțiile derivate din Red Hat).
[…] Interrupt the boot process in order to gain access to a system […]