— L'essentiel

Récupérer un accès root perdu, en résumé :

  • Il faut un accès console (écran physique, IPMI/iDRAC, console de l'hyperviseur ou de l'hébergeur) — la procédure est impossible à distance, et c'est voulu.
  • Au menu GRUB : touche e, ajout de init=/bin/bash en fin de ligne linux, démarrage par Ctrl+X.
  • Dans le shell : mount -o remount,rw / avant passwd, sinon rien ne s'enregistre.
  • Mot de passe temporaire d'abord, mot de passe fort enregistré dans un gestionnaire ensuite.
  • Sur un disque chiffré LUKS, cette procédure ne donne rien : c'est précisément pour cela qu'on chiffre les serveurs.

01 — La situationComment un accès root se perd, et pourquoi tout n'est pas perdu

La perte d'un accès root arrive à des équipes sérieuses. Un changement de mot de passe effectué sans être consigné, une rotation automatisée qui échoue à mi-parcours, un gestionnaire de mots de passe mis à jour trop tard, un départ dans l'équipe avec les secrets dans sa tête : le résultat est le même — plus de connexion SSH possible en root, et parfois plus aucun compte utilisable avec élévation.

La bonne nouvelle : les distributions Linux prévoient ce cas. Le chargeur de démarrage GRUB 2 permet de modifier ponctuellement les paramètres de démarrage et d'obtenir un interpréteur de commandes avec les droits root, sans authentification, à la place du processus d'initialisation habituel. Rien n'est effacé, rien n'est réinstallé : on redéfinit le mot de passe et on redémarre.

La contrepartie, qui est aussi une garantie : il faut être devant la console. Écran et clavier physiques, carte d'administration distante (IPMI, iDRAC, iLO), console de l'hyperviseur pour une machine virtuelle, ou console web fournie par l'hébergeur pour un VPS. Un attaquant qui n'a qu'un accès réseau ne peut pas s'en servir.

02 — La préparationCe qu'il faut réunir avant de redémarrer

Trois choses, pas davantage :

  • un accès console fonctionnel — vérifiez que le clavier répond bien dans la console avant de redémarrer ;
  • la possibilité de redémarrer la machine au bon moment (prévenez les utilisateurs si des services tournent) ;
  • cinq minutes au calme.

Un point d'attention pour les consoles de virtualisation : certaines consoles distantes transmettent mal le pavé numérique quand le verrouillage numérique est désactivé. Les touches envoient alors des séquences d'échappement invisibles qui s'insèrent dans ce que vous tapez — y compris dans un futur mot de passe, qui devient alors impossible à ressaisir. Activez le verrouillage numérique dans la console, ou tenez-vous-en aux touches alphabétiques.

03 — La procédureSix étapes, aucune perte de données

Étape 1 — Figer le menu GRUB

Redémarrez le serveur. Le menu GRUB s'affiche quelques secondes au démarrage ; appuyez sur Échap ou maintenez Maj pour l'arrêter s'il défile trop vite.

Étape 2 — Éditer l'entrée de démarrage

Sélectionnez l'entrée Linux habituelle et appuyez sur e : GRUB ouvre un éditeur sur les paramètres de démarrage de cette entrée, pour cette fois seulement — rien n'est modifié de façon permanente.

Étape 3 — Remplacer l'init par un shell

Repérez la ligne commençant par linux (elle mentionne /vmlinuz). Placez-vous en fin de ligne et ajoutez init=/bin/bash :

linux  /vmlinuz-6.12.0-amd64 root=/dev/mapper/debian-root ro quiet  init=/bin/bash

Puis Ctrl+X (ou F10) pour démarrer avec ces paramètres. Le système s'arrête très tôt dans le démarrage et vous remet un invite bash avec les droits root.

Étape 4 — Remonter la racine en écriture

À ce stade, la racine est montée en lecture seule : toute tentative de changer le mot de passe échouerait. Remontez-la en lecture-écriture :

mount -o remount,rw /

Pas de message en retour : c'est bon signe.

Étape 5 — Redéfinir le mot de passe

Lancez passwd sans argument — vous êtes déjà root, et la forme passwd root provoque une erreur d'usage dans ce contexte :

passwd
Nouveau mot de passe :
Retapez le nouveau mot de passe :
passwd : mot de passe mis à jour avec succès

Choisissez pour l'instant un mot de passe temporaire et simple à taper : la console transmet mal certains caractères, et l'objectif immédiat est de retrouver un accès fiable. Le mot de passe définitif viendra après, en SSH.

Étape 6 — Redémarrer normalement

exec /sbin/init

