Arquivo de sudoers alterado e não pode mais abri-lo; não pode abrir nenhum arquivo usando root

8

Alterei as configurações no arquivo sudoers usando

sudo visudo 

e estraguei tudo. Agora, quando tento fazer novamente ou abrir qualquer arquivo usando o sudo, não consigo mais abri-lo e recebo esta mensagem de erro:

>>> arquivo sudoers: erro de sintaxe, linha 7 

E agora?

Existe alguma maneira de resolver esse problema (para reverter as configurações) ou preciso instalar uma nova cópia do linux?

A razão pela qual consegui tudo isso foi que eu pressionei "Q" enquanto dizia que havia algum erro, o que foi muito estúpido da minha parte.

Obrigado.

EDITAR

Meu arquivo sudoers não é diferente do arquivo normal do sudoers. Acabei de adicionar timestamp_timeout = 0 linha nesse arquivo e todos esses problemas surgiram. Fiz o que James sugeriu e até removi essa linha (timestamp_timeout = 0). Alterei a permissão de arquivo para 0440 solicitada e, em seguida, inicialize normalmente. Então, recebo a mesma mensagem de erro

sudoers file: syntax error, line 7 
sudo: parse error in /etc/sudoers near line 7
como acima.

O que eu deveria fazer agora ??

EDIT 2 Resolvido

Isto é o que eu fiz:

  1. Inicialize usando o livecd
  2. Remova o arquivo sudoers antigo
  3. Criou novos arquivos de sudoers e copiou tudo para esse arquivo, ou seja, as configurações mínimas, que felizmente eu salvei em outro arquivo
  4. Permissão de arquivo alterada para 0440
  5. Reinicie normalmente normalmente a partir do disco rígido

Hurrah !!

Karlo
fonte
você pode colar o conteúdo do seu arquivo sudoers em www.pastebin.com e vamos dar uma olhada, provavelmente a maneira mais rápida.
Andrioid 25/07/2009
Eu procuraria # em falta nos comentários, dois pontos ausentes, sinais de igual, barras invertidas de continuação de linha, etc.
Pausado até novo aviso.

Respostas:

8

Supondo que você não tenha dado ao usuário root uma senha, a maneira mais fácil de corrigir isso é com um CD ao vivo, como o Knoppix . Inicialização do CD. Monte o disco local, edite o arquivo, desmonte o disco e reinicie.

James
fonte
6

Simples, inicialize o computador no ' modo de usuário único ' executando as seguintes etapas:

  1. Reiniciar
  2. Quando o Grub iniciar, pressione ESC (ou escape)
  3. Pressione 'e' para editar a linha atual
  4. Adicione 'single' ao final da linha que contém 'linux'
  5. Inicialização (pressione b)

Isso iniciará o computador com apenas um usuário, raiz. A partir daí, siga estas etapas:

  1. / usr / bin / vim / etc / sudoers (ou use o nano, pode ser mais fácil para você) para corrigir o problema
  2. Se você não tiver certeza do problema, tente copiar o exemplo incluído de sudoers de "/ usr / share / doc / sudo / examples" (varia) e, é claro, adicione seu usuário lá.
  3. Salve o arquivo, saia do Vim
  4. Reinicie, divirta-se!
Andrioide
fonte
Eu queria saber quando ele pede uma senha antes de fornecer o shell de usuário único?
James
Este método não funciona para todas as distribuições. Como é uma porta traseira conhecida, algumas distribuições forçam um login antes de você chegar a um prompt raiz. Parece que esse é o seu caso, James.
Telemachus
Não sabia distros tinha começado a fazer isso, sempre trabalhou para mim nos bons velhos tempos do Slackware
Andrioid
Você deve recomendar o uso do visudo sobre o vim: en.wikipedia.org/wiki/Visudo
3

A idéia de James de usar um CD ao vivo (assumindo que a conta root não está ativada) é boa. Eu acrescentaria alguns pontos.

  • Primeiro, você pode ter sorte e um backup do arquivo / etc / sudoers foi salvo automaticamente quando você o editava. Faça check-in em / etc para obter um arquivo parecido com este sudoers~ (você pode cdacessar esse diretório e executar ls -A sem privilégios de root, mesmo que não consiga ler ou editar os arquivos como um usuário comum). possível, então você pode ter um sem ter criado explicitamente.
  • Segundo, se você não tem idéia de como editar o arquivo, considere publicá-lo (ou na área em torno da linha 7) aqui ou em outro lugar. Embora o próprio arquivo tenha a ver com segurança, não há senhas nele, portanto não há nenhum dano imediato ao publicá-lo.
  • Por fim, observe que uma mensagem de erro como a que você viu não significa necessariamente que o problema em si está literalmente na linha 7. O erro pode estar na linha 4, mas só foi disparado, por assim dizer, na linha 7.
Telêmaco
fonte
0

Tente pressionar e, para editar. Isso deve permitir que você edite o arquivo e corrija os erros.

Torandi
fonte
Pressionar 'e' quando o erro lhe aparecer, depois que você terminar de editar, o levará de volta para que você possa corrigir seus erros. Infelizmente, não é mencionado explicitamente isso para você.
0

Para aqueles de nós que não têm um console ou acesso local ao servidor para inicializar no nível 1 de execução ou possuem um conjunto raiz (ou credenciais / certs disponíveis), use pkexec visudo ou pkexec vi / etc / sudoers, o visudo é melhor como ocorre na verificação de erros no arquivo.

anon
fonte
Mas como você pkexecfaz sua licitação se não conhece a senha root?
419 Scott Scott