Voici méthode qui consiste à démarrer non pas init comme premier processus, mais un shell.
Tout d’abord, au démarrage, quand le menu de grub apparaît (appuyez sur echap si il n’apparaît pas), sélectionnez la ligne de boot sur lequel le système démarre habituellement:
On va maintenant modifier la ligne de démarrage du système en appuyant sur la touche « e« :
Sur la ligne commençant par « linux16 /vmlinux….. », nous allons ajouter à la fin « init=/bin/sh » et supprimer « rhgb quiet » :
On valide les paramètres et on boot en appuyant sur les touches « Ctrl-x » ou bien avec la touche F10.
On arrive très vite dans un shell simple sans mot de passe et avec les droits root:
On va tout d’abord charger la politique SELinux existante avec cette commande (le -i correspond à « initial policy load ») :
/usr/sbin/load_policy -i
Ensuite, on va remonter « / » en lecture-écriture car il est monté en lecture seule :
mount -o remount,rw /
On peut maintenant passer à la modification du mot de passe root :
passwd root
On ré-étiquette le système (SELinux) pour le prochain redémarrage :
touch /.autorelabel
Il ne reste plus qu’a redémarrer votre CentOS7/RedHat7 pour avoir vous connecter avec le nouveau mot de passe:
exec /sbin/init