''/> ''/> ''/> Сообщение об ошибке 'sudo: не удается разрешить хост <USER>' | satan-web.com

Вопрос Сообщение об ошибке 'sudo: не удается разрешить хост '


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

ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)

Что я могу сделать, чтобы решить эту проблему?


643
2017-08-31 19:09


происхождения


Пожалуйста, разместите содержание /etc/hostname а также /etc/hosts, - arrange
Я рекомендую не закрывать этот вопрос, как слишком локализованный, Есть много пользователей, которые могут ошибочно полагать, что они написали одно имя в своем hosts но вместо этого указывается другое имя, тем более что во многих сетях аналогичным образом называются компьютеры. Этот вопрос (и ответ) появится, когда кто-то будет искать с этой проблемой, и ответ заставит их проверить такие расхождения, хотя точное неправильное письмо будет иным. - Eliah Kagan
убедитесь, что hostname то же самое с hosts, например имя хоста убунт-ПК и хосты убунт-ПК должно быть одинаковым. - Muhammad Sholihin
Сегодня я столкнулся с этим. Проблема заключалась в том, что то, что у меня было в hostname, не было в / etc / hosts. To wit: $ hostname => 'mybox' $ grep 'mybox' / etc / hosts => 192.168.1.2 mybox.example.com. Мне нужно было добавить «mybox» после моего имени домена в / etc / hosts => 192.168.1.2 mybox.example.com mybox - Jim
Я не могу отправить ответ, потому что этот вопрос защищен, и у меня нет достаточной репутации. В моем случае я решил проблему, перезапустив сетевой менеджер: sudo /etc/init.d/network-manager restart, Однако мне интересно, почему в первую очередь sudo тратит время на ожидание сетевых материалов. не должны sudo работать без проблем, когда сеть недоступна? - bli


ответы:


Две вещи, которые нужно проверить (при условии, что ваша машина называется my-machine, вы можете изменить это по мере необходимости):

  1. Что /etc/hostname файл содержит только имя машины.

  2. Что /etc/hosts имеет запись для localhost, Он должен иметь что-то вроде:

     127.0.0.1 localhost.localdomain localhost
     127.0.1.1 моя машина
    

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


877
2017-09-01 03:26



Имя хоста не изменится, пока вы не перезагрузитесь. Если вы хотите изменить его, не перезагружая компьютер, следуйте приведенным выше шагам и после этого запуска: - «sudo hostname my-machine», чтобы увидеть, работает ли это «sudo hostname». Он покажет имя хоста вашего компьютера. Этот метод может использоваться как временный метод для изменения имени хоста. после перезапуска используется значение из файла / etc / hostname. - Yashvit
Примечание: поскольку вы не можете начинать с sudo, редактировать эти файлы сложно. Мое решение состояло в том, что я как-то мог судо visudo и изменить #%admin ALL=(ALL) ALL в %admin ALL=NOPASSWD: ALL , затем перезагрузитесь и sudo su -, отредактируйте эти файлы, установите / исправьте имя хоста, перезагрузитесь снова, и все сработало. - Ian M
Я использую подсистему Linux в Windows, и я столкнулся с этой проблемой. После того, как вы ответили, он был разрешен. - amarVashishth
вам также может потребоваться добавить ::1 localhost в /etc/hosts (это версия IPv6 127.0.0.1, также называемая адресом loopback) - Woodrow Barlow
Почему ваш пример 127.0.0.1 localhost но 127.0.1.1 my-machine? - Adam


редактировать  /etc/hosts и добавьте новое имя хоста в строку 127.0.0.1 (или создайте новую строку, если хотите).

Моя выглядит так:

127.0.0.1       localhost localhost.localdomain penguin

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

замещать penguin в приведенном выше примере вашим новым именем хоста, как указано в /etc/hostname файл.


171
2018-04-07 13:39



Как он может отредактировать файл / etc / hosts, если он не может sudo? Если он не создал учетную запись с паролем (плохая идея) - Dennis
@Dennis Вы все еще можете выполнить sudo даже если это сообщение отображается. IIRC вы все равно должны вводить свой пароль при каждом вызове. Если это не сработает, вы можете перезагрузиться в консоль восстановления и применить изменения. Коренная учетная запись с паролем не рекомендуется. - Lekensteyn


Добавьте свое имя хоста в /etc/hosts вот так:

