15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
21.10.2024

Comment réinitialiser manuellement votre mot de passe administrateur WordPress

Perdre l’accès à votre compte administrateur WordPress ne signifie pas nécessairement perdre le contrôle de votre site. Si le flux standard d’e-mail « Mot de passe oublié ? » est défaillant — en raison de paramètres de messagerie mal configurés, d’une adresse e-mail inaccessible ou d’un enregistrement utilisateur corrompu — vous pouvez le contourner entièrement en réinitialisant le mot de passe directement au niveau de la base de données, du système de fichiers ou du shell.

Ce guide couvre quatre méthodes éprouvées : phpMyAdmin, FTP via functions.php, WP-CLI via SSH, et le Script d’urgence de réinitialisation de mot de passe WordPress. Chaque méthode est expliquée avec des étapes précises, des mises en garde de sécurité et les scénarios spécifiques où elle constitue le bon choix.

Quand le flux de réinitialisation standard échoue

Avant de recourir à une méthode manuelle, comprenez pourquoi la réinitialisation intégrée échoue. Les causes les plus courantes sont :

  • Envoi de courrier WordPress défaillantwp_mail() dépend de la fonction mail() de PHP ou d’un plugin SMTP. Si aucun des deux n’est configuré, l’e-mail de réinitialisation est silencieusement supprimé.
  • Aucun accès à la boîte de réception de l’e-mail enregistré — le compte a été créé avec une adresse obsolète.
  • Table wp_users corrompue — rare, mais possible après une migration échouée ou un conflit de plugin.
  • Accès à wp-admin entièrement bloqué — les plugins de protection contre la force brute (Wordfence, Limit Login Attempts) peuvent bloquer le point de terminaison de réinitialisation lui-même.

Identifier la cause principale est important car certaines méthodes (WP-CLI, phpMyAdmin) corrigent le mot de passe sans toucher au système de messagerie, tandis que d’autres (le script d’urgence) nécessitent un accès HTTP au site.

Méthode 1 : Réinitialiser le mot de passe via phpMyAdmin

Idéal pour : Les environnements d’hébergement mutualisé où SSH est indisponible mais où cPanel ou un panneau de contrôle similaire est accessible.

phpMyAdmin vous donne un accès direct en lecture/écriture à la base de données MySQL ou MariaDB qui stocke toutes les informations d’identification des utilisateurs WordPress. Les mots de passe sont stockés sous forme de hachages bcrypt (WordPress 6.x+) ou de hachages MD5 (installations héritées). Le sélecteur de fonctions intégré de phpMyAdmin gère le hachage automatiquement.

Étape 1 : Ouvrir phpMyAdmin depuis votre panneau de contrôle

Connectez-vous à votre panneau de contrôle d’hébergement — cPanel, DirectAdmin ou un panneau personnalisé. Localisez la section Bases de données et cliquez sur phpMyAdmin. Si vous êtes sur un VPS avec cPanel, le chemin est généralement cPanel > Bases de données > phpMyAdmin.

Étape 2 : Sélectionner la base de données WordPress

Dans la barre latérale gauche, cliquez sur le nom de la base de données associée à votre installation WordPress. Si vous n’êtes pas sûr de quelle base de données il s’agit, ouvrez wp-config.php dans le répertoire racine de votre site et recherchez la constante DB_NAME.

Étape 3 : Ouvrir la table wp_users

Développez les tables de la base de données et cliquez sur wp_users. Si votre installation utilise un préfixe de table personnalisé (défini par $table_prefix dans wp-config.php), la table sera nommée <prefix>_users — par exemple, site7_users.

Étape 4 : Modifier la ligne de l’utilisateur administrateur

  1. Trouvez la ligne où user_login correspond à votre nom d’utilisateur administrateur. Pour la plupart des installations par défaut, il s’agit de la ligne avec ID = 1.
  2. Cliquez sur Modifier (l’icône crayon).
  3. Localisez le champ user_pass.
  4. Dans le menu déroulant Fonction à côté de user_pass, sélectionnez MD5.
  5. Dans le champ Valeur, saisissez votre nouveau mot de passe en texte brut.
  6. Faites défiler vers le bas et cliquez sur Exécuter.

