web-dev-qa-db-fra.com

Comment modifier un fichier '/ etc / sudoers' invalide?

Comment modifier un fichier sudoers invalide? Cela renvoie l'erreur ci-dessous et ne me permet pas de modifier à nouveau pour la réparer.

Voici ce qui se passe:

$ Sudo visudo
>>> /etc/sudoers: syntax error near line 28 <<<
Sudo: parse error in /etc/sudoers near line 28
Sudo: no valid sudoers sources found, quitting
228
YumYumYum

Utilisez toujours visudo pour éditer votre fichier sudoers, ne le modifiez jamais directement vous-même. Cela vous empêchera de l'enregistrer sur le disque à moins qu'il ne soit validé.

52
Caesium

Tapez:

pkexec visudo

Puis changez la dernière ligne

#includedir /etc/sudoers

À:

#includedir /etc/sudoers.d

Cela devrait résoudre votre problème.

24
Andrej Burcev

si quelqu'un d'autre comme moi n'avait pas pkexec installé ou n'était pas en mesure d'exécuter vi, visudo, nano ou tout autre éditeur pour modifier le fichier sudoers, vous pouvez être sûr de ce processus .. J'ai été enregistré. avec ça:

  • redémarrer
  • maintenez la touche Maj enfoncée pendant le démarrage pour avoir l'option du mode de récupération (entrez-la)
  • entrez la ligne de commande en tant que root (deuxième dernière option dans le menu de menu)
  • remonter le périphérique de démarrage pour rw, et appliquer le droit d’exécution à l’utilisateur, puis modifier le fichier

    mount -n -o remount,rw /
    chmod u+x /etc/sudoers
    nano /etc/sudoers
    

corrige cette erreur et sois heureux :)

11
Kresimir Pendic

Si vous avez foiré votre fichier sudoers, vous devez:

  • Redémarrez en mode de récupération (appuyez sur Échap au démarrage, choisissez l'option du mode de récupération sur l'écran de démarrage).
  • Choisissez l'option 'Activer le réseau' (sinon, votre système de fichiers sera monté en lecture seule. Qui le savait)
  • Choisissez l'option 'Drop to root Shell'
  • lancez visudo, corrigez votre fichier
  • Redémarrez avec l'option normale

source: - http://mario.net.au/content/recover-etcsudoers-ubuntu-1204

7
streak

Il n'y a rien de mal #include sudoer.d supprimer #include sudoer.d ne fera aucune différence.

Mais assurez-vous de ne pas avoir d'erreur de syntaxe. J'ai eu le même problème, mais j'ai passé des heures à réparer et à comprendre qu'il s'agit d'erreurs de syntaxe. Reportez-vous au manuel et corrigez-le.

Par exemple, dites que votre nom d'utilisateur est: dolly j'ai utilisé après ce qui est faux

 dolly ALL = (ALL) ALL NO PASSWD: ALL

la syntaxe correcte est

dolly ALL = (ALL) ALL //give permission to everything, not good

ou

dolly ALL=(ALL) NOPASSWD:/usr/bin/thurderbird //good, give specific permission

j'espère que cela t'aides

6
Thusitha Nuwan

Vous pouvez également vous connecter en tant que root sur une console tty avec Ctrl+Fn (Fn de 1 à 6) et exécutez visudo.

3
magisterludi

exécuter le mode de récupération puis tapez ce

chown -R racine: racine /etc/sudoers.d
chmod u = rwx, g = rx, o = rx /etc/sudoers.d/
chmod u = r, g = r, o = /etc/sudoers.d/*

seuls le groupe et l'utilisateur root doivent avoir lu privilège

3
kosaidpo
pkexec visudo

puis revenez sur vos erreurs

2
Bhavesh Gabani

Vous pouvez également modifier votre entrée de démarrage lorsque vous êtes dans grub.

Redémarrez simplement votre ordinateur et attendez que grub apparaisse. Puis appuyez sur "e" sur l'entrée "Ubuntu" pour le modifier.

Cherchez une ligne avec "linux =" ou "kernel =" et ajoutez simplement un "single" à la fin de cette ligne.

Appuyez ensuite sur F10 pour démarrer cette entrée de démarrage modifiée temporairement. Cela vous donnera un shell (sans interface graphique) avec les droits root et vous pourrez éditer le fichier sudoers avec s.th. comme nano/etc/sudoers à son état précédent.

Puis redémarrez et c'est fait.

2
Markus Ressel

Dans Ubuntu 16.04 s’exécutant sur une VirtualBox (cela ne devrait pas faire de différence), les méthodes ci-dessus ne fonctionnaient pas pour moi (ligne non valide à la fin du fichier). Quel était le travail était:

  1. Redémarrez la VirtualBox
  2. Laissez-le démarrer normalement, jusqu'à ce qu'il vous demande votre nom d'utilisateur et votre mot de passe dans la console
  3. Connectez-vous normalement avec votre nom d'utilisateur
  4. Ensuite, lorsque vous vous retrouvez dans la console (à condition que votre boîte de dialogue ne démarre pas dans une interface graphique), donnez simplement la commande su -, puis donnez le mot de passe de votre propre nom d'utilisateur.
  5. Il devrait maintenant se retrouver dans l'invite root@ubuntu-xenial:~#, si le /etc/sudoers n'est pas trop endommagé ou vide. Pas sûr de ce qui se passerait dans ce cas.
  6. Ensuite, vous pouvez simplement exécuter visudo et corriger le fichier.
  7. Puis Ctrl + X et il sera invité à enregistrer le tampon modifié. Appuyez sur Y et Enter
  8. Redémarrez la boîte et cela devrait fonctionner maintenant.

Si votre /etc/sudoers est vide ou manque quelque chose et que vous pouvez le modifier, voici le contenu du mien:

Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

root ALL=(ALL:ALL) ALL

%admin ALL=(ALL) ALL

%Sudo ALL=(ALL:ALL) ALL
0
Juha Untinen

Bonne pratique: ouvrez une fenêtre de terminal de sauvegarde et exécutez Sudo su. Sur un autre termianl, exécutez visudo ou Sudo vim/etc/sudoers. Si quelque chose ne va pas, retournez à la première borne et corrigez le fichier. Vous pouvez demander, pourquoi ne pas simplement exécuter Sudo su avant visudo dans un terminal? Cela fonctionne aussi, mais vous risquez plus de fermer le terminal avant de le savoir.

0
biocyberman