Réinitialiser le mot de passe root (RHEL)

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Sécurité / récupération d'accès
Commande mode single / rescue via GRUB
Contexte RHEL/CentOS 6 (GRUB legacy) et RHEL 7+ (GRUB2) — accès console/physique requis
Voir aussi Init, Sudo

Procédure pour récupérer l'accès root sur un serveur RHEL/CentOS quand le mot de passe root est perdu, en démarrant le système en mode single user (bypass de l'authentification) directement depuis le menu GRUB. Nécessite un accès physique ou console (IPMI/iDRAC/hyperviseur) à la machine.

RHEL/CentOS 6 (GRUB legacy)

  • Au menu GRUB, sélectionner la ligne du noyau à démarrer et appuyer sur e (édition).
  • Sélectionner la ligne qui commence par kernel ... et appuyer de nouveau sur e pour l'éditer.
  • Aller en fin de ligne et ajouter single (fonctionne aussi avec s ou 1 selon les distributions).
  • Appuyer sur b pour démarrer avec ces paramètres.
  • Le système démarre en mode single user et ouvre directement une invite root, sans mot de passe.
passwd          # définir le nouveau mot de passe root
reboot

Alternative sans changer le mot de passe : une fois l'invite root obtenue, sudo -s ouvre directement un shell root si un compte sudo est disponible.

RHEL 7 et supérieur (GRUB2)

  • Au démarrage, appuyer sur e au moment de la sélection du noyau dans le menu GRUB2.
  • Se rendre sur la ligne commençant par linux16 (ou linuxefi sur UEFI).
  • Supprimer rhgb quiet et ajouter en fin de ligne init=/bin/bash.
  • Valider avec Ctrl+X pour démarrer avec ces paramètres.
mount -o remount,rw /   # la racine est montée en lecture seule par init=/bin/bash
passwd                  # définir le nouveau mot de passe root
touch /.autorelabel      # force un relabel SELinux au prochain boot (évite un déni d'accès si SELinux est enforcing)
exec /sbin/reboot

⚠️ Sur un système avec SELinux en mode enforcing, le fichier /etc/shadow réécrit par passwd dans ce contexte minimal peut se retrouver avec un mauvais contexte SELinux, ce qui bloque les connexions ultérieures. Le touch /.autorelabel ci-dessus déclenche un relabel complet au reboot suivant (peut prendre plusieurs minutes selon la taille du disque).

Voir aussi

  • Init — modes de démarrage et runlevels/targets
  • Sudo — délégation de privilèges root sans partager le mot de passe