Arquivo Sudoers bagunçado

Arquivo Sudoers bagunçado

Eu acidentalmente cometi um erro no sudoersarquivo e agora não consigo consertar porque se eu tentar alterar o arquivo ele dá uma mensagem de permissão negada. Se eu usar sudopara abrir o arquivo, ele indicará erro de sintaxe e nenhuma sudoersfonte válida encontrada e não executará o comando. Estou no raspbian, um sabor do debian.

Alguém sabe como sair desse beco sem saída?

Responder1

  1. Se você souber a rootsenha (e ela estiver definida), poderá usá-la supara criar roote editar arquivos /etc/sudoers.
  2. Se o seu sistema de arquivos raiz estiver em um cartão SD, você poderá enviá-lo e editá-lo /etc/sudoersno PC ou em qualquer outro dispositivo, desde que tenha leitor de cartão.
  3. Você pode entrar na 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 Linux para entrar no modo de usuário único. Neste modo você poderá roote poderá editar arquivos /etc/sudoers. Veja tambémesse.

Responder2

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

https://serverfault.com/questions/482079/debian-boot-to-single-user-mode

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

Responder3

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

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

No anfitrião:

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

O "busybox" é apenas uma pequena distro agradável que não demora muito para ser baixada. Se você já possui uma imagem Docker que possui um shell disponível, basta usá-la.

No contêiner Docker:

cd /usr/local/etc
vi sudoers

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

Ao sair do contêiner, você pode fazer sudoisso novamente.

Uau!

informação relacionada