Cum să Resetați Manual Parola de Administrator WordPress
Pierderea accesului la contul de administrator WordPress nu trebuie să însemne pierderea controlului asupra site-ului tău. Dacă fluxul standard de e-mail „Ai uitat parola?” este defect — din cauza setărilor de e-mail configurate greșit, a unei adrese de e-mail inaccesibile sau a unui cont de utilizator corupt — îl poți ocoli complet prin resetarea parolei direct la nivelul bazei de date, al sistemului de fișiere sau al shell-ului.
Acest ghid acoperă patru metode testate în practică: phpMyAdmin, FTP prin functions.php, WP-CLI prin SSH și Scriptul de Resetare de Urgență WordPress. Fiecare metodă este explicată cu pași exacți, avertismente de securitate și scenariile specifice în care este alegerea corectă.
Când Fluxul Standard de Resetare Eșuează
Înainte de a recurge la o metodă manuală, înțelege de ce se defectează resetarea încorporată. Cele mai frecvente cauze sunt:
- Livrare defectă a e-mailurilor WordPress —
wp_mail()depinde de funcțiamail()a PHP sau de un plugin SMTP. Dacă niciunul nu este configurat, e-mailul de resetare este eliminat silențios. - Fără acces la căsuța de e-mail înregistrată — contul a fost creat cu o adresă dezafectată.
- Tabel
wp_userscorupt — rar, dar posibil după o migrare eșuată sau un conflict de plugin-uri. - Blocat complet din wp-admin — plugin-urile de protecție împotriva atacurilor brute-force (Wordfence, Limit Login Attempts) pot bloca chiar și endpoint-ul de resetare.
Identificarea cauzei principale contează deoarece unele metode (WP-CLI, phpMyAdmin) corectează parola fără a atinge deloc sistemul de e-mail, în timp ce altele (scriptul de urgență) necesită acces HTTP la site.
Metoda 1: Resetarea Parolei prin phpMyAdmin
Recomandat pentru: Medii de găzduire partajată unde SSH nu este disponibil, dar cPanel sau un panou de control similar este accesibil.
phpMyAdmin îți oferă acces direct de citire/scriere la baza de date MySQL sau MariaDB care stochează toate acreditările utilizatorilor WordPress. Parolele sunt stocate ca hash-uri bcrypt (WordPress 6.x+) sau hash-uri MD5 (instalări vechi). Selectorul de funcții încorporat al phpMyAdmin gestionează automat hash-urile.
Pasul 1: Deschide phpMyAdmin din Panoul de Control
Conectează-te la panoul de control al găzduirii — cPanel, DirectAdmin sau un panou personalizat. Localizează secțiunea Baze de date și fă clic pe phpMyAdmin. Dacă ești pe un VPS cu cPanel, calea este de obicei cPanel > Baze de date > phpMyAdmin.
Pasul 2: Selectează Baza de Date WordPress
În bara laterală din stânga, fă clic pe numele bazei de date asociate instalării tale WordPress. Dacă nu ești sigur care bază de date este corectă, deschide wp-config.php din directorul rădăcină al site-ului și caută constanta DB_NAME.
Pasul 3: Deschide Tabelul wp_users
Extinde tabelele bazei de date și fă clic pe wp_users. Dacă instalarea ta folosește un prefix de tabel personalizat (definit de $table_prefix în wp-config.php), tabelul va fi denumit <prefix>_users — de exemplu, site7_users.
Pasul 4: Editează Rândul Utilizatorului Administrator
- Găsește rândul unde
user_logincorespunde numelui tău de utilizator administrator. Pentru majoritatea instalărilor implicite, acesta este rândul cuID = 1. - Fă clic pe Editare (pictograma creion).
- Localizează câmpul
user_pass. - În meniul derulant Funcție de lângă
user_pass, selectează MD5. - În câmpul Valoare, tastează noua parolă în text simplu.
- Derulează în jos și fă clic pe Go.
Notă tehnică importantă: Selectarea MD5 aici este suficientă pentru autentificarea imediată deoarece WordPress efectuează o verificare MD5 moștenită la autentificare și apoi re-hash-uiește automat parola folosind algoritmul său mai puternic phpass sau bcrypt la autentificarea reușită. Nu trebuie să generezi manual un hash bcrypt.
Pasul 5: Verifică Modificarea
Navighează la pagina de autentificare WordPress și conectează-te cu noua parolă. Dacă autentificarea reușește, WordPress va actualiza silențios hash-ul din baza de date la algoritmul curent.
Metoda 2: Resetarea Parolei prin FTP prin Modificarea functions.php
Recomandat pentru: Situații în care phpMyAdmin nu este disponibil, dar acreditările FTP/SFTP sunt accesibile.
Această metodă injectează un apel de resetare a parolei direct în ciclul de execuție WordPress prin adăugarea temporară de cod în fișierul functions.php al temei active.
Pasul 1: Conectează-te prin FTP
Folosește un client FTP precum FileZilla sau Cyberduck. Introdu gazda FTP, numele de utilizator, parola și portul (21 pentru FTP simplu, 22 pentru SFTP — preferă întotdeauna SFTP când este disponibil). Navighează la:
/public_html/wp-content/themes/<your-active-theme>/Pentru a confirma ce temă este activă fără a te conecta la wp-admin, verifică tabelul wp_options în phpMyAdmin pentru cheia de opțiune template.
Pasul 2: Descarcă și Editează functions.php
Descarcă functions.php pe mașina ta locală. Deschide-l într-un editor de cod (VS Code, Sublime Text sau orice editor care păstrează codificarea UTF-8 fără BOM). Adaugă următoarea linie la sfârșitul fișierului:
<?php
// Temporary password reset — REMOVE IMMEDIATELY AFTER USE
add_action( 'init', function() {
wp_set_password( 'YourNewSecurePassword123!', 1 );
});Înlocuiește 'YourNewSecurePassword123!' cu parola aleasă. Al doilea argument (1) este ID-ul utilizatorului. Dacă contul tău de administrator nu are ID 1, interogează mai întâi tabelul wp_users pentru a confirma ID-ul corect.
Înfășurarea apelului în add_action( 'init', ... ) este mai sigură decât apelarea wp_set_password() direct la nivelul superior al fișierului, deoarece asigură că funcțiile de bază WordPress sunt complet încărcate înainte de execuție.
Pasul 3: Încarcă și Autentifică-te
Salvează fișierul și încarcă-l înapoi pe server, suprascriind originalul. Încarcă orice pagină a site-ului tău WordPress (chiar și pagina principală) pentru a declanșa hook-ul init și a executa modificarea parolei. Apoi navighează la /wp-login.php și autentifică-te cu noua parolă.
Pasul 4: Elimină Codul Imediat
Acest pas este obligatoriu. Lăsarea codului de resetare în functions.php înseamnă că fiecare încărcare de pagină resetează parola la valoarea hardcodată, creând o vulnerabilitate critică de securitate. Descarcă din nou functions.php, șterge liniile adăugate și reîncarcă fișierul.
Metoda 3: Resetarea Parolei prin WP-CLI (Linie de Comandă SSH)
Recomandat pentru: Dezvoltatori și administratori de sistem cu acces SSH la un VPS sau server dedicat. Aceasta este cea mai rapidă și mai curată metodă.
WP-CLI este interfața oficială de linie de comandă pentru WordPress. Poate gestiona utilizatori, plugin-uri, teme și operațiuni de baze de date fără a folosi un browser. Dacă rulezi WordPress pe un plan de VPS Hosting sau un Server Dedicat, WP-CLI este aproape sigur disponibil sau ușor de instalat.
Pasul 1: Verifică dacă WP-CLI Este Instalat
wp --infoDacă comanda nu este găsită, instalează-o:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wpPasul 2: Navighează la Directorul Rădăcină WordPress
cd /var/www/htmlAjustează calea pentru a corespunde rădăcinii documentului tău actuale. Poți verifica că ești în directorul corect verificând wp-config.php:
ls wp-config.phpPasul 3: Resetează Parola
wp user update 1 --user_pass="YourNewSecurePassword123!" --allow-rootFlag-ul --allow-root este necesar dacă rulezi comanda ca utilizator root. Înlocuiește 1 cu ID-ul de utilizator real dacă este necesar. Pentru a căuta mai întâi ID-ul corect:
wp user list --fields=ID,user_login,user_email --allow-rootPasul 4: Confirmă Actualizarea
WP-CLI va afișa Success: Updated user 1. la finalizare. Poți verifica imediat modificarea:
wp user get 1 --field=user_pass --allow-rootAceasta returnează noul hash bcrypt, confirmând că înregistrarea a fost actualizată. Autentifică-te în wp-admin pentru a finaliza procesul.
Caz special — instalări multisite: Pe WordPress Multisite, prefixează comanda cu --url=yoursite.com pentru a ținti subsite-ul corect:
wp user update 1 --user_pass="YourNewSecurePassword123!" --url=yoursite.com --allow-rootMetoda 4: Resetarea Parolei prin Scriptul de Urgență WordPress
Recomandat pentru: Scenarii în care ai acces FTP, dar nu SSH, nu phpMyAdmin, și metoda functions.php este impractică (de exemplu, tema activă este o temă bloc fără functions.php).
WordPress Codex oferă un script PHP standalone de resetare de urgență (emergency.php) care rulează independent de instalarea WordPress. Solicită o nouă parolă, o hash-uiește corect și o scrie direct în baza de date folosind acreditările din wp-config.php.
Pasul 1: Obține Scriptul
Descarcă scriptul din depozitul oficial WordPress GitHub sau din Codex. Sursa canonică este:
https://codex.wordpress.org/Resetting_Your_Password#Through_the_emergency_password_reset_scriptSalvează fișierul ca emergency.php.
Pasul 2: Încarcă în Directorul Rădăcină WordPress
Folosind clientul tău FTP, încarcă emergency.php în același director care conține wp-config.php — de obicei /public_html/ sau /var/www/html/.
Pasul 3: Execută Scriptul într-un Browser
Deschide un browser și navighează la:
https://yourdomain.com/emergency.phpScriptul va citi automat wp-config.php pentru a obține acreditările bazei de date, apoi va prezenta un formular pentru a introduce și confirma o nouă parolă. Trimite formularul pentru a aplica modificarea.
Pasul 4: Șterge Scriptul Imediat
Acest lucru este critic. Scriptul nu are niciun strat de autentificare — oricine cunoaște URL-ul îl poate folosi pentru a prelua controlul site-ului tău. Șterge-l imediat după ce ai recăpătat accesul:
rm /var/www/html/emergency.phpSau șterge-l prin FTP. Verifică ștergerea încercând să încarci din nou URL-ul — trebuie să returneze un 404.
Compararea Metodelor
| Metodă | Necesită SSH | Necesită FTP | Necesită Acces la BD | Modifică Fișierele Temei | Viteză | Risc de Securitate dacă Rămâne Activ |
|---|---|---|---|---|---|---|
| — | — | — | — | — | — | — |
| phpMyAdmin | Nu | Nu | Da (prin panou) | Nu | Rapid | Niciunul |
| `functions.php` prin FTP | Nu | Da | Nu | Da | Mediu | Critic |
| WP-CLI prin SSH | Da | Nu | Nu | Nu | Cel mai rapid | Niciunul |
| Script de Urgență | Nu | Da | Nu | Nu | Mediu | Critic |
Întărirea Securității după Resetarea Parolei
Recăpătarea accesului este doar primul pas. O resetare manuală forțată semnalează adesea o problemă mai profundă — un cont compromis, un server configurat greșit sau un sistem de e-mail defect. Abordează acestea imediat:
- Auditează autentificările recente. Verifică
wp_usermetapentrusession_tokenspentru a vedea sesiunile active. Distruge toate sesiunile cuwp user session destroy --all --allow-root. - Rotește cheile secrete. Generează valori noi la
https://api.wordpress.org/secret-key/1.1/salt/și înlocuiește constantele corespunzătoare înwp-config.php. Aceasta invalidează toate cookie-urile existente. - Remediază livrarea e-mailurilor WordPress. Instalează un plugin SMTP (WP Mail SMTP, Postman SMTP) și conectează-l la un serviciu de e-mail tranzacțional (SendGrid, Mailgun, Amazon SES) astfel încât fluxul standard de resetare să funcționeze în viitor.
- Activează autentificarea cu doi factori. Plugin-uri precum WP 2FA sau Google Authenticator adaugă un al doilea strat de verificare care face blocările prin brute-force mult mai puțin probabile.
- Verifică permisiunile fișierelor.
wp-config.phpar trebui să fie640sau600. Fișierulfunctions.phpar trebui să fie644. Fișierele cu permisiuni de scriere pentru toți (777) sunt un semnal de alarmă imediat. - Verifică conturile de administrator neautorizate. Rulează
wp user list --role=administrator --allow-rootși elimină orice conturi pe care nu le recunoști.
Pentru mediile de producție găzduite pe un Server Dedicat, verifică de asemenea /var/log/auth.log (sau /var/log/secure pe sistemele bazate pe RHEL) pentru tentative de brute-force SSH care ar fi putut preceda blocarea.
Dacă site-ul tău gestionează date sensibile ale utilizatorilor sau tranzacții de comerț electronic, combină autentificarea întărită cu un Certificat SSL emis corespunzător pentru a te asigura că acreditările nu sunt niciodată transmise în text simplu.
Matrice de Decizie: Ce Metodă Ar Trebui să Folosești?
Folosește această listă de verificare pentru a selecta metoda corectă pentru situația ta:
- Ai acces la cPanel sau DirectAdmin — folosește phpMyAdmin (Metoda 1). Este cea mai sigură și nu necesită modificări de fișiere.
- Ai FTP/SFTP, dar nu ai panou de baze de date — folosește
functions.php(Metoda 2), dar setează un memento în calendar pentru a elimina codul în termen de cinci minute de la autentificare. - Ai acces SSH la un VPS sau server dedicat — folosește WP-CLI (Metoda 3). Este cea mai curată, nu lasă cod rezidual și suportă scriptarea pentru automatizare.
- Ai FTP, dar tema activă nu are
functions.php(teme bloc, teme FSE) — folosește Scriptul de Urgență (Metoda 4) și șterge-l înainte de a închide tab-ul browserului. - Niciunul dintre cele de mai sus nu este disponibil — contactează echipa de suport a furnizorului tău de găzduire. Aceștia pot reseta parola bazei de date la nivel de infrastructură.
Întrebări Frecvente
Î: Resetarea parolei prin phpMyAdmin va deconecta sesiunile active?
Nu. Modificarea user_pass în baza de date nu invalidează cookie-urile de autentificare WordPress existente. Pentru a forța încheierea tuturor sesiunilor, trebuie să actualizezi și cheile secrete în wp-config.php sau să folosești wp user session destroy --all.
Î: Tabelul meu wp_users este gol sau lipsește. Ce s-a întâmplat?
Aceasta indică de obicei o migrare eșuată a bazei de date, un import corupt sau un $table_prefix configurat greșit în wp-config.php. Verifică dacă prefixul corespunde numelor reale ale tabelelor în phpMyAdmin. Dacă tabelul lipsește cu adevărat, restaurează dintr-o copie de rezervă a bazei de date.
Î: Pot folosi MD5 în phpMyAdmin chiar dacă WordPress folosește acum bcrypt?
Da. Stratul de autentificare WordPress detectează parolele hash-uite cu MD5 la autentificare și le acceptă pentru compatibilitate retroactivă, apoi re-hash-uiește imediat parola folosind algoritmul curent (phpass/bcrypt). Hash-ul MD5 este stocat doar temporar până la următoarea autentificare reușită.
Î: Comanda WP-CLI wp user update returnează o eroare de permisiuni. Cum o rezolv?
Aceasta înseamnă de obicei că WP-CLI rulează ca un utilizator de sistem diferit față de cel care deține fișierele WordPress. Fie comutați la utilizatorul corect cu sudo -u www-data wp user update ..., fie adăugați flag-ul --allow-root dacă operați ca root.
Î: Este sigur să lași scriptul de urgență pe server câteva ore?
Nu. Scriptul de urgență nu are nicio autentificare. Orice vizitator care descoperă sau ghicește URL-ul îl poate folosi pentru a reseta parola de administrator și a prelua controlul complet al site-ului tău. Șterge-l imediat după utilizare — tratează-l cu aceeași urgență ca o cheie privată expusă.
