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).
[…] rulăm această comandă pe fiecare fișier sau director de pe mașină (de exemplu, atunci când am schimbat parola de root folosind metoda descrisă în acest articol). Pentru aceasta, vom face un fișier gol în directorul rădăcină al sistemului și vom restarta […]