El archivo / etc / sudoers está dañado y no puedo ejecutar 'pkexec visudo' sobre SSH

14

Siguiendo las instrucciones aquí obtengo:

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.

Estoy haciendo esto a través de ssh ya que la caja en la que estoy haciendo esto se usa como un servidor de música sin pantalla y es bastante inaccesible. Esto sucedió cuando actualicé Ubuntu 14.04 a 16.04. Traté de copiar un archivo sudoers de otra instalación reciente de 16.04, pero no puedo hacerlo debido al archivo 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

¿Debo ir a buscar la caja del ático y probar pkexec visudoo hay algo más aquí?

Thomas Ulrich Christiansen
fuente
AFAIK pkexecsolo permite esto para un usuario local (no un usuario remoto de SSH), así que sí, debería funcionar desde el ático
steeldriver
Obtenga la caja u obtenga la unidad, móntela en otra computadora y edite sudoersa su gusto. Depende de lo que sea más fácil.
vidarlo
@steeldriverIt Simplemente me funcionó como usuario remoto. JFYI
php-coder

Respuestas:

44

También me encontré con este problema y, con algunas excavaciones, encontré una solución que funcionaba. La solución original es de este problema de Github para NixOS por EstalillaJ.

  1. Abra dos sesiones ssh en el servidor de destino.
  2. En la primera sesión, obtenga el PID de bash ejecutando:

    echo $$

  3. En la segunda sesión, inicie el agente de autenticación con:

    pkttyagent --process (pid from step 2)

  4. De vuelta en la primera sesión, ejecute:

    pkexec visudo

  5. En la segunda sesión, recibirá la solicitud de contraseña. visudo comenzará en la primera sesión.

Satyen A.
fuente
55
¡Mierda, amigo, me salvaste la vida! gracias: D
Roger Barretto
1
eso es una locura, funciona perfecto! y no es necesario reiniciar el sistema
undefinedman
1
¡Muchas gracias, esto realmente me salvó! Freder
Frederic
1
Salvé mi a ** de reiniciar un servidor en recuperación, ¡muchas felicidades!
SargentoSerk
1
Eso es simplemente notable amigo! ¡Ojalá pudiera tener respuestas favoritas también!
Adrian