Note technique importante : Sélectionner MD5 ici est suffisant pour une connexion immédiate car WordPress effectue une vérification MD5 héritée lors de la connexion, puis re-hache automatiquement le mot de passe en utilisant son algorithme phpass ou bcrypt plus robuste lors d’une authentification réussie. Vous n’avez pas besoin de générer manuellement un hachage bcrypt.

Étape 5 : Vérifier la modification

Accédez à votre page de connexion WordPress et connectez-vous avec le nouveau mot de passe. Si la connexion réussit, WordPress mettra silencieusement à jour le hachage dans la base de données vers l’algorithme actuel.

Méthode 2 : Réinitialiser le mot de passe via FTP en modifiant functions.php

Idéal pour : Les situations où phpMyAdmin est indisponible mais où les identifiants FTP/SFTP sont accessibles.

Cette méthode injecte un appel de réinitialisation de mot de passe directement dans le cycle d’exécution de WordPress en ajoutant temporairement du code au fichier functions.php du thème actif.

Étape 1 : Se connecter via FTP

Utilisez un client FTP tel que FileZilla ou Cyberduck. Entrez votre hôte FTP, nom d’utilisateur, mot de passe et port (21 pour FTP simple, 22 pour SFTP — préférez toujours SFTP lorsque disponible). Naviguez vers :

/public_html/wp-content/themes/<your-active-theme>/

Pour confirmer quel thème est actif sans vous connecter à wp-admin, vérifiez la table wp_options dans phpMyAdmin pour la clé d’option template.

Étape 2 : Télécharger et modifier functions.php

Téléchargez functions.php sur votre machine locale. Ouvrez-le dans un éditeur de code (VS Code, Sublime Text ou tout éditeur qui préserve l’encodage UTF-8 sans BOM). Ajoutez la ligne suivante tout en bas du fichier :

<?php
// Temporary password reset — REMOVE IMMEDIATELY AFTER USE
add_action( 'init', function() {
    wp_set_password( 'YourNewSecurePassword123!', 1 );
});

Remplacez 'YourNewSecurePassword123!' par le mot de passe de votre choix. Le deuxième argument (1) est l’ID utilisateur. Si votre compte administrateur n’est pas l’ID 1, interrogez d’abord la table wp_users pour confirmer l’ID correct.

Encapsuler l’appel dans add_action( 'init', ... ) est plus sûr qu’appeler wp_set_password() directement au niveau supérieur du fichier, car cela garantit que les fonctions du cœur WordPress sont entièrement chargées avant l’exécution.

Étape 3 : Téléverser et se connecter

Enregistrez le fichier et téléversez-le sur le serveur en écrasant l’original. Chargez n’importe quelle page de votre site WordPress (même la page d’accueil) pour déclencher le hook init et exécuter le changement de mot de passe. Naviguez ensuite vers /wp-login.php et connectez-vous avec le nouveau mot de passe.

Étape 4 : Supprimer le code immédiatement

Cette étape est obligatoire. Laisser le code de réinitialisation dans functions.php signifie que chaque chargement de page réinitialise le mot de passe à la valeur codée en dur, créant une vulnérabilité de sécurité critique. Téléchargez à nouveau functions.php, supprimez les lignes que vous avez ajoutées et téléversez-le à nouveau.

Méthode 3 : Réinitialiser le mot de passe via WP-CLI (ligne de commande SSH)

Idéal pour : Les développeurs et administrateurs système ayant un accès SSH à un VPS ou un serveur dédié. C’est la méthode la plus rapide et la plus propre.

WP-CLI est l’interface en ligne de commande officielle pour WordPress. Il peut gérer les utilisateurs, les plugins, les thèmes et les opérations de base de données sans utiliser un navigateur. Si vous exécutez WordPress sur un plan VPS Hosting ou un Serveur Dédié, WP-CLI est presque certainement disponible ou facilement installable.

Étape 1 : Vérifier que WP-CLI est installé

wp --info

Si la commande est introuvable, installez-la :

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/wp

Étape 2 : Naviguer vers le répertoire racine WordPress

cd /var/www/html

Ajustez le chemin pour correspondre à votre racine de document réelle. Vous pouvez vérifier que vous êtes dans le bon répertoire en cherchant wp-config.php :

ls wp-config.php

Étape 3 : Réinitialiser le mot de passe