Le système reprend son démarrage habituel. Reconnectez-vous — par la console ou en SSH si la connexion root par mot de passe y est autorisée (si votre SSH est configuré en clés uniquement, passez par la console pour créer ou réparer votre compte d'administration).

04 — Après la repriseMot de passe définitif et discipline de rotation

Une fois l'accès retrouvé, remplacez immédiatement le mot de passe temporaire par un mot de passe long et aléatoire, généré par votre gestionnaire de mots de passe ou par le module secrets de Python, prévu pour un usage cryptographique (documentation officielle) :

python3 -c "import secrets, string; print(''.join(secrets.choice(string.ascii_letters + string.digits) for _ in range(24)))"

Et surtout, adoptez l'ordre d'opérations qui rend ce genre d'incident impossible à reproduire : générer, enregistrer, appliquer, vérifier. Le nouveau mot de passe entre dans le gestionnaire avant d'être appliqué sur le serveur, et la nouvelle connexion se teste dans une seconde session avant de fermer celle qui fonctionne. Chaque maillon de cette chaîne existe parce que son absence a déjà coûté un accès à quelqu'un.

05 — La leçonCe que cette procédure dit de la sécurité de vos serveurs

Relisez la procédure du point de vue d'un attaquant : toute personne qui accède à la console d'un serveur au disque non chiffré peut en devenir administrateur en quelques minutes, lire les données, modifier la configuration, installer ce qu'elle veut. Technicien d'un datacenter mutualisé, co-locataire d'un hyperviseur, console d'hébergeur compromise : le scénario n'a rien de théorique.

La parade n'est ni un mot de passe GRUB (contournable en démarrant sur un support externe), ni la vigilance : c'est le chiffrement complet du disque. Sur un système chiffré avec LUKS, la phrase secrète est exigée avant le montage des volumes — y compris avec init=/bin/bash. Sans elle, il n'y a tout simplement rien à lire. Nous détaillons sa mise en place, avec le reste du durcissement, dans notre guide chiffrer et durcir un serveur Debian dès l'installation.

Enfin, si votre problème d'accès concerne une session utilisateur qui refuse de s'ouvrir alors que le mot de passe est accepté, c'est un tout autre diagnostic — traité dans notre article impossible d'ouvrir sa session Linux.

Questions fréquentes

Cette procédure de récupération est-elle une faille de sécurité ?

C'est un mode de maintenance assumé par les distributions Linux, pas un défaut caché. Il exige un accès console (physique, IPMI, console d'hyperviseur ou d'hébergeur), ce qui le met hors de portée d'un attaquant purement distant. En revanche, il démontre qu'un serveur au disque non chiffré n'a aucune défense contre une personne qui accède à sa console : la parade est le chiffrement complet du disque, type LUKS, décidé à l'installation.

La procédure fonctionne-t-elle sur Ubuntu, Rocky ou d'autres distributions ?

Le principe — éditer l'entrée GRUB et remplacer le programme d'initialisation par un shell — vaut pour toutes les distributions qui utilisent GRUB 2, c'est-à-dire la quasi-totalité des systèmes récents. Les détails varient à la marge : certaines distributions proposent aussi un mode recovery dans le menu GRUB, et celles dont la racine est en Btrfs ou avec SELinux actif demandent une étape supplémentaire (relabel SELinux via autorelabel, par exemple).

Pourquoi passwd échoue-t-il avec « Read-only file system » ?

Parce que dans ce mode de démarrage, la racine est montée en lecture seule : le fichier des mots de passe ne peut pas être modifié. Il faut d'abord remonter la racine en lecture-écriture avec mount -o remount,rw / puis relancer passwd. C'est l'oubli le plus fréquent de la procédure.

Comment empêcher que cette procédure soit utilisée contre mon serveur ?

Le chiffrement complet du disque (LUKS) est la seule protection réellement efficace : la phrase secrète est demandée avant tout démarrage, shell de secours compris. Protéger l'éditeur GRUB par mot de passe complique la manœuvre mais ne résiste pas au démarrage sur un support externe, et ne protège pas un disque extrait. Limiter l'accès aux consoles (IPMI, hyperviseur, console web de l'hébergeur) reste complémentaire dans tous les cas.

— Sources
  1. GNU GRUB Manual — Édition des entrées de démarrage, paramètres passés au noyau, protection du menu par mot de passe.
  2. man7.org mount(8) — Option remount et passage d'un montage en lecture-écriture.
  3. man7.org passwd(1) — Changement du mot de passe du compte courant.
  4. Python Module secrets — Génération de secrets adaptée aux usages cryptographiques, recommandée à la place de random.
  5. ANSSI Recommandations de configuration d'un système GNU/Linux — Protection du démarrage et chiffrement des supports de stockage.
Cet article donne des repères généraux à la date de publication (24 octobre 2026). La procédure décrite s'applique à vos propres machines ou à celles que vous administrez légitimement ; sur un système en production, planifiez le redémarrage et prévenez les utilisateurs.