Caso do SELinux
Se o mesmo comando sudo for lento apenas em um daemon e rápido na linha de comando, então é provocado pelo SELinux mais provavelmente. (SELinux = Módulo do kernel Linux aprimorado pela segurança 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 está indo rápido se desativarmos temporariamente a imposição por setenforce 0
. (e depois voltar habilitar 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): Failed to create session: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
... sudo[...]: pam_unix(sudo:session): session opened for user root by (uid=0)
O registro de todas as mensagens silenciosas "não-auditoria" do SElinux pode ser ativado por semodule -DB
e desabilitado novamente por semodule -B
.
(Espero que em breve eu escreva um módulo de políticas SELinux para este caso ou um método de esta resposta possa ser usado. )