echo $(hostname -I | cut -d\  -f1) $(hostname) | sudo tee -a /etc/hosts

43
2017-09-15 16:03



Это был блестящий ответ, который не получил достаточного кредита - Edziu Eames
Хороший! Согласился, что он не получает достаточной репутации. :-) - Peter K.
Это умно, но я не думаю, что это хорошая идея, чтобы автоматизировать что-то подобное. - mwfearnley


Обратите внимание, что это ответ на этот вопрос который был объединен с этим.

Ваше имя хоста (dave00-G31M-ES2L) не представляется в /etc/hosts, Добавьте L к этой строке:

127.0.1.1   dave00-G31M-ES2

Так оно и будет:

127.0.1.1   dave00-G31M-ES2L

Для этого откройте консоль (нажмите Ctrl+Alt+T) и введите:

sudo gedit /etc/hosts

Добавить письмо L как уже упоминалось, сохранить и выйти.


30
2017-08-18 11:02



Запомнить! использование sudoedit (или sudo -e). Чтобы указать предпочтительный редактор, используйте EDITOR переменная среды (например, export EDITOR=vim), поскольку он создает автономную копию для редактирования, а затем после перезаписывания автоматически перезаписывается. - Jan
И есть еще один, кто предлагает sudo когда больше нет sudo, sudo не работает, сэр. sudo: unable to resolve host ... - Green
@Green: Нет sudo? Сообщение об ошибке, о котором вы говорите, sudo команда. Возможно, вы имели в виду что-то другое? - Thor
@Green sudo работает просто отлично. Он просто не может хранить какое-либо состояние (то есть, как сказал Лекенштейн в другом месте, вы должны каждый раз вводить свой пароль). - Wlerin
Если у вас есть эта проблема на Bash W10 и пришел к этому вопросу из google, это ответ, который сработал для меня. Я изменил 127.0.0.1, чтобы выглядеть как «127.0.0.1 localhost DESKTOP-SLQK4CV» (выполнив «sudo vim / etc / hosts» (быстрый совет для новичков vim: нажмите i перед вводом, чтобы переключиться в режим вставки, нажмите esc, чтобы выйти что напишите «: wq» для сохранения и выхода или «: q!» для выхода без сохранения), в моем случае sudo работал, но просто сказал, что он не может подключиться к DESKTOP-SLQK4CV), и он начал работать для меня. - Ave


У меня была эта проблема, когда я использовал ubuntu на VPS. Я решил его редактировать файл / etc / hosts.

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

sudo nano /etc/hosts

а затем добавьте:

127.0.0.1   localhost.localdomain localhost
127.0.1.1   ubuntu

Надеюсь, что решит вашу проблему :)

PS: Не забудьте перезагрузить компьютер!


16
2018-04-01 01:18



Кроме того, посмотрите, совпадает ли имя вашего устройства (напечатано на строке заголовка терминала после знака @) имени во второй строке hosts файл («ubuntu» в примере Лука). Первая строка также может быть просто «localhost». - Waldir Leoncio
Запомнить! использование sudoedit (или sudo -e). Чтобы указать предпочтительный редактор, используйте EDITOR переменная среды (например, export EDITOR=vim), поскольку он создает автономную копию для редактирования, а затем после перезаписывания автоматически перезаписывается. - Jan


У меня была такая же проблема, хотя имя хоста в файле / etc / hostname и / etc / hosts совпало.

Мое имя хоста было «staging_1». Оказывается, у вас не может быть подчеркивания в вашем имени хоста, поэтому я получаю эту ошибку. Изменение подчеркивания на дефис исправило мою проблему.


10
2017-08-13 13:50





В AWS перейдите на свой vpc и включите «DNS Hostnames».


9
2018-01-15 05:15



Добро пожаловать в askubuntu! Можете ли вы немного рассказать об этом? Не совсем понятно, что вы имеете в виду (по крайней мере для меня). - Elder Geek
Возможно, это не относится к вопросу, но это очень помогло мне. Спасибо! - clayzermk1
Это был ответ, который мне помог. Amazon AWS изменилась с тех пор, как я в последний раз смотрел на нее. У VPC есть параметры DNS, и их необходимо включить, прежде чем будет разрешено разрешение DNS. - Chris Moore
параметр Enable DNS Hostnames можно найти (например) в меню правой кнопки мыши в записи vpc - Matteo Scotuzzi
Здесь нет DNS Hostnames - Green