Por que o sudo está demorando muito?

13

Atualizei recentemente para o macOS Sierra 10.12.4 Beta (16E144f) e pode estar causando sudoatrasos em até 10 minutos, já que é a alteração mais recente que me lembro desde que esse problema ocorreu. Eu nunca tive que esperar tanto tempo por um programa básico e algo está claramente errado. O comando acaba sendo bem-sucedido, mas depois de esperar muito tempo.

Eu tenho usado esta pergunta como uma referência. Até agora, tentei adicionar meu nome de host ao final da 127.0.0.1linha /etc/hostse também. Verifiquei /etc/resolv.confe tinha algumas entradas extras de quando estava em uma rede que precisava de entradas DNS manuais, mas as removi e não houve diferença. Eu usei o networksetup -setdnsserverscomando para restaurar os valores originais. Internet ainda funciona bem, mas ainda é muito lenta sudo.

Eu tentei o logger 'test'comando pensando que ele iria escrever /var/log/system.log, mas parece que ele excluiu totalmente esse arquivo, embora logo tenha sido renovado.

Eu esperava usar o stracecomando para ver o que estava acontecendo durante a sudoexecução, mas esse comando não está disponível no OS X. Alguém já teve esse problema no sistema operacional antes?

/var/log/system.log possui as seguintes mensagens que podem ser relevantes. Novamente, o comando acaba tendo sucesso normalmente:

Feb  1 00:07:39 mycomputer com.apple.xpc.launchd[1] (com.apple.imfoundation.IMRemoteURLConnectionAgent): Unknown key for integer: _DirtyJetsamMemoryLimit
Feb  1 00:07:56 mycomputer com.apple.xpc.launchd[1] (com.apple.quicklook[2355]): Endpoint has been activated through legacy launch(3) APIs. Please switch to XPC or bootstrap_check_in(): com.apple.quicklook
Feb  1 00:08:16 mycomputer System Preferences[1886]: I can not do what i want
Feb  1 00:11:23 mycomputer com.apple.xpc.launchd[1] (com.apple.opendirectoryd[2335]): Service exited with abnormal code: 70
Feb  1 00:12:07 mycomputer syslogd[54]: ASL Sender Statistics
Feb  1 00:16:35 mycomputer com.apple.xpc.launchd[1] (com.apple.opendirectoryd[2395]): Service exited with abnormal code: 70

Qualquer ajuda seria apreciada.

Spencer Williams
fonte
Importa qual comando você executa no sudo? Como os carimbos de data e hora no log estão relacionados à sua ação de execução do sudo e da execução do sudo? Vejo opendirectoryd lá, você trabalha com uma conta local ou uma conta de rede? O que acontece se você alternar entre usuários (ou configurar um novo localmente), o sudo é lento também?
Nohillside
Estou executando a mesma versão beta e o sudo é rápido, como sempre, na verdade.
Nohillside
1
@patrix Ah, tudo bem. Sim, muito bem poderia ser outra coisa. Sim, não importa qual comando eu uso com o sudo, o atraso é consistente. Basicamente, o comando inicia em torno dessa linha de log com.apple.quicklooke finalmente termina no final, portanto, nesse exemplo, foram cerca de 8 minutos com todas essas mensagens no meio. A mensagem opendirectoryd parece ocorrer sempre que é finalmente executada sudo lsno meu diretório pessoal local. No momento, estou trabalhando apenas com pastas locais. Eu só tenho um usuário no computador embora eu possa ver o que acontece com uma nova conta ...
Spencer Williams
@patrix Acabei de criar outro usuário com privilégios de administrador. Infelizmente, essa conta está tendo o mesmo problema.
Spencer Williams

Respostas:

11

A resposta do ErikMH me deu a idéia de primeiro tentar reverter o arquivo sudoers, sem reverter / atualizar meu sistema inteiro novamente. Então, resumindo:

  1. Execute isto para obter um shell raiz: sudo -s
  2. Faça uma cópia de /private/etc/sudoers
  3. Corre: cp /private/etc/sudoers\~orig /private/etc/sudoers
  4. Corrija as permissões executando: chmod 440 /private/etc/sudoers ; chown root:wheel /private/etc/sudoers
  5. Mova todos os arquivos para /private/etc/sudoers.d/longe dali
  6. Teste sudoem outro terminal
  7. Não se esqueça de sair deste shell para impedir a execução inadvertida de comandos como root quando você não quiser

Agora, a execução sudodeve funcionar novamente.

O próximo passo é verificar as diferenças entre o arquivo do sudoers antigo (que você copiou na etapa 2) e o atual e adicionar essas alterações passo a passo de volta a /private/etc/sudoersou /private/etc/sudoers.d/, sempre que executar um comando usando sudopara verificar se a alteração o interrompe.

No meu caso, eu havia especificado um grupo inexistente no arquivo sudoers. Corrigir isso corrigiu meu problema.

Cedric Dubois
fonte
trabalhou no macOS 10.13!
Nisba
Funcionou para mim também (OSX 10.13). Também teve o mesmo problema - grupo inexistente no arquivo sudoer.
Petr Cibulka
Hmm ... não me lembro de alterar o arquivo sudoers na máquina em que tive esse problema, mas gostaria de ter tentado o que você sugere em vez de restaurar meu sistema.
Spencer Williams
Fui em frente e aceitei sua resposta, porque parece que as pessoas estão confirmando que ajuda, e com certeza gostaria de ter tentado isso primeiro, nem geralmente recomendo restaurar todo o sistema.
Spencer Williams
2

Isso pode ocorrer ao atualizar para a 10.12.4, se você já editou o arquivo / private / etc / sudoers.

A solução mais fácil é:

  1. Volte para uma versão anterior do sistema (você sempre clona seu sistema antes de atualizar, certo?)
  2. Excluir / private / etc / sudoers
  3. Copiar / private / etc / sudoers ~ orig para sudoers
  4. Redefinir a propriedade dos sudoers para system / root - somente leitura
  5. Atualize o sistema para 10.12.4
ErikMH
fonte
"Isso pode ocorrer ao atualizar para a 10.12.4 se você já editou o arquivo / private / etc / sudoers." Sabemos o que realmente está causando isso?
Wowfunhappy
1

Eu gostaria de ter encontrado a causa real disso, mas só consegui resolver o problema depois de restaurar o software do sistema. Eu estava anteriormente na versão beta pública do macOS Sierra, mas agora estou na versão principal.

Estou carregando lentamente todos os meus programas e observarei se houver um atraso sudonovamente.

Spencer Williams
fonte
0

Eu tinha um arquivo /etc/sudoers.d/que removi. Voila - sudoé rápido novamente.

vidstige
fonte