fichier / etc / sudoers corrompu et je ne peux pas exécuter 'pkexec visudo' sur SSH

14

En suivant les instructions ici, je reçois:

pkexec visudo

==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/usr/sbin/visudo' as the super user
Authenticating as: Thomas,,, (tuc) Password:  polkit-agent-helper-1:
error response to PolicyKit daemon:
GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for
cookie
==== AUTHENTICATION FAILED === 
Error executing command as another user: Not authorized

This incident has been reported.

Je le fais via ssh puisque la boîte sur laquelle je le fais est utilisée comme un serveur de musique sans écran et est plutôt inaccessible. Cela s'est produit lors de la mise à niveau d'Ubuntu 14.04 vers 16.04. J'ai essayé de copier un fichier sudoers à partir d'une autre installation récente de 16.04, mais je ne peux pas le faire à cause du fichier sudoers:

sudo mv ~/gyrf sudoers

>> /etc/sudoers: syntax error near line 36 <<<
>> /etc/sudoers: syntax error near line 37 <<<
>> /etc/sudoers: syntax error near line 38 <<<
>> /etc/sudoers: syntax error near line 39 <<<
>> /etc/sudoers: syntax error near line 40 <<<
>> /etc/sudoers: syntax error near line 41 <<<
>> /etc/sudoers: syntax error near line 42 <<<
>> /etc/sudoers: syntax error near line 43 <<<
>> /etc/sudoers: syntax error near line 44 <<<
>> /etc/sudoers: syntax error near line 45 <<<
>> /etc/sudoers: syntax error near line 46 <<<
>> /etc/sudoers: syntax error near line 47 <<<
>> /etc/sudoers: syntax error near line 48 <<<
>> /etc/sudoers: syntax error near line 49 <<< 
sudo: parse error in /etc/sudoers near line 36    
sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin

Dois-je aller chercher la boîte dans le grenier et essayer pkexec visudoou est-ce que quelque chose d'autre ne va pas ici?

Thomas Ulrich Christiansen
la source
AFAIK pkexecn'autorise cela que pour un utilisateur local (pas un utilisateur distant SSH) - alors oui, cela devrait fonctionner depuis le grenier
steeldriver
Soit obtenir la boîte, ou obtenir le lecteur, le monter dans un autre ordinateur et éditer sudoersà votre convenance. Cela dépend de ce qui est le plus simple.
vidarlo
@steeldriverIt Cela m'a juste fonctionné en tant qu'utilisateur distant. JFYI.
php-coder

Réponses:

44

J'ai également rencontré ce problème et, en creusant, j'ai trouvé une solution de travail. La solution originale provient de ce problème github pour NixOS par EstalillaJ.

  1. Ouvrez deux sessions ssh sur le serveur cible.
  2. Dans la première session, obtenez le PID de bash en exécutant:

    echo $$

  3. Dans la deuxième session, démarrez l'agent d'authentification avec:

    pkttyagent --process (pid from step 2)

  4. De retour dans la première session, exécutez:

    pkexec visudo

  5. Dans la deuxième session, vous obtiendrez l'invite de mot de passe. visudo débutera lors de la première session.

Satyen A.
la source
5
Putain de merde, tu m'as sauvé la vie! thx: D
Roger Barretto
1
c'est fou, ça marche parfaitement! et pas besoin de redémarrer le système
undefinedman
1
Merci beaucoup, cela m'a vraiment sauvé! ⭑
Frédéric
1
A sauvé mon a ** du redémarrage d'un serveur en récupération, applaudit beaucoup!
SergeantSerk
1
C'est juste un mec remarquable! J'aurais aimé pouvoir aussi répondre à vos favoris!
Adrian