Faceți căutări pe acest blog

duminică, 30 noiembrie 2014

Resetare/ schimbare/ ștergere parole

 SCHIMBARE PAROLĂ
 Schimbarea parolei unui cont de utilizator este simplă, dăm într-un terminal comanda:
 passwd nume-utilizator
 și la cerere tastăm de două ori parola, de două ori pentru a fi evitate greșelile de tastare. Putem schimba parola acelui cont fiind logați ca acel user sau ca user root, userul root poate schimba parola oricărui cont de utilizator, poate crea sau șterge orice cont deasemenea!
 Pentru schimbarea parolei contului root comanda va fi:
passwd (sau passwd root)
urmată de aceeeași procedură de scriere a parolei, aceasta fiind logați pe contul root. Ubuntu și derivatele nu folosesc implicit contul de root, acesta avand o parolă random, ci se folosesc de sudo, dar putem aloca o parolă anume contului root cu comanda:
sudo passwd (sau sudo passwd root)
și folosi acel cont root.

 Simplu, dar presupune că suntem în sistemul Linux și cunoaștem parolele conturilor respective. Problema apare dacă am uitat parola contului de root sau al contului de utilizator cu drept de sudo, sau dacă am cumparat un laptop nou cu Linux preinstalat și nu stim nici o parolă. Nici asta nu-i ceva complicat, vom reseta parola/ parolele.

 RESETARE PAROLE
 Putem reseta parola contului root sau a oricărui alt utilizator, de exemplu a celui cu drept de sudo cu orice live-cd Linux, indiferent de distribuție sau direct de pe sistemul deja instalat, varianta cea mai simplă...
 În timpul procesului de bootare ne apare meniul de boot cu sistemele instalate/ disponibile, tot ce trebuie este sa edităm una din aceste intrari de boot pentru a ne loga în sistem ca utilizator single.
 Dacă nu apare meniul de boot va trebui să ținem apăsată tasta Shift în timpul bootării, meniul Grub va apărea. Când meniul Grub e vizibil, selectăm una din acele menuentrys (navigăm sus/ jos cu tastele săgeți, linia respectivă va avea background colorat diferit), o edităm apăsând tasta e, vor apărea mai multe linii, navigăm la cea ce incepe cu kernel sau linux, și la sfârșitul acelei linii adaugăm opțiunea init=/bin/bash. Navigăm cu tastele săgeți sus, jos, stânga, dreapta în direcția dorită, la sfârșitul acelei linii apăsăm întâi Space apoi scriem init=/bin/bash. Apăsăm tasta F10 (sau combinația Ctrl+x) și sistemul va boota in mod single-user (runlevel 1). O altă variantă este ca-n loc de init=/bin/bash să adăugăm aceleiași linii Single sau S, rezultatul este același, vom fi logați direct țntr-un shell cu drepturi de root... Recomand totuși folosirea init=/bin/bash (sau init=/bin/sh) în loc de Single, dar puteți încerca orice variantă.

 Montăm partiția / cu drepturi de scriere (rw, implicit este montată read only, ro):
mount -n -o remount,rw /
și schimbăm parola:
passwd
 Reboot și-ați rezolvat problema.

 În Ubuntu și derivate și poate și-n alte distribuții, în meniul Grub selectăm linia cu ”Advanced options...” și vom vedea și o intrare (poate mai multe, este câte una pentru fiecare versiune de kernel) ce conține în nume recovery mode:

 Selectând linia ce începe cu root și apăsând Enter vom fi logați într-un shell cu drepturi de root, montăm partiția / și schimbăm parola:
mount -n -o remount,rw /
passwd
reboot -f  (sau apăsați Ctrl+Alt+Del)
 Iar dacă doriți schimbarea parolei utilizatorului cu drept de sudo:
passwd nume-user
 În cazul pomenit mai sus al unui laptop cu Linux preinstalat e posibil să nu cunoașteți numele contului de utilizator, îl aflați cu:
