Il file / etc / sudoers è danneggiato e non riesco a eseguire 'pkexec visudo' su SSH


14

Seguendo le istruzioni qui ottengo:

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.

Lo sto facendo tramite SSH poiché la casella su cui lo sto facendo è usata come un server musicale senza schermo ed è piuttosto inaccessibile. Questo è successo quando sono passato da Ubuntu 14.04 a 16.04. Ho provato a copiare un file sudoers da un'altra recente installazione 16.04, ma non posso farlo a causa del file 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

Devo andare a prendere la scatola dall'attico e provare pkexec visudoo c'è qualcos'altro che non va qui?


AFAIK lo pkexecconsente solo per un utente locale (non un utente remoto SSH) - quindi sì, dovrebbe funzionare dalla soffitta
steeldriver

Prendi la scatola o ottieni l'unità, montala su un altro computer e modifica sudoersper adattarla. Dipende da ciò che è più semplice.
vidarlo,

@steeldriverIt Mi ha funzionato da remoto. JFYI.
php-coder

Risposte:


44

Mi sono imbattuto anche in questo problema e con un po 'di scavo ho trovato una soluzione funzionante. La soluzione originale è da questo problema github per NixOS di EstalillaJ.

  1. Aprire due sessioni ssh sul server di destinazione.
  2. Nella prima sessione, ottieni il PID di bash eseguendo:

    echo $$

  3. Nella seconda sessione, avvia l'agente di autenticazione con:

    pkttyagent --process (pid from step 2)

  4. Torna nella prima sessione, esegui:

    pkexec visudo

  5. Nella seconda sessione, riceverai la richiesta della password. visudo inizierà nella prima sessione.


5
Santo cielo, amico, mi hai salvato la vita! grazie: D
Roger Barretto,

1
è pazzesco, funziona perfettamente! e non è necessario riavviare il sistema
undefinedman,

1
Grazie mille, questo mi ha davvero salvato! ⭑
Frederic,

1
Mi ha salvato un ** dal riavvio di un server in recupero, applausi molto!
Sergente

1
È davvero straordinario! Vorrei poter anche le risposte preferite!
Adrian,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.