При запуске sudo
терминал зависает на несколько секунд, а затем выдает сообщение об ошибке. Мой терминал выглядит так:
ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)
Что я могу сделать, чтобы решить это?
sudo
error-handling
Кит Сунде
источник
источник
/etc/hostname
и/etc/hosts
.hosts
файл, но вместо этого добавили другое имя, тем более что во многих сетях компьютеры имеют одинаковые имена. Этот вопрос (и ответ) будет отображаться, когда кто-то ищет с этой проблемой, и ответ побудит их проверить наличие таких расхождений, даже если точное написание будет другим.hostname
тожеhosts
. Например, имя хоста - ubuntu-pc, а hosts - ubuntu-pc, должно быть одинаковым.sudo /etc/init.d/network-manager restart
. Тем не менее, мне интересно, почему в первую очередьsudo
тратится время на ожидание вещей, связанных с сетью. Не должноsudo
работать без проблем, когда сеть недоступна?Ответы:
Необходимо проверить две вещи (при условии, что ваша машина называется
my-machine
, вы можете изменить это при необходимости):Этот
/etc/hostname
файл содержит только название машины.Это
/etc/hosts
имеет запись дляlocalhost
. Это должно иметь что-то вроде:Если какой-либо из этих файлов неправильный (поскольку вы не можете использовать sudo), вам, возможно, придется перезагрузить компьютер в режиме восстановления и внести изменения, а затем перезагрузить компьютер в обычной среде.
источник
#%admin ALL=(ALL) ALL
на%admin ALL=NOPASSWD: ALL
, затем перезагрузился и sudo su -, отредактировал эти файлы, установил / исправил имя хоста, перезагрузил снова, и все работало.::1 localhost
к/etc/hosts
(это версия IPv6 из 127.0.0.1, он же адрес петлевой)127.0.0.1 localhost
но127.0.1.1 my-machine
?Отредактируйте
/etc/hosts
и добавьте ваше новое имя хоста в строку 127.0.0.1 (или создайте новую строку, если хотите).Моя выглядит так:
penguin
В приведенном выше примере замените его новым именем хоста, как указано в/etc/hostname
файле.источник
sudo
даже если это сообщение отображается. IIRC вам все равно придется вводить пароль при каждом вызове. Если это не работает, вы можете перезагрузиться в консоль восстановления и применить изменения. Учетная запись root с паролем не рекомендуется.Добавьте ваше имя хоста
/etc/hosts
так:источник
echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo -h 127.0.0.1 tee -a /etc/hosts
Обратите внимание, что это ответ на этот вопрос, который был объединен с этим.
Ваше имя хоста (
dave00-G31M-ES2L
) не представлено в/etc/hosts
. ДобавьтеL
к этой строке:Так и становится:
Для этого откройте консоль (нажмите Ctrl+ Alt+ T) и введите:
Добавьте письмо,
L
как указано, сохраните и выйдите.источник
sudoedit
(илиsudo -e
). Чтобы указать предпочитаемый редактор, используйтеEDITOR
переменную среды (например,export EDITOR=vim
), поскольку она создает автономную копию для редактирования, а затем полностью перезаписывает после редактирования.sudo
когда его больше нетsudo
.sudo
не работает, сэр.sudo: unable to resolve host ...
sudo
? Указанное вами сообщение об ошибке исходит отsudo
команды. Возможно, вы имели в виду что-то другое?sudo
работает просто отлично. Он просто не может хранить никакое состояние (то есть, как сказал Лекенштейн в другом месте, вы должны каждый раз вводить свой пароль).У меня была эта проблема, когда я использовал Ubuntu на VPS. Я решил это, отредактировав файл / etc / hosts.
запустите эту команду:
и затем добавьте:
Я надеюсь, что это решит вашу проблему :)
PS: не забудьте перезагрузить компьютер!
источник
hosts
файла («ubuntu» в примере с Luca). Первая строка также может быть просто "localhost".sudoedit
(илиsudo -e
). Чтобы указать предпочитаемый редактор, используйтеEDITOR
переменную среды (например,export EDITOR=vim
), поскольку она создает автономную копию для редактирования, а затем полностью перезаписывает после редактирования.У меня возникла та же проблема, хотя имя хоста в моем файле / etc / hostname и / etc / hosts совпадали.
Мое имя хоста было "staging_1". Оказывается, в имени вашего хоста не может быть подчеркивания, поэтому я и получил эту ошибку. Смена знака подчеркивания на дефис исправила мою проблему.
источник
В AWS перейдите на свой vpc и включите «DNS-имена хостов».
источник
DNS Hostnames
Симптом, приведенный в вопросе, может сильно коррелировать с этой более конкретной проблемой:
Есть разные способы решения этой проблемы, один из которых заключается в добавлении имени вашего хоста в качестве локального хоста
/etc/hosts
(как показано в нескольких других ответах). В общем, это может быть правильным решением, но это не единственно возможное решение.«Полное доменное имя» может быть предоставлено внешним DNS-сервером или аналогичным (если таковое имеется в вашей сети). В этом случае
sudo
не будем жаловаться, несмотря на пропущенную запись в/etc/hosts
.Примечание:
sudo
попытки разыменовать имя хоста, даже если это не обязательно, из-за дополнительных возможностей в файле sudoers. Смотрите команду sudo, пытающуюся найти имя хоста .Пока задержка не слишком велика, это сообщение об ошибке, как правило, безвредно.
источник
sudo --host=localhost
Я столкнулся с тем же сообщением об ошибке. Я думаю, что эта дискуссионная ветка на форумах разработчиков AWS - лучшее решение:
«Перейдите в консоль управления VPC, выберите VPC, нажмите« Действия », выберите« Изменить имена хостов DNS »и выберите« Да ».»
https://forums.aws.amazon.com/thread.jspa?messageID=699718
источник
Некоторые эмуляторы терминала не будут обновлять приглашение с правильным именем хоста, пока вы не закроете и не перезапустите эмулятор (lxterminal, я говорю с вами).
Я потратил 30 минут на борьбу с этой ошибкой после того, как отредактировал свое имя хоста и файлы хостов и работал
sudo service hostname restart
до тех пор, пока не запустилсяsudo hostname
и не увидел, что имя хоста было новым значением, даже если в приглашении было показано старое значение.источник
В моем случае это была проблема, я изменил
hostname
к ,man
потому что я хотел бы знать , если есть некоторые параметры , которые можно использовать наhostname
. Вместо этого он изменил моюhostname
Toman
и я всегда получал такое же сообщение , как выпосле изменения имени хоста обратно на `localhost все снова заработало нормально
источник
Все советуют модифицировать
/etc/hosts
. Но в некоторых случаях это может быть невозможно (например, внутри контейнера докера). Итак, я должен был найти лучший способ, и я придумал это:Псевдонимы не работают в скриптах bash, но мы можем использовать переменные:
sudo='sudo -h 127.0.0.1'
источник
Извините, я не могу вам чем-то помочь, но, так как он говорит: «Не удается разрешить хост», попробуйте запустить:
И посмотрите, является ли вывод именем хоста машины. Если нет, то проблема в конфигурации хоста, а не в sudo.
источник
ОП написал:
источник
Возможно, вы получаете сообщение об ошибке, если ваш хост или файл имени хоста содержат недопустимые символы. Разрешены только эти символы: az, AZ, 0-9
источник
У меня была такая же проблема! Я изменил имя своего VPS через онлайн панель управления администратора, которая не изменила имя машины в файле hosts. Все, что я сделал, было запущено:
Затем я отредактировал это от этого:
К этому:
и это исправило мою ошибку! Надеюсь, это помогло!
источник
У меня такая же проблема. Я решил это, отредактировав файлы / etc / hosts и / etc / hostname ... в файле / etc / hosts, просто отредактировав верхнюю часть, как показано ниже.
источник
127.0.1.1 localhost myhostname
или127.0.1.1 myhostname
?/etc/hosts
безsudo
.sudo
не работаетsudo: unable to resolve host ...
если вы не можете sudo, вы можете войти в систему как root через su. IE: su root (в x-терме). затем при появлении запроса укажите пароль root, затем вы можете редактировать файлы с помощью nano. Пароль root в 'buntu такой же, как пароль, который вы бы использовали для sudo.
источник
sudo
.root
это его собственная учетная запись, пароль которой не установлен по умолчанию.Если вы используете Vagrant, войдите в гостевую систему и запустите
apt-get --no-install-recommends install virtualbox-guest-utils
источник
Если ваша проблема заключается в том, что этот
/etc/hostname
файл и/etc/hosts
оба файла имеют желаемое имя хоста, и все равно ваша машина показывает ошибкуПопробуй, форсируя имя хоста
Вы, вероятно, по-прежнему будете получать ту же ошибку, но попробуйте выйти и снова войти в систему. Это сработало для меня.
источник