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


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, eu queria adicionar meu usuário normal ao /etc/sudoers arquivo também. Como ele não me deixou escrever naquele arquivo (mesmo escrevendo usando o sudo), fiz o seguinte:

sudo chmod u+w /etc/sudoers

Isso funcionou. Mas desde então eu não posso fazer sudo comando mais 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 eu não posso 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 esta situação? Eu preciso pegar meu sudo habilidades de volta.


4


origem


Hm Parece que você fez a coisa errada. Para dar um usuário normal sudo direitos, você pode adicioná-los ao wheel grupo. Você pode ser capaz de chmod o arquivo, rodando em modo de usuário único, depois de entrar mount -uw /. (tosse, cópia de segurança!, tosse) - slhck
@slhck Você é super old-school. A Apple não usa o grupo de rodas para isso há tempos. Tem sido o grupo de administração de várias versões principais do Mac OS X agora. Mas adicionar um usuário ao grupo de administradores é tudo o que verificar a caixa de seleção "admin" no painel Accounts pref faz assim mesmo. - Spiff
@Spiff. sim eu sempre misture isso, meu mal. Farei isso, obrigado! - slhck
@slhck Ops, quando percebi que poderia sugerir permissões de disco de reparação, decidi escrever minha própria resposta e roubei sua sugestão. Eu sou péssimo :-( - Spiff


Respostas:


Esse 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. Reinicie, pressionando Command-S para entrar no modo de usuário único. Note que se você estiver usando um teclado Bluetooth, você precisa acertar isso como o chime de inicialização é perdendo. 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 com vários usuários.

  2. Siga as instruções na tela para remontar a leitura / gravação da unidade raiz. Você provavelmente pode pular o fsck passo se você reiniciou graciosamente. Então você provavelmente pode simplesmente digitar:

    mount -uw /

  3. Corrigir as permissões em /etc/sudoers. Note que você já está root quando você está no modo de usuário único, então você não precisa sudo esta.

    chmod 0440 /etc/sudoers

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

    reboot


7





Outra abordagem é usar 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 vai pedir sua senha e (presumindo que você é um administrador) vai consertá-lo.

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


3



Solução agradável e rápida; salva a reinicialização no modo de usuário único. Precisa aprender mais roteiro de apple; coisas interessantes. - Christopher Lightfoot
salvou meu dia - thx - froderik