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.


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.


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

"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.


0

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.