Não é possível fazer sudo: “/ etc / sudoers é o modo 0740, deve ser 0440”

4

Eu tenho um problema:

Eu não tenho uma senha de root no meu mac. Eu só tenho uma conta de administrador, que pode fazer coisas usando sudo . Agora, também queria adicionar meu usuário normal ao arquivo /etc/sudoers . Como ele não me deixou escrever naquele arquivo (mesmo escrevendo usando o sudo), eu fiz isso:

sudo chmod u+w /etc/sudoers

Isso funcionou. Mas desde então eu não posso mais fazer nenhum comando sudo no meu sistema. Ele reclama que /etc/sudoers tem o modo errado:

$ sudo touch /etc/sudoers 
sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault

Parece uma piada de mau gosto, porque agora não consigo nem mudar o modo de volta para 0440 :

$ sudo chmod 0440 /etc/sudoers 
sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault

Existe alguma maneira de corrigir essa situação? Preciso recuperar minhas habilidades de sudo .

    
por dehmann 21.07.2011 / 10:24

2 respostas

7

Este pode ser um dos raros casos em que a execução de "Reparar Permissões de Disco" do Utilitário de Disco pode realmente ser garantida.

Se isso não funcionar, siga a sugestão do @hckck de inicializar no modo de usuário único para corrigi-lo:

  1. Reinicialize, mantendo pressionado o Command-S para entrar no modo de usuário único. Observe que, se você estiver usando um teclado Bluetooth, precisará acertar isso, pois o chime de inicialização está diminuindo . Se você acertar muito cedo, é antes que o rádio Bluetooth seja reinicializado e o teclado perca a conexão e não comunique o pressionamento de tecla. Se você chegar muito tarde, o processo de inicialização terá sido movido para a inicialização de vários usuários.

  2. Siga as instruções na tela para remontar a leitura / gravação de sua unidade raiz. Você provavelmente pode pular a etapa fsck se tiver reiniciado normalmente. Então você provavelmente pode simplesmente digitar:

    mount -uw /

  3. Corrija as permissões em /etc/sudoers . Observe que você já está com root quando está no modo de usuário único, portanto, não é necessário sudo .

    chmod 0440 /etc/sudoers

  4. Saia do modo de usuário único reinicializando novamente, simplesmente digitando:

    reboot

por 21.07.2011 / 11:43
3

Outra abordagem é usar o Automator.app

Crie um novo fluxo de trabalho que contenha algo como o seguinte:

do shell script "chmod 0440 /etc/sudoers" with administrator privileges

Quando você executá-lo, ele pedirá sua senha e (presumindo que você seja um administrador) ela será corrigida.

Isso também funciona se você errou as permissões em um diretório pai (por exemplo, fazendo / algo diferente de 755).

    
por 22.06.2012 / 09:02