Si nous ne connaissons pas le mot de passe root et n'avons pas accès root à la machine, comment pouvons-nous changer le mot de passe root?
Voici quelques façons dont je peux penser, du moins intrusif au plus intrusif.
Avec Sudo: si vous avez Sudo
autorisations pour exécuter passwd
, vous pouvez faire:
Sudo passwd root
Entrez votre mot de passe, puis entrez un nouveau mot de passe pour root deux fois. Terminé.
Édition de fichiers: cela fonctionne dans le cas peu probable où vous n'avez pas un accès complet à Sudo
, mais vous avez ont accès à modifier /etc/{passwd,shadow}
. Ouvert /etc/shadow
, soit avec sudoedit /etc/shadow
, ou avec Sudo $EDITOR /etc/shadow
. Remplacer le champ du mot de passe de root (tous les caractères aléatoires entre les deuxième et troisième deux-points :
) avec le champ de mot de passe de votre propre utilisateur. Sauver. Le local a le même mot de passe que vous. Connectez-vous et changez le mot de passe pour autre chose.
Ce sont les plus faciles.
mode mono-utilisateur: Cela vient d'être expliqué par Renan. Cela fonctionne si vous pouvez accéder à GRUB (ou votre chargeur de démarrage) et vous pouvez modifier la ligne de commande Linux. Cela ne fonctionne pas si vous utilisez Debian, Ubuntu et quelques autres. Certains démarrent les configurations du chargeur nécessitent un mot de passe pour ce faire, et vous devez le savoir pour continuer.
kernel
ou linux
.Votre système démarrera en mode mono-utilisateur. Certaines distributions ne vous demanderont pas de mot de passe root à ce stade (Debian et celles basées sur Debian le font). Vous êtes root maintenant. Changez votre mot de passe:
mount / -o remount,rw
passwd # Enter your new password twice at the prompts
mount / -o remount,ro
sync # some people sync multiple times. Do what pleases you.
reboot
et reboot
, ou, si vous connaissez votre niveau d'exécution normal, dites telinit 2
(ou quoi que ce soit).
Remplacement de init
: superficiellement similaire à l'astuce du mode mono-utilisateur, avec en grande partie les mêmes instructions, mais nécessite beaucoup plus de prouesses avec la ligne de commande. Vous démarrez votre noyau comme ci-dessus, mais au lieu de single
, vous ajoutez init=/bin/sh
. Cela s'exécutera /bin/sh
à la place de init
, et vous donnera un très début Shell avec presque aucune commodité. À ce stade, votre objectif est de:
passwd
.passwd
.Selon votre configuration particulière, celles-ci peuvent être triviales (identiques aux instructions pour le mode mono-utilisateur), ou très non triviales: chargement de modules, initialisation du RAID logiciel, ouverture de volumes chiffrés, démarrage de LVM, etc. Sans init
, vous n'exécutez pas dæmons ni aucun autre processus mais /bin/sh
et ses enfants, donc vous êtes littéralement tout seul. Vous n'avez pas non plus de contrôle des tâches, alors faites attention à ce que vous tapez. Un cat
mal placé et vous devrez peut-être redémarrer si vous ne pouvez pas vous en sortir.
Rescue Disk: celui-ci est facile. Démarrez un disque de secours de votre choix. Montez votre système de fichiers racine. Le processus dépend de la façon dont vos volumes sont superposés, mais se résume finalement à:
# do some stuff to make your root volume available.
# The rescue disk may, or may not do it automatically.
mkdir /tmp/my-root
mount /dev/$SOME_ROOT_DEV /tmp/my-root
$EDITOR /tmp/my-root/etc/shadow
# Follow the `/etc/shadow` editing instructions near the top
cd /
umount /tmp/my-root
reboot
Évidemment, $SOME_ROOT_DEV
est le nom du périphérique de bloc attribué à votre système de fichiers racine par le disque de secours et $EDITOR
est votre éditeur préféré (qui peut être vi
sur le système de secours). Après le reboot
, laissez la machine démarrer normalement; le mot de passe de root sera celui de votre propre utilisateur. Connectez-vous en tant que root et modifiez-le immédiatement.
De toute évidence, il existe d'innombrables variations de ce qui précède. Ils se résument tous à deux étapes:
Cela devrait fonctionner sur à peu près n'importe quelle distribution, je pense.
Si vous pouvez accéder à la partition racine à partir d'un autre système, par exemple un CD live, vous pouvez en tant que root à partir de là modifier /etc/shadow
; vous devez d'abord chmod u+w shadow
. Trouvez l'entrée pour root
, c'est probablement la première et ressemble à ceci:
root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::
Effacez tout entre les deux premiers deux points pour vous retrouver avec:
root::15666:0:99999:7:::
Alors chmod u-w shadow
. Vous pouvez maintenant redémarrer le système et root n'aura pas de mot de passe. Vous pouvez simplement taper root
à l'invite de connexion et il n'en demandera pas. Vous pouvez ensuite utiliser passwd
pour en définir un.
Pour être extrêmement prudent:
/etc/shadow
première.À en juger par les balises que je prends, vous utilisez RHEL, mais cette solution devrait fonctionner aussi bien pour toutes les distributions.
Si le mot de passe root est oublié, vous pouvez démarrer en mode mono-utilisateur et l'utiliser pour changer le mot de passe. Cette approche est décrite dans le guide pas à pas de Red Hat :
kernel
, appuyez sur e encore.single
. Puis appuyez ENTER et boot de lui.Vous finirez par arriver à une invite où vous pouvez taper passwd root
et modifiez le mot de passe. Tapez ensuite reboot
pour redémarrer le système.