Arquivo Sudoers desarrumado

4

Eu acidentalmente cometi um erro no arquivo sudoers , e agora não consigo corrigi-lo porque, se eu tentar alterar o arquivo, ele exibe uma mensagem de permissão negada. Se eu usar sudo para abrir o arquivo, ele informará um erro de sintaxe e nenhuma fonte sudoers válida encontrada e não executará o comando. Eu estou no raspbian, um sabor de debian.

Alguém sabe como sair deste catch-22?

    
por jath03 29.09.2016 / 20:16

3 respostas

4

Você precisará inicializar no modo de usuário único.

link

Como usuário root, você poderá editar o arquivo sudoers para corrigi-lo. Eu recomendo usar o comando visudo para editar seu arquivo sudoers no futuro, para evitar ter que passar por isso novamente, pois visudo faz uma verificação de sintaxe no arquivo antes de salvá-lo.

    
por 29.09.2016 / 20:25
6
  1. Se você souber a root senha (e ela estiver definida), você poderá usar su para se tornar root e editar /etc/sudoers .
  2. Se o seu sistema de arquivos raiz estiver no cartão SD, você poderá enviá-lo para fora e editar /etc/sudoers no PC ou em qualquer outro dispositivo, desde que tenha um leitor de cartões.
  3. Você pode inserir a linha de comando do U-Boot (bootloader) (geralmente pressionando um botão no teclado ou via UART) e adicionar 1 à linha de comando do kernel do Linux para entrar no modo de usuário único. Nesse modo, você será root e poderá editar /etc/sudoers . Veja também this .
por 29.09.2016 / 20:29
0

Se você estiver em uma instância de nuvem, terá mais problemas.

Existem técnicas que dependem da distribuição, mas se você já tiver o Docker instalado e em execução, geralmente poderá passar por um contêiner do Docker para corrigir o problema. Isso ocorre porque, geralmente, o serviço Docker está sendo executado como raiz e qualquer coisa feita em um volume montado dentro do contêiner é afetada como raiz no host.

No host:

docker run --rm -ti -v /etc:/usr/local/etc busybox sh

O "busybox" é apenas uma pequena distro que não demora muito para ser baixada. Se você já tem uma imagem do Docker com um shell disponível, use isso.

No contêiner do Docker:

cd /usr/local/etc
vi sudoers

Você pode ter adicionado um arquivo inválido ao diretório /etc/sudoers.d/ . Nesse caso, provavelmente basta remover esse arquivo.

Quando você sair do contêiner, poderá sudo novamente.

Ufa!

    
por 23.02.2017 / 05:25