Ubuntu: borked mon fichier sudoers, comment puis-je le réparer?


11

J'étais en train de modifier mon /etc/sudoersfichier et je l'ai enregistré, mais il contient une erreur de syntaxe. Maintenant, je ne peux pas sudo vim /etc/sudoersparce que sudo pense que le fichier sudoers n'est pas valide.

Comment puis-je réparer cela?


Réponses:


6

Démarrez le système en mode unique, puis modifiez-le.


Merci, mon Ubuntu fonctionne sous Virtualbox. Comment démarrer en mode mono-utilisateur?
fred basset


Je n'ai pas les options grub au moment du démarrage cependant, il démarre directement dans Ubuntu ...
Fred Basset

Essayez de maintenir <Ctrl> ou quelque chose.
Ignacio Vazquez-Abrams

1
@red basset: Au démarrage de la VM, appuyez plusieurs fois sur Esc, ce qui devrait vous faire tomber dans grub, puis sélectionnez l'option de mode de récupération.
user9517

21

Vous ne devez jamais modifier votre fichier sudoers directement. Utilisation visudo- il vous protégera de ces erreurs de syntaxe à l'avenir.

Pour récupérer de cette situation, démarrez en mode mono-utilisateur et modifiez le fichier ou démarrez à partir d'un livecd et faites de même.


Merci, je me demandais ce que visudo faisait différemment. Je dois maintenant trouver comment démarrer en mode mono-utilisateur. Mon Ubuntu fonctionne sous Virtualbox.
fred basset

1
visudo vous oblige à modifier une copie du fichier sudoers. Il ne remplacera le fichier sudoers que s'il est validé lors de son enregistrement. Il utilisera l'éditeur spécifié par votre variable EDITOR, vous pouvez donc utiliser votre éditeur préféré. Il peut également être utilisé en mode de vérification si vous avez modifié le fichier et que vous voulez vous assurer qu'il est toujours valide.
BillThor


1

Soit dit en passant, si vous avez le mot de passe root, connectez-vous simplement avec et définissez-le comme il était.

chmod 0440 / etc / sudoers

Cela vous évitera de démarrer en mode mono-utilisateur ou pire, de démarrer à partir d'un livecd.

Dans mon cas, je ne pouvais pas me permettre d'arrêter le serveur.


1

Si Docker est installé et que votre utilisateur est membre du dockergroupe, vous pouvez facilement vous sortir de ce cornichon (et de quelques autres) sans redémarrer ou quoi que ce soit:

  1. $ docker run -it --rm -v '/etc/:/root/host.etc/' debian bash
  2. apt-get update && apt-get install [vim|nano|whatever]
  3. cd ~/host.etc/
  4. Réparer les fichiers problématiques
  5. exit

Docker? Avez-vous vu Docker quelque part dans la question d'origine?
Deer Hunter

2
Comme la question ne spécifie rien sur l'environnement du demandeur et que c'est maintenant 2015, ce qui signifie que beaucoup de gens ont installé Docker, je ne comprends ni votre attitude envers moi ni votre mépris pour ma contribution. Il n'est pas du tout insondable que quelqu'un d'autre dans cette situation ait installé un logiciel qui, à ce jour, a été joué par 23,5 k personnes sur GitHub. S'il pkexecest également indisponible pour une raison quelconque, cela fournit une méthode alternative, sans redémarrage, qui est presque aussi rapide et simple.
Adrian Günter
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.