ls /home
 Va fi afișat numele directorului personal al utilizatorului, deci implicit numele acelui utilizator.

 Spuneam ca putem folosi și-un live-cd, metoda este puțin mai greoaie, trebuie să bootăm de pe cd într-o sesiune live.
 Ok, acum va trebui sa aflăm care este partitia /, comanda fdisk -l va afisa partițiile. Dacă doar am uitat o parolă bănuiesc că măcar știm tabela de partiții, de exemplu știm că / este /dev/sda1, dacă e un laptop nou cu Linux preinstalat ne putem orienta după ordinea partițiilor (/ ar putea fi prima partiție), tip (Linux), dimensiune (/ ar trebui să aibă undeva între 10 și 20-25 GB), sau mai sigur putem verifica montând partițiile pe rând și verificând conținutul.

Va trebui în ordine să creăm un punct de montare (în exemplul următor va fi /mnt/test), să montăm partiția presupusă a fi / în acel punct de montare și să vedem conținutul acelei partiții:
mkdir /mnt/test
mount /dev/sda1 /mnt/test
ls /mnt/test
 Dacă vor fi listate directoarele din /, bin, boot, etc, usr, șamd înseamnă că am nimerit, /dev/sda1 este partiția /, cea potrivită, dacă nu o demontăm cu:
umount /mnt/test
și montăm altă partiție, /dev/sda2, /dev/sda3, etc, listăm conținutul acesteia cu ls, în fine, până montăm partiția căutată, /. În acel moment ne mutăm pe acea partiție:
chroot /mnt/test
și schimbăm parola contului root:
passwd
 Pentru schimbarea parolei unui cont de utilizator cu drept de sudo (specific Ubuntu și derivate) comanda va fi:
passwd nume-cont-user (de exemplu passwd dan)
 Ieșim cu comanda exit, demontăm partiția / cu umount /mnt/test, repornim sistemul și vom putea folosi noua parolă.

 ȘTERGERE PAROLE
 O altă metodă ar fi ștergerea parolei stocate în /etc/shadow, trebuie să bootam în maniera expusă mai sus (cu init=/bin/bash adăugat la linia kernelului), să aflăm și să montăm partiția /, să facem chroot și să edităm cu un editor text (mcedit, nano, vi) fișierul /etc/shadow, mai exact linia referitoare la contul ce ne interesează (root sau userul cu drept de sudo), ceva de genul:
root:$6$tysZABeM$d7Oq1eZmQ23Qv3rbtkaNCaSFLkg/TeTH0:16345::::::

shogun:$TkJ3n8XIlCp9nd7NSsGlSwR6fRbABMPUHIs0:16345:0:99999:7:::

 Fiecare cont are alocată o linie în fișierul /etc/shadow, linia respectivă conține 9 câmpuri cu informații separate prin :, primul câmp e numele contului de utilizator, apoi separatorul :, urmează parola criptată, nu e parola în clar, iar separatorul :, data când a fost setată parola (nu data propriu zisa ci numărul de zile trecute de la 1 ianuarie 1970...), și altele.  Dacă între separatorii : nu e scris nimic atunci acel tip de opțiune nu e setat implicit, ca și cum n-ar exista parolă sau data de expirare a parolei sau dezactivare a contului. Ceea ce ne interesează de fapt pe noi este hash-ul parolei, deci al doilea câmp al liniei, dacă ștergem acel hash și salvăm schimbarea, contul respectiv nu va mai avea parolă alocată, o putem seta simplu după reboot, direct, fără să ni se ceară parola actuală, prezentă, curentă... Linia sau liniile vor fi:
root::16345:::::: 
shogun::16345:0:99999:7:::

 Ca fapt divers, că tot pomeneam de data setării parolei, nu e cazul să treceți la calcule complicate, e suficient să dați comanda
chage -l nume-cont
pentru a vedea data ultimei setări a parolei acelui cont.

Niciun comentariu:

Trimiteți un comentariu

Back to top