Почему команда sudo выполняется долго?

Почему команда sudo выполняется долго?

В течение последних нескольких месяцев я изучал Linux (Fedora 10, затем 11) (и получал от этого огромное удовольствие — это как будто заново открывать для себя компьютеры, так многому нужно научиться).

Я добавил своего пользователя в последнюю строку файла /etc/sudoers, как показано ниже, чтобы при выполнении команды не запрашивался пароль sudo:

MyUserName ALL=(ALL) NOPASSWD:ALL

Теперь каждый раз, когда я выполняю команду с помощью sudo, она делает заметную паузу перед фактическим выполнением задачи (~10 секунд). Почему это может быть и как это исправить? Я использую Sudo версии 1.7.1 на Fedora 11 x86 64.

решение1

Я задал этот вопрос на SO, и он был перемещен сюда. Это значит, что у меня больше нет возможности редактировать вопрос, как будто я им владею, или даже принять правильный ответ, но это оказалось истинной причиной и способом решения:

Найдено здесь Пользователь «rohandhruva» дает правильный ответ:

Это происходит, если вы меняете имя хоста во время процесса установки.

Для решения проблемы отредактируйте файл /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 <ADD_YOURS_HERE> 
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 <ADD_YOURS_HERE>

решение2

Проверьте, правильно ли работает ваш демон syslog; у меня это вызвало проблему.

Выполните следующую команду

logger 'Hello world'
  1. Возвращается ли команда в течение разумного периода времени?

  2. Появляется ли фраза «Hello world» в /var/log/syslog?

Если это не так, то демон syslog вышел из строя. Перезапуск должен решить вашу проблему.

решение3

Это один из файлов/каталогов, которые он должен прочитать на сетевом монтировании, или он каким-то образом запускает чтение с медленного usb-устройства? Попробуйте strace и посмотрите, где он медленный; если он идет слишком быстро, сделайте

sudo strace -r -o trace.log sudo echo hi

Каждая строка будет начинаться с времени, прошедшего с момента входа в предыдущий системный вызов.

(Кажется, начальный sudo необходим; не знаю, насколько это повлияет на результаты.)

решение4

У меня была та же проблема, я проверил /var/log/auth.log и syslog на наличие ошибок. Оказалось, что мой сервер LDAP не был доступен, и это все замедляло.

Я больше не использую аутентификацию на основе LDAP, поэтому удалил все ссылки «ldap» из /etc/nsswitch.conf

С тех пор все снова работает как часы.

Связанный контент