SELinux чехол
Если одна и та же команда sudo медленная только в демоне и быстрая в командной строке, то это, скорее всего, вызвано SELinux . (SELinux = NSA Security-Enhanced модуль ядра Linux, включен в Fedora по умолчанию.)
Типичным случаем является http-сервер и специальный скрипт для управления сервером, ограниченный в sudoers
:
apache ALL=(root_or_user) NOPASSWD: /full/path/the_safe_command
В этом случае типично, что ничего о SELinux не сообщается в журнале аудита ausearch -m avc -ts today
, но сценарий работает быстро, если мы временно отключаем принудительное применение setenforce 0
. (и затем включите обратно setenforce 1
)
Единственные релевантные сообщения в системном журнале (journalcrl) - это после задержки 25 секунд:
... sudo [...] pam_systemd (sudo: session): не удалось создать сеанс: не получен ответ. Возможные причины: удаленное приложение не отправило ответ, политика безопасности шины сообщений заблокировала ответ, истекло время ожидания ответа или было разорвано сетевое соединение.
... sudo [...]: pam_unix (sudo: session): сеанс открыт для пользователя root с помощью (uid = 0)
Ведение журнала всех сообщений SElinux "не проводить аудит" можно semodule -DB
отключить и снова отключить semodule -B
.
(Я надеюсь, что я скоро напишу модуль политики SELinux для этого случая здесь или метод из этого ответа может быть использован.)