Se sudo era sua única maneira de acessar a conta root, e você não tem um shell raiz em algum lugar, você precisará recuperar o acesso à conta root por meios externos, normalmente exigindo acesso físico à máquina. A maneira mais comum é selecionar “modo de usuário único” ou “modo de recuperação” em um prompt de inicialização (você pode precisar executar alguma ação, como pressionar e segurar Shift para fazer o prompt de inicialização aparecer). Como isso depende do configurador de boot, que diferentes distribuições fazem de maneira diferente, procure documentação ou tutoriais relacionados à sua distribuição.
Se você não conseguir acessar um prompt raiz no modo de usuário único, poderá entrar em um modo ainda mais simplificado adicionando init=/bin/sh
à linha de comando do kernel. Você chegará a um shell de root, mas precisará executar alguns comandos para obter um ambiente utilizável:
mount -t proc proc /proc
mount -o remount,rw /
bash
Agora você pode editar o arquivo problemático.
Se você quiser vários terminais no modo de usuário único, poderá abrir um novo shell em outro console virtual com o comando openvt
. Use Ctrl + Alt + F1 , Ctrl + Alt + F1 , etc., para alternar entre consoles virtuais.
Não edite sudoers
diretamente. Use visudo
. Esse comando chama um editor, verifica a sintaxe do arquivo e anula a modificação se houver um erro de sintaxe. Você ainda pode se bloquear, por exemplo, removendo a linha que lhe concedeu acesso, mas reduz o risco.
O Ubuntu usa o nano como editor padrão. Muitas outras distribuições usam vi pela tradição. Para escolher um editor diferente, defina a variável de ambiente VISUAL
, por exemplo,
export VISUAL=joe
Você pode usar o diretório /var/tmp
como uma área de armazenamento temporário se desejar fazer uma cópia do arquivo que possa ser lido após a reinicialização no modo normal. Certifique-se de tornar o arquivo legível para sua conta normal.
cp /etc/sudoers /var/tmp
chmod a+r /var/tmp/sudoers
Dica: sempre que você fizer alterações que possam afetar sua capacidade de acessar uma conta, mantenha um shell em execução em uma janela e teste seu acesso em outra janela. Se você não estiver obtendo acesso, volte para o shell em execução e corrija o problema ou reverta a alteração imediatamente.