wp user update 1 --user_pass="YourNewSecurePassword123!" --allow-root

L’indicateur --allow-root est requis si vous exécutez la commande en tant qu’utilisateur root. Remplacez 1 par l’ID utilisateur réel si nécessaire. Pour rechercher d’abord l’ID correct :

wp user list --fields=ID,user_login,user_email --allow-root

Étape 4 : Confirmer la mise à jour

WP-CLI affichera Success: Updated user 1. à la fin. Vous pouvez immédiatement vérifier la modification :

wp user get 1 --field=user_pass --allow-root

Cela retourne le nouveau hachage bcrypt, confirmant que l’enregistrement a été mis à jour. Connectez-vous à wp-admin pour terminer le processus.

Cas particulier — installations multisite : Sur WordPress Multisite, préfixez la commande avec --url=yoursite.com pour cibler le sous-site correct :

wp user update 1 --user_pass="YourNewSecurePassword123!" --url=yoursite.com --allow-root

Méthode 4 : Réinitialiser le mot de passe via le script d’urgence WordPress

Idéal pour : Les scénarios où vous avez un accès FTP mais pas de SSH, pas de phpMyAdmin, et où la méthode functions.php est impraticable (par exemple, le thème actif est un thème de blocs sans functions.php).

Le Codex WordPress fournit un script PHP d’urgence autonome (emergency.php) qui s’exécute indépendamment de l’installation WordPress. Il demande un nouveau mot de passe, le hache correctement et l’écrit directement dans la base de données en utilisant les identifiants de wp-config.php.

Étape 1 : Obtenir le script

Téléchargez le script depuis le dépôt GitHub officiel de WordPress ou le Codex. La source canonique est :

https://codex.wordpress.org/Resetting_Your_Password#Through_the_emergency_password_reset_script

Enregistrez le fichier sous emergency.php.

Étape 2 : Téléverser vers la racine WordPress

À l’aide de votre client FTP, téléversez emergency.php dans le même répertoire qui contient wp-config.php — généralement /public_html/ ou /var/www/html/.

Étape 3 : Exécuter le script dans un navigateur

Ouvrez un navigateur et accédez à :

https://yourdomain.com/emergency.php

Le script lira automatiquement wp-config.php pour obtenir les identifiants de base de données, puis présentera un formulaire pour saisir et confirmer un nouveau mot de passe. Soumettez le formulaire pour appliquer la modification.

Étape 4 : Supprimer le script immédiatement

C’est essentiel. Le script n’a aucune couche d’authentification — quiconque connaît l’URL peut l’utiliser pour prendre le contrôle de votre site. Supprimez-le dès que vous avez récupéré l’accès :

rm /var/www/html/emergency.php

Ou supprimez-le via FTP. Vérifiez la suppression en tentant de charger l’URL à nouveau — elle doit retourner une erreur 404.

Comparaison des méthodes

MéthodeNécessite SSHNécessite FTPNécessite un accès DBModifie les fichiers du thèmeRapiditéRisque de sécurité si laissé actif
phpMyAdminNonNonOui (via panneau)NonRapideAucun
`functions.php` via FTPNonOuiNonOuiMoyenCritique
WP-CLI via SSHOuiNonNonNonLe plus rapideAucun
Script d’urgenceNonOuiNonNonMoyenCritique

Renforcement de la sécurité après une réinitialisation de mot de passe

Récupérer l’accès n’est que la première étape. Une réinitialisation manuelle forcée signale souvent un problème plus profond — un compte compromis, un serveur mal configuré ou une pile de messagerie défaillante. Traitez ces problèmes immédiatement :

  • Auditez les connexions récentes. Vérifiez wp_usermeta pour session_tokens afin de voir les sessions actives. Détruisez toutes les sessions avec wp user session destroy --all --allow-root.
  • Faites pivoter les clés secrètes. Générez de nouvelles valeurs sur https://api.wordpress.org/secret-key/1.1/salt/ et remplacez les constantes correspondantes dans wp-config.php. Cela invalide tous les cookies existants.
  • Corrigez la livraison des e-mails WordPress. Installez un plugin SMTP (WP Mail SMTP, Postman SMTP) et connectez-le à un service de messagerie transactionnelle (SendGrid, Mailgun, Amazon SES) afin que le flux de réinitialisation standard fonctionne à l’avenir.
  • Activez l’authentification à deux facteurs. Des plugins comme WP 2FA ou Google Authenticator ajoutent une deuxième couche de vérification qui rend les blocages par force brute beaucoup moins probables.
  • Vérifiez les permissions des fichiers. wp-config.php devrait être 640 ou 600. Le fichier functions.php devrait être 644. Les fichiers accessibles en écriture par tous (777) sont un signal d’alarme immédiat.
  • Vérifiez les comptes administrateurs non autorisés. Exécutez wp user list --role=administrator --allow-root et supprimez tous les comptes que vous ne reconnaissez pas.

