На 64-битной машине Linux с Ubuntu 9 запуск sudo занимает больше времени. "sudo echo hi" занимает 2-3 минуты. strace в sudo сообщает тайм-аут опроса ("/ etc / pam.d / system-auth", POLLIN) через 5 секунд, и есть несколько вызовов (может быть цикл) одного и того же системного вызова (что вызывает задержку в 2-3 минуты).
Любая идея, почему sudo нужно ждать /etc/pam.d/system-auth? Любая настройка, позволяющая ускорить тайм-аут sudo?
Спасибо, Самуэль
Самая большая причина медленной работы sudo - это то, что система не может разрешить собственное имя хоста. Включено ли ваше локальное имя хоста в /etc/hosts
? Если нет, я бы рекомендовал добавить его с IP 127.0.1.1
что я делаю во всех своих системах. Я добавляю запись с коротким именем хоста и полным доменным именем (FQDN). Затем это устраняет задержку в вызовах доступа sudo в 9 из 10 раз.
В моем случае перезапуск systemd-logind решил (временно) проблему.
sudo systemctl restart systemd-logind
Я не могу не думать, что вызов poll () может быть отвлекающим маневром.
Всякий раз, когда я видел, что sudo работает исключительно медленно, всегда виноват DNS. Будь то старые, мертвые серверы, перечисленные в /etc/resolv.conf, или неправильно настроенный брандмауэр, блокирующий исходящий порт 53, или что-то еще, я всегда обнаруживал, что dig google.com
медленно, когда sudo echo foo
медленный.
Даже если это не DNS, я подозреваю, что медлительность связана с сетью и, возможно, с аутентификацией (как предположил Кевин М.), и в этом случае вызов poll () в конце концов не может быть отвлекающим маневром.
Попробуйте запустить tcpdump при попытке запустить sudo и посмотрите, что появится.