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


Comment modifier un fichier de sudoers invalide? Il jette sous l'erreur et il ne me permet pas de modifier à nouveau pour le 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

206
2017-10-30 19:15


origine


grande question considérant cette page crée cette erreur help.ubuntu.com/community/RootSudoTimeout


Réponses:


Sur un système Ubuntu moderne (et de nombreuses autres distributions GNU / Linux), réparer un fichier corrompu sudoers Le fichier est en fait assez facile et ne nécessite pas de redémarrage, en utilisant un CD en direct ou un accès physique à la machine.

Pour ce faire via SSH, connectez-vous à la machine et exécutez la commande pkexec visudo. Si vous avez un accès physique à la machine, SSH n'est pas nécessaire; il suffit d'ouvrir une fenêtre Terminal et exécutez cette pkexec commander.

En supposant que vous (ou un autre utilisateur) êtes autorisé à exécuter des programmes en tant que root avec PolicyKit, vous pouvez entrer votre mot de passe, puis il fonctionnera visudo comme root, et vous pouvez réparer votre /etc/sudoers.

Si vous devez modifier l'un des fichiers de configuration dans /etc/sudoers.d (ce qui est rare dans cette situation, mais possible), utilisez pkexec visudo -f /etc/sudoers.d/nom de fichier.

Si vous avez une situation connexe où vous devez exécuter des commandes d'administration système supplémentaires en tant que root pour résoudre le problème (également rare dans ce cas, mais courant dans d'autres), vous pouvez démarrer un shell racine interactif avec pkexec bash. De manière générale, toute commande non graphique exécutée avec sudo peut être exécuté avec pkexec au lieu.

(S'il y a plus d'un compte d'utilisateur sur le système autorisé à exécuter des programmes en tant que root avec PolicyKit, alors, pour chacune de ces actions, il vous sera demandé de sélectionner celle que vous souhaitez utiliser, avant de vous demander votre mot de passe.)


Si cela ne fonctionne pas - par exemple, si aucun utilisateur n’est autorisé à exécuter des programmes en tant que root via PolicyKit -, démarrez à partir d’un CD live Ubuntu (comme le CD que vous avez probablement utilisé pour installer Ubuntu) et montez le système de fichiers pour système installé. Vous pouvez le faire en exécutant sudo parted -l pour voir vos partitions - il y a probablement une seule partition ext4, et c'est le système de fichiers racine.

Supposons que le système de fichiers racine du système Ubuntu installé se trouve sur / dev / sda1. Ensuite, vous pouvez le monter avec sudo mount /dev/sda1 /mnt. Ensuite, vous pouvez modifier le fichier sudoers du système installé avec sudo nano -w /mnt/etc/sudoers. Ou mieux encore, vous pouvez le modifier avec

sudo visudo -f /mnt/etc/sudoers

(ce qui vous empêchera de sauvegarder un fichier sudoers avec une syntaxe incorrecte).


317
2017-10-30 19:45



pkexec / usr / sbin / visudo a travaillé sur debian 7 - marinara
Ne pourraient-ils pas simplement démarrer en mode de récupération? - Seth♦
SAINTE VACHE! Merci beaucoup! Sauvé mon bacon. Ajout d'un fichier comme suggéré dans le répertoire etc / sudoers.d / en utilisant un éditeur de texte régulier (D-O-N-T__D-O__T-H-A-T !!!). Perte de toute capacité à faire des privilèges élevés, Y COMPRIS, l'édition du fichier incriminé. Cela a aidé à modifier le fichier. Bizarrement, je devais d'abord éditer / etc / sudoers, puis il a trouvé les erreurs dans l'autre fichier et l'a ouvert pour moi. MÊME WEIRDER, la directive dans le fichier / etc / sudoers 'inlcudedir /etc/sudoers.d' a été mise en commentaire et l’inclut toujours. - Dennis
@Dennis Un peu confus, #include directives en sudoers les fichiers sont traités spécialement; le premier # ne fait pas interpréter le reste de la ligne comme un commentaire, dans ce cas. Comme man sudoers dit: "Le signe dièse (" # ") est utilisé pour indiquer un commentaire (sauf s’il fait partie d’une directive #include ou si ..." Voir aussi Visudo: #includedir sudoers.d (archivé à partir de lzone.de/blog). - Eliah Kagan
Mon utilisateur est sudoer mais j'ai cette erreur: Erreur lors de l'exécution de la commande en tant qu'autre utilisateur: non autorisé - SuB


Toujours utiliser visudo pour éditer votre fichier sudoers, ne le modifiez jamais directement vous-même. Cela vous empêchera de l'enregistrer sur le disque, sauf s'il est validé.


44
2017-11-20 17:08



le recul est de 20/20 - code_monk
Cela n'empêchera pas le désastre. Il est assez facile de vous nier valablement. - Joshua
Est-ce que visudo peut être utilisé par scritps? Si c'est le cas, comment? - Lukas
Je n'ai pas installé visudo. Donc j'ai fait pkexec vim. Ensuite, il affiche la liste des utilisateurs et demande un mot de passe. Lorsque j'indique un mot de passe, il génère l'erreur "Erreur lors de l'exécution de la commande en tant qu'autre utilisateur: non autorisé". S'il vous plaît aider - Shyamkkhadka


Tapez:

pkexec visudo

Puis changez la dernière ligne

#includedir /etc/sudoers

À:

#includedir /etc/sudoers.d

Cela devrait résoudre votre problème.


20
2018-02-21 18:23



J'ai remarqué que la suppression des principaux # de #includedir provoque des erreurs de syntaxe, le # fait partie de la directive, au moins sur Ubuntu 12.10. - SAFX
Cela m'a sauvé beaucoup de maux de tête. Merci beaucoup :) - Nitroware
Je n'ai pas installé visudo. Donc j'ai fait pkexec vim. Ensuite, il affiche la liste des utilisateurs et demande un mot de passe. Lorsque j'indique un mot de passe, il génère l'erreur "Erreur lors de l'exécution de la commande en tant qu'autre utilisateur: non autorisé". S'il vous plaît aider - Shyamkkhadka


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

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

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

corrige cette erreur et sois heureux :)


