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
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é.
Tapez:
pkexec visudo
Puis changez la dernière ligne
#includedir /etc/sudoers
À:
#includedir /etc/sudoers.d
Cela devrait résoudre votre problème.
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:
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 :)
Si vous avez foiré votre fichier sudoers
, vous devez:
visudo
, corrigez votre fichiersource: - http://mario.net.au/content/recover-etcsudoers-ubuntu-1204
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
Vous pouvez également vous connecter en tant que root sur une console tty
avec Ctrl+Fn (Fn de 1 à 6) et exécutez visudo
.
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
pkexec visudo
puis revenez sur vos erreurs
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.
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:
su -
, puis donnez le mot de passe de votre propre nom d'utilisateur.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.visudo
et corriger le fichier.Ctrl + X
et il sera invité à enregistrer le tampon modifié. Appuyez sur Y
et Enter
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
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.