Caso SELinux
Se o mesmo comando sudo for lento apenas em um daemon e rápido na linha de comando, é provavelmente o SELinux mais provavelmente. (SELinux = módulo do kernel Linux com segurança avançada da NSA, ativado no Fedora por padrão.)
Um caso típico é um servidor http e um script especial para gerenciamento de servidor, restrito em sudoers
:
apache ALL=(root_or_user) NOPASSWD: /full/path/the_safe_command
É típico, neste caso, que nada sobre o SELinux seja relatado no log de auditoria ausearch -m avc -ts today
, mas o script será rápido se desativarmos temporariamente a imposição por setenforce 0
. (e depois ativar novamente por setenforce 1
)
As únicas mensagens relevantes no log do sistema (journalcrl) são estas após o atraso de 25 segundos:
... sudo [...] pam_systemd (sudo: session): falha ao criar a sessão: não recebeu uma resposta. As possíveis causas incluem: o aplicativo remoto não enviou uma resposta, a política de segurança do barramento de mensagens bloqueou a resposta, o tempo limite da resposta expirou ou a conexão de rede foi interrompida.
... sudo [...]: pam_unix (sudo: sessão): sessão aberta para raiz do usuário por (uid = 0)
O registro de todas as mensagens silenciosas do SElinux "não faça auditoria" pode ser ativado semodule -DB
e desativado novamente por semodule -B
.
(Espero escrever em breve um módulo de política do SELinux em breve para este caso aqui ou um método dessa resposta pode ser usado.)