Resettare le password di Drupal 7 con Drush

Come fare per reimpostare la password di amministratore in Drupal?

Spesso, soprattutto durante le fasi di sviluppo e test di un sito Drupal, si rende necessario dover reimpostare le password degli utenti, oppure può capitare che ci si dimentichi della password di amministratore. Fortunatamente il problema si può risolvere molto facilmente!

Resettare le password di Drupal 7 con Drush

Drupal 6: modifica password dal DB

Con Drupal possiamo modificare la password direttamente dal database con una semplice query SQL. Ad esempio per cambiare la password dell'utente 1 (amministratore del sito) basta eseguire:

UPDATE `users` SET `pass` = MD5('nuovapassword') WHERE `uid` = 1;

Ricordandosi di sostituire a nuovapassword, la nuova password che vogliamo usare. Drupal 6 immagazzina le password tramite l'algoritmo MD5 e quindi non si può inserire la password in chiaro ma va codificata.

Drupal 7: nuovo meccanismo per l'aggiornamento manuale

A differenza di Drupal 6, in Drupal 7 non si può più cambiare la password inserendo direttamente la password codificata con MD5 nel database perché ogni sito ha un proprio codice hash che viene usato per la generazione delle password. Perciò è necessario prima generare il codice usando tale chiave.

Per questa operazione si può usare uno script che restituisce il valore da inserire nel campo password nella tabella degli utenti nel database.

  1. Da shell accedere alla root directory del sito:
    cd <cartella_principale_del_sito>
  2. Eseguire lo script passando come parametro la nuova password:
    php scripts/password-hash.sh 'nuovapassword'

Il codice generato va inserito con una query molto simile a quella precedente:

UPDATE `users` SET `pass` = 'codice-generato-dallo-script' WHERE `uid` = 1;

Sostituendo opportunamente il valore.

La scorciatoia con Drush

Anche in questo caso lo script Drush ci viene in aiuto e ci permette di cambiare in un attimo la password di qualunque utente. Ecco un esempio:

drush upwd nomeutente --password='nuovapassword'

Al posto di nomeutente e di nuovapassword vanno chiaramente inseriti il nome dell'utente e la password.