Accès admin perdu à un site SPIP ?

Jeudi 2 mai 2024

Vous avez perdu l’accès admin à un site. Je vous explique comment vous sortir de l’impasse.

Contexte

Vous avez un site sous SPIP 4 ou plus. Et plus personne ne sait comment se connecter à l’administration avec un compte ayant les droits de webmestre.

Mais, vous avez un accès FTP.
Et un accès PHPMyAdmin à la base de données.

Une solution existe.

Méthode : réinstallation de SPIP

  1. par FTP, renommer le fichier config/connect.php en config/_connect.php
    l’ouvrir pour avoir accès à son contenu
  2. avec PHPMyAdmin, ouvrir la table spip_auteurs [1]
  3. chercher un compte d’auteur ayant le champ backup_cles rempli
  4. pour cet auteur :
    • supprimer le contenu des champs : low_sec, alea_actuel, alea_futur
    • utiliser un convertisseur texte vers MD5 pour générer le MD5 du mot de passe que vous souhaitez utiliser (le MD5 doit être en minuscules)
      Exemple : bonjourf02368945726d5fc2a14eb576f7276c0
    • mettre le code MD5 obtenu dans le champ pass
  5. visiter avec le navigateur l’URL adressedusite/ecrire : la procédure d’installation du site se lance :
    • saisir les informations de connexion à la base de données (voir config/_connect.php)
    • ne pas créer d’utilisateur (c’est possible parce que SPIP détecte que la base de données contient déjà des auteurs)
    • l’étape suivante est la mire de connexion
  6. saisir le login et le mot de passe que vous avez choisi (dans l’exemple, c’est bonjour)

Et voilà, vous avez retrouvé un accès webmestre au site.

Et cet accès vous permet, évidement, d’en créer d’autres, plus personnels.

Pourquoi ça marche ?

Parce qu’il fut une époque où SPIP stockait les mots de passe en MD5.

Et comme il n’y pas de moyen de convertir automatiquement au nouveau format, la conversion se fait au moment du login, lorsque le vrai mot de passe saisi par l’utilisateur est utilisable par SPIP pour sauvegarder la version encryptée selon les nouvelles normes de sécurité.

[1Le préfixe spip_ peut avoir été configuré à autre chose, voir config/connect.php

Revenir en haut