O arquivo / etc / sudoers está corrompido e não consigo executar o 'pkexec visudo' no SSH

14

Seguindo as instruções aqui , recebo:

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.

Estou fazendo isso via ssh, pois a caixa em que estou fazendo isso é usada como um servidor de música sem tela e é inacessível. Isso aconteceu quando eu atualizei do Ubuntu 14.04 para 16.04. Tentei copiar um arquivo sudoers de outra instalação recente do 16.04, mas não posso fazer isso por causa do arquivo 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 ir buscar a caixa no sótão e tentar pkexec visudoou há algo de errado aqui?

Thomas Ulrich Christiansen
fonte
AFAIK pkexecsó permite isso por um local de usuário (não um usuário remoto SSH) - então sim ele deve funcionar a partir do sótão
steeldriver
Pegue a caixa ou obtenha a unidade, monte-a em outro computador e edite- sudoersa conforme necessário. Depende do que é mais fácil.
Vidarlo 19/06/19
@steeldriverIt Apenas funcionou para mim como um usuário remoto. JFYI.
Php-coder

Respostas:

44

Também encontrei esse problema e, com algumas escavações, encontrei uma solução funcional. A solução original é deste problema do github para NixOS do EstalillaJ.

  1. Abra duas sessões ssh no servidor de destino.
  2. Na primeira sessão, obtenha o PID do bash executando:

    echo $$

  3. Na segunda sessão, inicie o agente de autenticação com:

    pkttyagent --process (pid from step 2)

  4. De volta à primeira sessão, execute:

    pkexec visudo

  5. Na segunda sessão, você receberá a solicitação de senha. O visudo começará na primeira sessão.

Satyen A.
fonte
5
Puta merda cara, você salvou minha vida! thx: D
Roger Barretto
1
isso é loucura, funciona perfeito! e sem necessidade de reiniciar o sistema
undefinedman
1
Muito obrigado, isso realmente me salvou! Freder
Frederic
1
Salvei meu ** da reinicialização de um servidor em recuperação, felicidades muito!
SergeantSerk
1
Isso é apenas cara notável! Gostaria de poder também respostas favoritas!
Adrian