Comment pouvons-nous changer le mot de passe root?

Réponses:

63

Voici quelques façons dont je peux penser, du moins intrusif au plus intrusif.

Sans redémarrage

Avec sudo: si vous avez les sudoautorisations nécessaires 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 que vous n'ont pas plein sudoaccès, mais vous n'avez pas accès au . Ouvert , avec ou avec . Remplacez le champ de mot de passe root (tous les caractères aléatoires entre les deuxième et troisième deux-points ) par 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 quelque chose d'autre./etc/{passwd,shadow}/etc/shadowsudoedit /etc/shadowsudo $EDITOR /etc/shadow:

Ce sont les plus faciles.

Redémarrage nécessaire

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 modifier la ligne de commande Linux. Cela ne fonctionne pas si vous utilisez Debian, Ubuntu et quelques autres. Certaines configurations de chargeur de démarrage nécessitent un mot de passe pour le faire, et vous devez le savoir pour continuer. Sans plus tarder:

  1. Redémarrer.
  2. Entrez le mot de passe de démarrage, le cas échéant.
  3. Entrez le menu de votre chargeur de démarrage.
  4. Si le mode mono-utilisateur est disponible, sélectionnez-le (Debian l'appelle 'mode de récupération').
  5. Sinon, et vous lancez GRUB:
    1. Mettez en surbrillance votre option de démarrage normale.
    2. Appuyez sur epour entrer en mode édition. Vous pouvez être invité à entrer un mot de passe GRUB à cet endroit.
    3. Mettez en surbrillance la ligne commençant par kernelou linux.
    4. Appuyez sur e.
    5. Ajoutez le mot 'single' à la fin. (n'oubliez pas de prévoir un espace!)
    6. Appuyez sur Enteret démarrez la strophe modifiée. Certains GRUB utilisent Ctrl- X, certains utilisent b. Il dit lequel il est en bas de l'écran.

Votre système démarrera en mode mono-utilisateur. Certaines distributions ne vous demanderont pas de mot de passe root à ce stade (les versions basées sur Debian et basées sur Debian le font). Tu es 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 de fonctionnement normal, dites telinit 2(ou quoi que ce soit).

Remplacementinit : superficiellement similaire au tour en mode utilisateur unique, avec 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 cela single, vous ajoutez init=/bin/sh. Cela fonctionnera /bin/shà la place de init, et vous donnera une coquille très tôt avec presque pas de commodités. À ce stade, votre objectif est de:

  1. Montez le volume racine.
  2. Courir passwd.
  3. Changez votre mot de passe avec la passwdcommande.

Selon votre configuration particulière, elles peuvent être triviales (identiques aux instructions du mode utilisateur unique) ou extrêmement non triviales: chargement de modules, initialisation du logiciel RAID, ouverture de volumes chiffrés, démarrage de LVM, etc. Sans cela init, vous n'exécutez ni démons ni aucun autre processus, mais /bin/shses enfants, vous êtes donc littéralement seul. De plus, vous n'avez pas de contrôle sur le travail, alors faites attention à ce que vous tapez. Un égaré catet vous devrez peut-être redémarrer si vous ne pouvez pas 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 manière 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

De toute évidence, le $SOME_ROOT_DEVnom du périphérique en bloc attribué à votre système de fichiers racine par le disque de secours $EDITORcorrespond à votre éditeur favori (qui doit éventuellement figurer visur le système de secours). Après cela reboot, laissez l’ordinateur démarrer normalement; Le mot de passe de root sera celui de votre propre utilisateur. Connectez-vous en tant que root et changez-le immédiatement.

D'autres moyens

De toute évidence, il existe d'innombrables variations à ce qui précède. Ils se résument tous à deux étapes:

  1. Obtenez un accès root à l'ordinateur (catch-22 - et le vrai truc)
  2. Changer le mot de passe de root en quelque sorte.
Alexios
la source
Quoi qu'il en soit de le faire à distance? En supposant que SSH soit arrêté.
CMCDragonkai
1
Sans SSH (ou, à supposer l'une des autres, des méthodes extrêmement peu sûres comme rsh ou telnet), vous n'avez pas d'accès à distance à la machine et vous ne pouvez donc pas changer le mot de passe. À moins bien sûr que l’ordinateur cible ait un problème connu exploitable à distance qui puisse vous aider à créer un shell. Cette pensée me terrifie davantage qu'un démon telnet qui l'exécute. :)
Alexios
Donc, je devrais me téléporter physiquement là-bas pour le réparer?
CMCDragonkai
WRT "Changer le mot de passe root d'une certaine façon", voir ici: unix.stackexchange.com/a/168422/25985
goldilocks
7

Cela devrait fonctionner à peu près n'importe quelle distribution, je pense.

Si vous pouvez accéder à la partition racine depuis un autre système, par exemple un CD live, vous pouvez modifier en tant que root à partir de là /etc/shadow; vous devez d'abord chmod u+w shadow. Recherchez 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 ce qui se trouve entre les deux premiers points, de sorte que vous obtenez:

root::15666:0:99999:7:::

Puis chmod u-w shadow. Vous pouvez maintenant redémarrer le système et root n'aura aucun mot de passe. Vous pouvez simplement taper rootà l'invite de connexion et il n'en demandera pas. Vous pouvez ensuite utiliser passwdpour en définir un.

Pour faire très attention:

  • Créez une copie de sauvegarde du /etc/shadowpremier.
  • Ne vous connectez en tant que personne sauf en tant que root tant que vous n'avez pas défini de nouveau mot de passe. Ce n’est pas critique, mais évite la possibilité théorique que des logiciels malveillants non privilégiés fassent passer une sorte de message de grêle ("Hé, peut-être qu’il n’ya pas de mot de passe root ..."). Un peu exagéré, OMI.
boucle d'or
la source
Cela fonctionnera, mais bon, ça me fait * grincer des dents * pour supprimer le mot de passe d'un compte root. Je suppose que Ubuntu ne vous laisse pas tomber dans un shell racine dans le niveau d'exécution 1? Ou une meilleure idée ne serait-elle pas de tourner passwddans un environnement chroot à partir du CD live?
SailorCire
Si vous vous sentez plus en sécurité en essayant d’abord ces autres méthodes, continuez. Mais tant que vous ne laissez pas le système sans mot de passe root, cela devrait aller. Les logiciels malveillants n'auraient jamais tenté d'exploiter cela, car s'ils fonctionnaient au démarrage, ils disposaient déjà de privilèges root. Donc, ne vous connectez pas en tant que personne d’abord, je suppose (cela pourrait être un problème sur les systèmes qui ne permettent pas l’accès de root via le gestionnaire d’affichage, à moins que vous ne puissiez basculer vers la console). Même alors, cela semble assez improbable.
goldilocks
@SailorCire ^^^
goldilocks
Je doute également de la possibilité que des logiciels malveillants soient utilisés. Cependant, l’idée derrière ce que j’ai suggéré est qu’elle interdit le type de mentalité "Oh, je le changerai plus tard, car cela fonctionne maintenant", à laquelle beaucoup d’entre nous tombons.
SailorCire
Vous pouvez également vous reporter à cette réponse pour savoir comment générer manuellement un mot de passe pour/etc/shadow
NullUser
4

À en juger par les balises, je suppose que 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 étape par étape de Red Hat :

  1. Entrez dans le menu GRUB et appuyez sur e.
  2. Choisissez la ligne qui commence par kernel, appuyez à enouveau sur.
  3. Au bout de cette ligne, mettez single. Ensuite, appuyez sur ENTERet bsortez de là.

Vous obtiendrez éventuellement une invite où vous pourrez taper passwd rootet changer le mot de passe. Puis tapez rebootpour redémarrer le système.

Renan
la source
1
Cela ne fonctionnera que si vous n'avez pas de mot de passe de démarrage.
pradeepchhetri
1
Et si vous n'utilisez pas / sbin / sulogin pour un shell mono-utilisateur (le mot de passe root sera demandé).
James O'Gorman
Si vous parvenez au système de fichiers, vous pouvez éditer /boot/grub/grub.confpour supprimer le mot de passe du chargeur de démarrage et /etc/inittabmodifier le shell mono-utilisateur comme suit: / bin / sh (cc @pradeepchhetri)
NullUser