66 votes

Comment puis-je me réintégrer en tant qu'utilisateur sudo ?

J'ai fait une installation propre d'Ubuntu 11.10 aujourd'hui, puis j'ai installé VirtualBox. Cela m'a demandé de m'ajouter au groupe vboxusers, et comme 11.10 semble ne plus avoir d'application graphique pour ajouter des utilisateurs à un groupe, j'ai exécuté la commande suivante :

sudo usermod -G vboxusers stephane

C'est un problème. Je vois maintenant ce que j'aurais dû exécuter à la place :

sudo usermod -aG vboxusers stephane

Le résultat final est que je ne suis plus dans les groupes dans lesquels je devrais être. Y compris le groupe requis pour exécuter "sudo". Quand je lance une commande en tant que sudo maintenant, j'obtiens ce qui suit :

$ sudo ls
[sudo] password for stephane: 
stephane is not in the sudoers file.  This incident will be reported.

Y a-t-il un moyen de résoudre ce problème, ou dois-je réinstaller à nouveau depuis le début ?

67voto

Maciek Gryka Points 1807
  1. Pendant le démarrage, appuyez et maintenez la touche gauche Shift et vous devriez voir le menu Grub.

  2. Sélectionnez l'entrée contenant ( mode de récupération ) et attendez.

  3. Un menu devrait maintenant s'afficher. Sélectionnez :

    remount    Remount / read/write and mount all other file systems 

    et attendez que vos systèmes de fichiers soient montés avec des permissions de lecture/écriture, puis appuyez sur Enter .

    Si cette option n'apparaît pas ou ne fonctionne pas, vous pouvez choisir à la place l'option root et utilisez la commande suivante pour monter la partition système :

    mount -o remount /

    Vous pouvez vérifier quelle est votre partition système avec fsck ou en visualisant /etc/mtab .

    Après avoir exécuté avec succès la commande mount (c'est-à-dire sans message d'erreur), passez directement à l'étape 5 ci-dessous.

  4. Après avoir choisi le remount le menu s'affiche à nouveau. Sélectionnez :

    root       Drop to root shell prompt
  5. Maintenant, entrez l'une des commandes suivantes pour réinscrire votre utilisateur dans la liste des utilisateurs. admin (pour Ubuntu 11.10 et antérieures) :

    adduser <USERNAME> admin

    ou à la sudo (pour Ubuntu 12.04 et plus) :

    adduser <USERNAME> sudo
  6. Redémarrez et vous devriez être en mesure d'utiliser sudo encore.

15voto

Sergio Points 5161

Si le login root est activé sur votre système, il suffit d'ouvrir le terminal via Control + Alt + F1 sans se connecter à X. Connectez-vous en tant que root et ajoutez simplement l'utilisateur souhaité à admin (pour Ubuntu 11.10 et antérieures) :

adduser desired_user_name admin

Pour Ubuntu 12.04 et les versions ultérieures, ajoutez l'utilisateur à l'arborescence de l'utilisateur. sudo groupe :

adduser desired_user_name sudo

Si vous n'avez pas activé la connexion root, choisissez simplement le mode de récupération à partir de Grub et essayez ensuite root Grub.

Root Shell

Monter le système de fichiers en lecture-écriture :

mount -o rw,remount /

Après cela, vous pouvez à nouveau ajouter l'utilisateur souhaité à la liste des utilisateurs. admin (ou sudo ).

7voto

Jodi Points 71

J'ai essayé plusieurs combinaisons après avoir fait la même chose car l'option de menu "Remount" ne semble pas être dans la version 12.10. J'ai essayé tout le reste dans ce post à partir de root. Le dernier était

umount -a
mount -o -w /<path> /

Le système de fichiers était donc toujours ro à cause d'un paramètre dans fstab pour démarrer ro sur une erreur de système de fichiers, je pense, en déclarant qu'il semblait être ro après le montage.

J'ai finalement réussi à le faire avec

mount -o rw,remount /

Bien que je ne sois pas sûr de la différence avec la série de commandes précédente.

Après l'application de cette variante, l'ajout d'un utilisateur à la liste d'utilisateurs de l'application admin (11.10 et ealrier) ou sudo (12.04 et plus) se fait de la même manière :

adduser username admin    # 11.10 and earlier

adduser username sudo     # 12.04 and later

3voto

inazaruk Points 37760

Vieille question mais cela m'est arrivé aussi (Ubuntu 14.04).

Je n'ai pas pu me connecter en mode récupération et accéder à une Shell racine, comme le décrivent de nombreuses réponses ici et ailleurs : l'accès à la Shell racine depuis Shell semble être protégé par un mot de passe.

J'ai donc résolu le problème de cette façon :

  1. démarrer sur une clé usb active
  2. ouvrir un Shell
  3. accéder au système de fichiers Linux du disque dur principal (vous pouvez trouver son point de montage dans la barre d'adresse de l'explorateur de fichiers de l'interface graphique, généralement après CTRL-L). cd en elle.
  4. modifier le fichier etc/group (dire avec nano etc/group ou autre chose)
  5. trouvez la ligne "sudo". Cela devrait ressembler à sudo:x:27:admin,bob,alice
  6. ajoutez-vous à la sudo ligne, séparée par une virgule

Bien sûr, cela implique que le fichier etc/sudoers tient toujours la ligne

%sudo   ALL=(ALL:ALL) ALL

ce qui signifie que tous les membres du groupe sudo avoir un contrôle total. Vérifiez d'abord ça.

Ça a marché sans problème.

1voto

kkm Points 113

J'ai fait la même erreur en ajoutant mon compte à un groupe (j'ai oublié le nom du groupe). -a ). J'avais installé mon système avec le login root verrouillé, et mon compte était le seul sur la machine.

