''/> ''/> ''/> Message d'erreur 'sudo: impossible de résoudre l'hôte <USER>' | leicesterontheweb.com

Question Message d'erreur 'sudo: impossible de résoudre l'hôte '


Quand je cours sudo le terminal est bloqué pendant quelques secondes puis émet un message d'erreur. Mon terminal ressemble à ceci:

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

Que puis-je faire pour le résoudre?


641
2017-08-31 19:09


origine


S'il vous plaît poster le contenu de /etc/hostname et /etc/hosts. - arrange
Je recommande de ne pas clore cette question comme trop localisé. Il y a beaucoup d'utilisateurs qui pensent à tort qu'ils ont mis un nom dans leur hostsfichier mais mettre un nom différent à la place, surtout que sur de nombreux réseaux, les ordinateurs sont nommés de manière similaire. Cette question (et réponse) apparaîtrait lorsque quelqu'un effectuerait des recherches avec ce problème, et la réponse les inciterait à vérifier de telles divergences, même si la faute exacte serait différente. - Eliah Kagan
assurez-vous que votre hostname même avec hosts. par exemple. le nom d'hôte est Ubuntu-pc et hôtes est Ubuntu-pc doit être la même - Muhammad Sholihin
Je suis tombé dessus aujourd'hui. Le problème était que ce que j'avais dans hostname n'était pas dans / etc / hosts. À savoir: $ hostname => 'mybox' $ grep 'mybox' / etc / hosts => 192.168.1.2 mybox.example.com. J'avais besoin d'ajouter «mybox» après mon nom de domaine dans / etc / hosts => 192.168.1.2 mybox.example.com mybox - Jim
Je ne peux pas poster de réponse car cette question est protégée et je n'ai pas assez de réputation ici. Dans mon cas, j'ai résolu le problème en redémarrant network-manager: sudo /etc/init.d/network-manager restart. Cependant, je me demande pourquoi en premier lieu sudo gaspille du temps à attendre des choses liées au réseau. Ne devrait pas sudo travailler sans problèmes lorsque le réseau n'est pas disponible? - bli


Réponses:


Deux choses à vérifier (en supposant que votre machine est appelée my-machine, vous pouvez changer cela comme il convient):

  1. Que le /etc/hostname Le fichier ne contient que le nom de la machine.

  2. Cette /etc/hosts a une entrée pour localhost. Il devrait avoir quelque chose comme:

     127.0.0.1 localhost.localdomain localhost
     127.0.1.1 ma machine
    

Si l'un de ces fichiers n'est pas correct (puisque vous ne pouvez pas sudo), vous devrez peut-être redémarrer l'ordinateur en mode de récupération et apporter les modifications, puis redémarrer dans votre environnement habituel.


876
2017-09-01 03:26



Le nom d'hôte ne changera pas jusqu'à ce que vous redémarriez. Si vous souhaitez le changer sans redémarrer la machine, suivez les étapes ci-dessus et après cette exécution: - "sudo hostname my-machine" pour voir si cela a fonctionné, exécutez "sudo hostname" Cela affichera le nom d'hôte de votre machine. Cette méthode peut être utilisée comme méthode temporaire pour modifier également le nom d'hôte. après un redémarrage, la valeur du fichier / etc / hostname est utilisée. - Yashvit
Note: comme vous ne pouvez pas commencer par sudo, il est difficile de modifier ces fichiers. Ma solution était que je pouvais en quelque sorte sudo visudo et changer #%admin ALL=(ALL) ALL à %admin ALL=NOPASSWD: ALL , puis redémarrez et sudo su -, éditez ces fichiers, définissez / corrigez le nom d'hôte, redémarrez à nouveau et tout fonctionnait. - Ian M
J'utilise le sous-système Linux sous Windows et j'ai rencontré ce problème. Après avoir suivi votre réponse, cela a été résolu. - amarVashishth
vous devrez peut-être aussi ajouter ::1 localhost à /etc/hosts (c'est la version IPv6 de 127.0.0.1, alias l'adresse de bouclage) - Woodrow Barlow
Pourquoi votre exemple a-t-il 127.0.0.1 localhost mais 127.0.1.1 my-machine? - Adam


modifier  /etc/hosts et ajoutez votre nouveau nom d'hôte à la ligne 127.0.0.1 (ou créez une nouvelle ligne si vous préférez).

Le mien ressemble à:

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

Remplacer penguin dans l'exemple ci-dessus par votre nouveau nom d'hôte comme indiqué dans le /etc/hostname fichier.


170
2018-04-07 13:39



Comment peut-il éditer le fichier / etc / hosts s’il ne peut pas sudo? Sauf s'il a créé un compte avec un mot de passe (mauvaise idée) - Dennis
@Dennis Vous pouvez toujours exécuter sudo même si ce message est affiché. Cependant, vous devez encore entrer votre mot de passe lors de chaque appel. Si cela ne fonctionne pas, vous pouvez redémarrer dans la console de récupération et appliquer les modifications. Un compte root avec mot de passe est déconseillé. - Lekensteyn


Ajoutez votre nom d'hôte à /etc/hosts ainsi:

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

43
2017-09-15 16:03



C'était une réponse brillante qui n'a pas eu assez de crédit - Edziu Eames
Joli! D'accord, il ne reçoit pas assez de rep love. :-) - Peter K.
C'est intelligent, mais je ne pense pas que ce soit une bonne idée d'automatiser quelque chose comme ça. - mwfearnley