Pour les environnements de production hébergés sur un Serveur Dédié, vérifiez également /var/log/auth.log (ou /var/log/secure sur les systèmes basés sur RHEL) pour les tentatives de force brute SSH qui ont pu précéder le blocage.

Si votre site gère des données utilisateurs sensibles ou des transactions e-commerce, associez votre connexion renforcée à un Certificat SSL correctement émis pour garantir que les identifiants ne sont jamais transmis en texte clair.

Matrice de décision : quelle méthode utiliser ?

Utilisez cette liste de contrôle pour sélectionner la méthode correcte selon votre situation :

  • Vous avez accès à cPanel ou DirectAdmin — utilisez phpMyAdmin (Méthode 1). C’est la plus sûre et ne nécessite aucune modification de fichier.
  • Vous avez FTP/SFTP mais pas de panneau de base de données — utilisez functions.php (Méthode 2), mais définissez un rappel pour supprimer le code dans les cinq minutes suivant votre connexion.
  • Vous avez un accès SSH à un VPS ou un serveur dédié — utilisez WP-CLI (Méthode 3). C’est la plus propre, ne laisse aucun code résiduel et prend en charge les scripts pour l’automatisation.
  • Vous avez FTP mais le thème actif n’a pas de functions.php (thèmes de blocs, thèmes FSE) — utilisez le Script d’urgence (Méthode 4), et supprimez-le avant de fermer l’onglet du navigateur.
  • Aucune des options ci-dessus n’est disponible — contactez l’équipe d’assistance de votre hébergeur. Ils peuvent réinitialiser le mot de passe de la base de données au niveau de l’infrastructure.

FAQ

Q : La réinitialisation du mot de passe via phpMyAdmin déconnecte-t-elle les sessions actives ?

Non. Modifier user_pass dans la base de données n’invalide pas les cookies d’authentification WordPress existants. Pour forcer la fin de toutes les sessions, vous devez également mettre à jour les clés secrètes dans wp-config.php ou utiliser wp user session destroy --all.

Q : Ma table wp_users est vide ou manquante. Que s’est-il passé ?

Cela indique généralement une migration de base de données échouée, une importation corrompue ou un $table_prefix mal configuré dans wp-config.php. Vérifiez que le préfixe correspond aux noms de tables réels dans phpMyAdmin. Si la table est véritablement manquante, restaurez à partir d’une sauvegarde de base de données.

Q : Puis-je utiliser MD5 dans phpMyAdmin même si WordPress utilise maintenant bcrypt ?

Oui. La couche d’authentification de WordPress détecte les mots de passe hachés en MD5 lors de la connexion et les accepte pour la compatibilité ascendante, puis re-hache immédiatement le mot de passe en utilisant l’algorithme actuel (phpass/bcrypt). Le hachage MD5 n’est stocké que temporairement jusqu’à la prochaine connexion réussie.

Q : La commande WP-CLI wp user update retourne une erreur de permissions. Comment la corriger ?

Cela signifie généralement que WP-CLI s’exécute sous un utilisateur système différent de celui qui possède les fichiers WordPress. Passez soit à l’utilisateur correct avec sudo -u www-data wp user update ..., soit ajoutez l’indicateur --allow-root si vous opérez en tant que root.

Q : Est-il sûr de laisser le script d’urgence sur le serveur pendant quelques heures ?

Non. Le script d’urgence n’a aucune authentification. Tout visiteur qui découvre ou devine l’URL peut l’utiliser pour réinitialiser votre mot de passe administrateur et prendre le contrôle total de votre site. Supprimez-le immédiatement après utilisation — traitez-le avec la même urgence qu’une clé privée exposée.

15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer