Le Blog de C-quad

Réinitialiser un mot de passe perdu dans Mediawiki

Vous avez installé Mediawiki et certains de vos utilisateurs ne se souviennent plus de leur mot de passe de connexion.

Il est bien souvent possible pour l’utilisateur de demander une réinitialisation de leur mot de passe directement dans l’interface graphique. Malheureusement, il se peut que cette fonctionnalité ne soit pas présente (exemple si l’envoi de mail a été désactivé)

Nous allons voir deux solutions supplémentaire pour réinitialiser un mot de passe

Méthode par les procédures de maintenance

Afin de pouvoir utiliser cette méthode, il est nécessaire d’avoir accès au serveur via une console. Les commandes qui seront à lancer seront lancées directement dans le terminal.

Dans le répertoire « maintenance » de mediawiki, il existe de nombreux fichiers php. Ces fichiers servent à faire les mises à jour, supprimer les utilisateurs inactifs, passer le site en mode maintenance etc.

Pour mettre à jour le mot de passe d’un utilisateur nous lancerons la commande :

# set the password for username 'example' to 'newpassword'
php changePassword.php --user=example --password=newpassword

A noter : afin d’être sur que le compte soit fonctionnel, il ne faut pas que le mot de passe soit identique au nom du compte.

Méthode par modification directement en base

Il est possible de ré-initialiser le mot de passe en modifiant la valeur du password directement dans la table user.

A partir des version 1.13 de mediawiki

En fonction de ce qui est défini dans la variable $wgPasswordSalt dans le fichier LocalSettings.php nous choisirons l’une des options ci dessous

MySQL unsalted

UPDATE user SET user_password = CONCAT(':A:', MD5('somepass')) WHERE user_name = 'someuser';

MySQL salted (make sure both instances of « somesalt » are the same)

UPDATE user SET user_password = CONCAT(':B:somesalt:', MD5(CONCAT('somesalt-', MD5('somepass')))) WHERE user_name = 'someuser';

PostgreSQL unsalted

UPDATE mwuser SET user_password = text(':A:') || MD5('somepass') WHERE user_name = 'someuser';

PostgreSQL salted (make sure both instances of « somesalt » are the same)

UPDATE mwuser SET user_password = text(':B:somesalt:') || MD5(text('somesalt-') || MD5('somepass')) WHERE user_name = 'someuser';

Pour les versions mediawiki inférieure à 1.12

MySQL

UPDATE user SET user_password = MD5(CONCAT(user_id, '-', MD5('somepass'))) WHERE user_name = 'someuser';

PostgreSQL

UPDATE mwuser SET user_password = MD5(text("user_id") || text('-') || MD5('somepass')) WHERE user_name = 'someuser';

Laisser un commentaire