Note, ceci est une réponse à cette question qui a été fusionné avec celui-ci.

Votre nom d'hôte (dave00-G31M-ES2L) n'est pas représenté dans /etc/hosts. Ajouter un L à cette ligne:

127.0.1.1   dave00-G31M-ES2

Alors ça devient:

127.0.1.1   dave00-G31M-ES2L

Pour ce faire, ouvrez une console (appuyez sur Ctrl+Alt+T) et tapez:

sudo gedit /etc/hosts

Ajouter la lettre L comme mentionné, enregistrer et quitter.


30
2017-08-18 11:02



Rappelles toi! Utilisation sudoedit (ou sudo -e). Pour spécifier l'éditeur préféré, utilisez le EDITOR variable d'environnement (par ex. export EDITOR=vim) car il crée une copie hors ligne pour édition puis écrase proprement après modification. - Jan
Et il y en a un autre qui suggère sudo quand il n'y a plus sudo. sudo ne fonctionne pas, monsieur. sudo: unable to resolve host ... - Green
@ Vert: non sudo? Le message d'erreur que vous mentionnez provient du sudo commander. Peut-être que tu voulais dire quelque chose de différent? - Thor
@Vert sudo fonctionne très bien. Il ne peut tout simplement pas stocker d’état (c’est-à-dire que comme le dit Lekensteyn ailleurs, vous devez entrer votre mot de passe à chaque fois). - Wlerin
Si vous avez ce problème sur Bash de W10 et que vous en êtes arrivé à cette question sur Google, c'est la réponse qui a fonctionné pour moi. J'ai changé le 127.0.0.1 pour qu'il ressemble à "127.0.0.1 localhost DESKTOP-SLQK4CV" (en faisant "sudo vim / etc / hosts" (astuce pour les débutants: appuyez sur i avant de taper pour passer en mode insertion, appuyez sur esc pour quitter cela, écrivez ": wq" pour enregistrer et quitter ou ": q!" pour quitter sans enregistrer), dans mon cas, sudo a fonctionné mais a simplement dit qu'il ne peut pas se connecter à DESKTOP-SLQK4CV) et que cela a fonctionné pour moi. - Ave


J'ai eu ce problème quand j'utilisais Ubuntu sur un VPS. Je l'ai résolu en éditant le fichier / etc / hosts.

lancez cette commande:

sudo nano /etc/hosts

puis ajoutez:

127.0.0.1   localhost.localdomain localhost
127.0.1.1   ubuntu

J'espère que cela va résoudre votre problème :)

PS: n'oubliez pas de redémarrer votre ordinateur!


16
2018-04-01 01:18



Vérifiez également si le nom de votre périphérique (imprimé sur la barre de titre du terminal après le signe @) correspond au nom figurant sur la deuxième ligne du hosts fichier ("ubuntu" dans l'exemple de Luca). La première ligne peut aussi être juste "localhost". - Waldir Leoncio
Rappelles toi! Utilisation sudoedit (ou sudo -e). Pour spécifier l'éditeur préféré, utilisez le EDITOR variable d'environnement (par ex. export EDITOR=vim) car il crée une copie hors ligne pour édition puis écrase proprement après modification. - Jan


J'avais le même problème même si le nom d'hôte dans mon fichier / etc / hostname et le fichier / etc / hosts correspondaient.

Mon nom d'hôte était "staging_1". Il se trouve que vous ne pouvez pas avoir un trait de soulignement dans votre nom d'hôte, c'est pourquoi j'ai eu cette erreur. Changer le trait de soulignement en trait d'union a corrigé mon problème.


10
2017-08-13 13:50





Dans AWS, accédez à votre vpc et activez "DNS Hostnames".


9
2018-01-15 05:15



Bienvenue sur askubuntu! Pouvez-vous développer un peu là-dessus? Ce que vous voulez dire n'est pas très clair (du moins pour moi). - Elder Geek
Cela peut ne pas être pertinent pour la question, mais cela m'a beaucoup aidé. Je vous remercie! - clayzermk1
C'était la réponse qui m'a aidé. Amazon AWS a changé depuis la dernière fois que je l'ai examiné. Les VPC ont des options DNS et doivent être activés avant toute résolution DNS. - Chris Moore
l'option Activer les noms d'hôte DNS peut être trouvée (par exemple) dans le menu contextuel de l'entrée vpc - Matteo Scotuzzi
Il n'y a pas DNS Hostnames - Green


J'ai rencontré ce même message d'erreur. Je pense que ce fil de discussion sur les forums de développeurs AWS est une meilleure solution:

"Accédez à la console de gestion VPC, sélectionnez le VPC, cliquez sur Actions, sélectionnez Modifier les noms d'hôte DNS et sélectionnez Oui."

https://forums.aws.amazon.com/thread.jspa?messageID=699718


5
2018-02-13 11:44





Certains émulateurs de terminaux ne mettront pas à jour les invites avec le nom d'hôte correct tant que vous ne fermez et ne redémarrez pas l'émulateur (lxterminal, je vous parle).

J'ai passé 30 minutes à me battre avec cette erreur après avoir édité mon nom d'hôte et les hôtes fichiers et en cours d'exécution sudo service hostname restart jusqu'à ce que j'ai couru sudo hostname et a vu que le nom d'hôte était la nouvelle valeur, même si l'invite affichait l'ancienne valeur.


5
2018-06-19 16:29



Le problème n'est pas les émulateurs de terminal, ce sont les shells qui ont mis la valeur en cache. - Mark Stosberg