Ubuntu: borked meu arquivo sudoers, como posso corrigi-lo?

11

Eu estava editando meu /etc/sudoersarquivo e o salvei, mas há um erro de sintaxe. Agora não posso, sudo vim /etc/sudoersporque o sudo acha que o arquivo sudoers não é válido.

Como posso consertar isso?

bassê fred
fonte

Respostas:

6

Inicialize o sistema no modo único e edite-o.

Ignacio Vazquez-Abrams
fonte
Obrigado, meu Ubuntu está sendo executado no Virtualbox. Como inicio no modo de usuário único?
fred basset
Eu não entendo as opções GRUB no tempo de inicialização no entanto, ele inicia direto para o Ubuntu ...
fred basset
Tente segurar <Ctrl> ou algo assim.
Ignacio Vazquez-Abrams
1
@ basset vermelho: Quando o vm começar, pressione Esc várias vezes que o levará ao grub e selecione a opção modo de recuperação.
user9517
21

Você nunca deve editar seu arquivo sudoers diretamente. Use visudo- ele o protegerá contra esses erros de sintaxe no futuro.

Para se recuperar dessa situação, inicialize no modo de usuário único e edite o arquivo ou inicialize em um livecd e faça o mesmo.

EEAA
fonte
Obrigado, eu queria saber o que visudo fez diferente. Eu preciso descobrir agora como inicializar no modo de usuário único. Meu Ubuntu está sendo executado no Virtualbox.
fred basset
1
visudo faz com que você edite uma cópia do arquivo sudoers. Ele substituirá o arquivo sudoers apenas se for validado quando você o salvar. Ele usará o editor especificado por sua variável EDITOR, para que você possa usar seu editor preferido. Também pode ser usado no modo de verificação se você editou o arquivo e deseja ter certeza de que ele ainda é válido.
BillThor
2

Conforme observado nesta pergunta semelhante no askubuntu , isso pode funcionar sem a necessidade de reiniciar no modo de usuário único:

pkexec visudo
Tom
fonte
Essa é de longe a maneira mais fácil de fazer isso, se disponível.
Belacqua
1

A propósito, se você tiver a senha root, faça o login e volte a configurá-la como era antes.

chmod 0440 / etc / sudoers

Isso evitará que você inicialize no modo de usuário único ou, pior, inicialize a partir de um livecd.

No meu caso, eu não podia permitir o desligamento do servidor.

yaxzone
fonte
1

Se você tiver o Docker instalado e seu usuário for um membro do dockergrupo, poderá sair facilmente desse problema (e de alguns outros) sem precisar reiniciar ou o que você tem:

  1. $ docker run -it --rm -v '/etc/:/root/host.etc/' debian bash
  2. apt-get update && apt-get install [vim|nano|whatever]
  3. cd ~/host.etc/
  4. Repare os arquivos com problemas
  5. exit
Adrian Günter
fonte
Docker? Você viu o Docker em algum lugar da pergunta original?
Deer Hunter
2
Como a pergunta não especifica nada sobre o ambiente do solicitante e agora é 2015, o que significa que muitas pessoas instalaram o Docker, não entendo sua atitude em relação a mim nem seu desprezo por minha contribuição. Não é de todo insondável que alguém nesta situação tenha instalado um software que, até hoje, tenha sido protagonizado por 23,5 mil pessoas no GitHub. Se, pkexecpor algum motivo, também não estiver disponível, isso fornece um método alternativo, sem reiniciar, que é quase tão rápido e simples.
Adrian Günter