Mot de passe administrateur perdu
Plus personne ne connaît le mot de passe de l'administrateur Dolibarr. Le lien « Mot de passe oublié », un autre administrateur, ou la base de données, sans casser le hachage.
Le prestataire qui a installé Dolibarr est parti, ou le seul administrateur ne se souvient plus de son mot de passe. Il y a trois façons de s’en sortir. Prenez-les dans l’ordre.
Ce qui suit vaut pour l’authentification standard de Dolibarr, la ligne
$dolibarr_main_authentication='dolibarr' de conf.php. Si vos utilisateurs se connectent par
LDAP ou par un autre système, c’est dans ce système que le mot de passe se change.
1. Le lien « Mot de passe oublié ? »
Il est sur la page de connexion, sauf si un administrateur l’a masqué (constante
MAIN_SECURITY_DISABLEFORGETPASSLINK). Dolibarr envoie alors un lien de réinitialisation par email.
Deux conditions pour que cela marche : l’utilisateur doit avoir une adresse email sur sa fiche, et l’envoi d’emails de Dolibarr doit fonctionner. Or le compte administrateur créé par l’assistant d’installation n’a pas d’adresse email : sur l’instance de test, le champ était vide. Pour lui, ce lien ne donne souvent rien.
2. Un autre administrateur
Si un autre compte administrateur fonctionne encore : Utilisateurs & Groupes, fiche de l’utilisateur concerné, Modifier, champ Mot de passe, Enregistrer. C’est la méthode la plus propre.
3. Par la base de données
Quand personne ne peut plus se connecter, il reste la base. Il vous faut un accès à MySQL ou MariaDB : phpMyAdmin chez la plupart des hébergeurs, ou la ligne de commande.
Les tables portent un préfixe, llx_ par défaut. Le vôtre est sur la ligne
$dolibarr_main_db_prefix de conf.php. Pour retrouver les identifiants des administrateurs :
SELECT login, email FROM llx_user WHERE admin = 1;
Puis posez un mot de passe temporaire :
UPDATE llx_user SET pass = 'Temporaire-a-changer', pass_crypted = NULL WHERE login = 'admin';
Connectez-vous avec ce mot de passe, puis changez-le immédiatement depuis la fiche utilisateur
(Modifier, Mot de passe, Enregistrer). Dolibarr enregistre alors le nouveau mot de passe haché et
efface la version en clair : sur l’instance de test, la colonne pass est revenue à vide et le
mot de passe temporaire ne permettait plus de se connecter.
Pourquoi pas un hachage directement en SQL
Beaucoup de tutoriels donnent une requête avec MD5('…'). Elle marche ou non selon les réglages
de votre instance : la façon dont Dolibarr hache les mots de passe dépend de la constante
MAIN_SECURITY_HASH_ALGO, et parfois d’un sel. Un hachage calculé à la main peut donc être refusé
sans explication.
Le mot de passe temporaire en clair passe par un chemin que le code de connexion garde pour les très anciennes installations, présent dans les versions 17, 19, 22 et 24. Il fonctionne quels que soient ces réglages. Il ne doit simplement pas rester en clair : d’où le changement immédiat.
Sous Docker
Avec la base dans un conteneur MariaDB, la console s’ouvre ainsi (remplacez le nom du conteneur, de l’utilisateur et de la base par les vôtres) :
docker exec -it <conteneur_base> mariadb -u dolibarr -p dolibarr