10
2017-10-20 21:40



Alors que la solution pkexec proposée par @ eliah-kagan semble être plus facile, celle-ci est plus universelle. Sur ma machine, il s'est avéré qu'il n'y avait pas de pkexec installé et bien sûr je ne pouvais pas l'installer car sudo apt-get install pkexec ne fonctionnait pas. - running.t


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

Mais s'il vous plaît assurez-vous de ne pas avoir d'erreurs de syntaxe. J'ai eu le même problème mais et passé des heures à réparer et juste compris qu'ils sont des erreurs de syntaxe. Reportez-vous au manuel et corrigez-les.

Par exemple Dites que votre nom d'utilisateur est: dolly J'ai utilisé suivant 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
2017-07-02 23:15



Une meilleure approche que de s’assurer que vous n’avez pas d’erreurs de syntaxe est de toujours utiliser visudo lors de l'édition de ces fichiers, vous êtes sûr de ne pas avoir d'erreurs de syntaxe avant de modifier le fichier. visudo n'est pas juste pour l'édition /etc/sudoers--il va également créer et éditer des fichiers dans /etc/sudoers.d. Cela fonctionnera également avec n'importe quel éditeur de texte que vous voulez. Voir la page de manuel pour plus de détails. - Eliah Kagan
En ce qui concerne l'autorisation spécifique, veuillez noter que cela n'est utile que pour des commandes / applications très simples, car toute application suffisamment complexe (notamment thunderbird, qui ne devrait en aucun cas être exécuté en tant que root, donnera à l'utilisateur un accès complet au système lorsqu'il est exécuté en tant que root. Même une fonctionnalité apparemment simple ouvre la porte à un accès root complet. Par exemple, un utilisateur pouvant exécuter un programme pouvant enregistrer un fichier dans un emplacement arbitraire en tant que root peut obtenir un accès root complet (il peut installer son propre /etc/sudoers, ou si les limitations de syntaxe empêchent cela, ils peuvent installer leur propre /etc/crontab). - Eliah Kagan


Si vous avez foiré votre fichier sudoers.Vous devrez:

  • Redémarrez en mode de récupération (appuyez sur Échap pendant le démarrage, choisissez l'option de mode de récupération sur l'écran Grub)
  • Choisissez l'option "Activer la mise en réseau" (si vous ne le faites pas, 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émarrer avec l'option grub normale

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


5
2017-12-14 10:59



Bonjour, supprime-t-il les fichiers iptables du système existant? - Shyamkkhadka


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

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

seul le groupe et l'utilisateur root doivent avoir lu privelege


3
2017-11-20 17:11





Vous pouvez également modifier votre entrée de démarrage dans grub.

Redémarrez simplement votre PC et attendez que grub s'affiche. Puis appuyez sur "e" sur l'entrée "Ubuntu" pour l'éditer.

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

Ensuite, appuyez 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 pouvez éditer le fichier sudoers avec s.th. comme nano / etc / sudoers revient à son état précédent.

Puis redémarrez et c'est fait.


2
2018-01-13 04:41





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


2
2018-03-09 07:12