La réponse acceptée ne m'a pas aidé. En démarrant en mode de récupération, tout ce que j'ai obtenu est un message inutile.

Impossible d'ouvrir l'accès à la console, le compte root est verrouillé. Voir page de manuel sulogin(8) pour plus de détails.
Appuyez sur ENTER pour continuer

Après avoir appuyé sur ENTER, 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 se retrouverait à ma place à ce stade. Utilisez ce qui suit seulement si vous ne pouvez pas accéder au mode de récupération par le menu Grub. .

Une marche à suivre pour obtenir la racine du Shell :

  1. Démarrez dans le menu Grub, et mettez en évidence (mais n'appuyez pas sur Enter on !) l'option de démarrage normal (par défaut, pas de récupération !).

  2. Appuyez sur e . Grub affichera un éditeur de ligne de commande avec plusieurs lignes, chacune d'entre elles pouvant sembler peu familière, voire intimidante. Ne vous inquiétez pas, les modifications que vous faites ne sont pas enregistrées de façon permanente.

  3. Trouvez la ligne qui dit linux ... ro ... . C'est la ligne de commande du noyau. Remplacez le ro jeton avec 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 . Cela indique au noyau d'exécuter sh au lieu de /sbin/init . Au final, la ligne devrait ressembler à linux ... rw init=/bin/sh ... . Nota: Vous pouvez vous en sortir même avec le strict minimum grub> rapide. Je serai heureux de vous expliquer comment faire, étape par étape, si tout le reste échoue pour vous ; il suffit de laisser un commentaire à cette réponse.

  4. Après la modification, appuyez sur F10 pour utiliser les commandes de l'éditeur pour démarrer le système (ou lisez les instructions comment démarrer juste en dessous de la fenêtre de l'éditeur, si votre Grub est compilé différemment). Vous obtiendrez l'invite Grub root, puisque le processus init s'exécute en tant que PID 1 avec l'identité root.

  5. Effectuez le changement que vous voulez faire, par exemple usermod -a -Gadm,sudo YOURUSERID . Confirmez avec id -a YOURUSERID que tu as récupéré ton statut de membre sudo. Dans le cas où vous obtenez une erreur "command not found", utilisez /sbin/usermod y /bin/id .

  6. Vous ne pouvez pas arrêter ou redémarrer le système proprement à ce stade. reboot , halt o poweroff ne fonctionnera pas, et exit à partir du Shell conduira à une panique du noyau, car le processus PID 1 n'est pas censé sortir tout simplement. Donc les deux prochaines commandes que vous devez émettre sont :

    sync
    exec /sbin/init

    sync juste au cas où quelque chose irait mal, pour sauvegarder toutes les modifications sur le disque, et la exec pour remplacer le Shell par le véritable init (qui peut être systemd, upstart ou System V init, mais il est toujours appelé /sbin/init ). Le système continuera très probablement à démarrer normalement (pas de mode de récupération).

  7. 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 peut se voir passer des paramètres supplémentaires lors d'un démarrage normal, ce que nous n'avons pas fait. Dans le cas où le exec échoue, il suffit de réinitialiser la machine et de la laisser démarrer normalement. Tous les systèmes de fichiers journalistiques modernes comme ext4, xfs et btrfs se rétablissent rapidement (quelques secondes tout au plus pour une vérification du journal, si sync ed avant la réinitialisation), et vous serez prêt.


Un peu d'histoire

Il y avait un discussion sur le rapport de bogue de Debian à propos de ce même problème et, d'après ce que j'ai compris, il a été décidé qu'il s'agissait d'une fonctionnalité et non d'un bogue, ce qui, à mon avis, était plutôt une erreur. Ayant travaillé dans ce domaine pendant 25 ans, je ne peux m'empêcher d'être en total désaccord avec l'argument de Michael Biebl dans son article intitulé message n° 31 dans ce fil :

Considérez ceci : Vous avez un ordinateur portable avec un compte root verrouillé. Par défaut le Grub Grub génère une entrée de démarrage pour le mode de secours. Donc, même si vous verrouillez le bios pour ne pas autoriser le démarrage depuis un CD-Rom ou une USB, et que vous protégez par mot de passe Grub, quelqu'un pourrait facilement obtenir un accès root si vous laissez l'ordinateur portable sans surveillance pendant un moment.

L'objection correcte de l'OMI, même si elle n'est pas assez générale, a été formulée dans le document suivant message #70 par Felipe Sateler :

Pour beaucoup (la plupart ?) d'ordinateurs, l'accès physique signifie la perte de la partie sécurité, car il suffit de démonter la boîte pour récupérer le disque dur. disque dur.

C'est particulièrement vrai pour l'ordinateur portable, mentionné dans l'argumentaire de Michael : si vous le laissez un instant sans surveillance et que quelqu'un en veut à vos données, l'ordinateur portable aura tout simplement disparu pour ne plus jamais être revu. Et pour tout Une machine, pas "beaucoup" ou "la plupart", même celles boulonnées à 8 points dans un rack, dès que l'attaquant obtient un accès physique à la machine, la partie est vraiment terminée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X