J'ai commis la même erreur en ajoutant mon compte à un groupe (j'ai oublié le -a
). J'avais mon système installé avec le login root verrouillé, et mon compte était le seul sur la machine.
La réponse acceptée ne m'a pas aidé. Lors du démarrage en mode de récupération, tout ce que je reçus était un message inutile
Impossible d'ouvrir l'accès à la console, le compte root est verrouillé. Consultez la page de manuel sulogin (8) pour plus de détails.
Appuyez sur Entrée pour continuer.
Après avoir appuyé sur ENTREE, le système a démarré normalement: aucune chance d'obtenir un accès root pour résoudre le problème. Je laisse cette réponse au cas où quelqu'un finirait dans mes chaussures par ce point. Utilisez ce qui suit uniquement si vous ne parvenez pas à accéder au mode de récupération via le menu Grub .
Une procédure pas à pas pour obtenir la coque racine:
- Démarrez dans le menu Grub et mettez en surbrillance (mais n'appuyez pas Entersur!) L'option de démarrage normale (par défaut, pas de récupération!).
- Appuyez sur
e
. Grub affichera un éditeur de ligne de commande avec plusieurs lignes, chacune d'entre elles pouvant sembler inconnue, voire intimidante. Ne vous inquiétez pas, les modifications que vous apportez ne sont pas enregistrées de manière permanente.
- Trouvez la ligne suivante
linux ... ro ...
. C'est la ligne de commande du noyau. Remplacez le ro
jeton rw
, pour rendre le système de fichiers racine en lecture / écriture, et ajouter un autre paramètre de ligne de commande du noyau, init=/bin/sh
. Ceci indique au noyau de s’exécuter sh
au lieu de /sbin/init
. À la fin, la ligne devrait ressembler linux ... rw init=/bin/sh ...
. Remarque: vous pouvez vous en tirer même à l’ grub>
invite. Je serai heureux d’expliquer comment, étape par étape, si tout échoue pour vous; laissez juste un commentaire à cette réponse.
- Après la modification, appuyez sur F10pour utiliser les commandes de l'éditeur pour démarrer le système (ou lisez les instructions pour démarrer juste en dessous de la fenêtre de l'éditeur, si votre Grub est compilé différemment). Vous obtiendrez l'invite du shell root, car le processus init est exécuté en tant que PID 1 avec l'identité racine.
- Faites le changement que vous voulez faire, par exemple
usermod -a -Gadm,sudo YOURUSERID
. Confirmez avec id -a YOURUSERID
que vous avez récupéré votre adhésion sudo. Si vous obtenez une erreur "commande introuvable", utilisez /sbin/usermod
et /bin/id
.
Vous ne pouvez pas arrêter ou redémarrer le système proprement à ce stade. reboot
, halt
ou poweroff
ne fonctionnera pas, et exit
du shell conduira à une panique du noyau, car le processus PID 1 ne devrait pas simplement se terminer. Donc, les deux prochaines commandes que vous devez donner sont:
sync
exec /sbin/init
sync
juste au cas où quelque chose ne va pas, pour enregistrer toutes les modifications sur le disque, et exec
pour remplacer le shell par le réel init
(qui peut être systemd, upstart ou System V init, mais il est toujours appelé /sbin/init
). Le système continuera probablement à démarrer normalement (pas de mode de récupération).
- Connectez-vous et redémarrez le système une fois, par exemple -
sudo reboot
vous devriez avoir récupéré votre privilège sudo. Un redémarrage est recommandé car (bien que très rarement) init
des paramètres supplémentaires peuvent être transmis lors d'un démarrage normal, ce que nous n'avons pas fait. En cas d' exec
échec, réinitialisez simplement la machine et laissez-la démarrer normalement. Tous les systèmes de fichiers de journalisation modernes, tels que ext4, xfs et btrfs, se récupèrent rapidement (quelques secondes au maximum pour une vérification de journal, si sync
édités avant la réinitialisation), et vous serez prêt.
Un peu de fond
Il y a eu une discussion sur le rapport de bogue Debian à propos de ce problème même et, pour autant que je sache, cela a été décidé comme une fonctionnalité et non comme un bogue, ce qui, à mon avis, a plutôt été une erreur. Ayant été dans cette entreprise pendant 25 ans, je ne peux m'empêcher d'être totalement en désaccord avec l'argument de Michael Biebl dans le message n ° 31 de ce fil:
Considérez ceci: vous avez un ordinateur portable avec un compte root verrouillé. Par défaut, le chargeur de démarrage grub génère une entrée de démarrage pour le mode de secours. Ainsi, même si vous verrouillez le bios pour empêcher le démarrage à partir d'un CD-ROM ou d'une clé USB et que vous protégez votre mot de passe, quelqu'un pourrait facilement accéder à la racine si vous laissez l'ordinateur portable sans surveillance un instant.
L’objection correcte de l’OMI, si elle n’était pas assez générale, a été formulée dans le message n ° 70 de Felipe Sateler:
Pour beaucoup (la plupart?) Des ordinateurs, l'accès physique est une perte de sécurité, car vous pouvez simplement démonter la boîte et obtenir le disque dur.
Cela est particulièrement vrai pour l'ordinateur portable, mentionné dans l'argument de Michael: si vous le laissez sans surveillance pendant un moment, et que quelqu'un recherche vos données, l'ordinateur portable disparaîtra pour ne plus jamais être revu. Et pour n'importe quelle machine, ni "beaucoup" ni "la plupart", même celles bloquées à 8 points dans un rack, dès que l'attaquant obtient un accès physique à la machine, le jeu est vraiment terminé.