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

638

Lorsque j'exécute sudo , le terminal reste bloqué pendant quelques secondes puis envoie un message d'erreur. Mon terminal ressemble à ceci:

[email protected](none):~$ sudo true
sudo: unable to resolve host (none)

Que puis-je faire pour le résoudre?

    
posée Kit Sunde 31.08.2011 - 21:09
la source

19 réponses

870

Deux choses à vérifier (en supposant que votre ordinateur s'appelle my-machine , vous pouvez le changer si nécessaire):

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

  2. Que /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    my-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.

    
réponse donnée Jeremy Kerr 01.09.2011 - 05:26
la source
169

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

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

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

    
réponse donnée Lekensteyn 07.04.2012 - 15:39
la source
41

Ajoutez votre nom d'hôte à /etc/hosts comme ça:

echo $(hostname -I | cut -d\  -f1) $(hostname) | sudo tee -a /etc/hosts
    
réponse donnée Collin Anderson 15.09.2014 - 18:03
la source
30

Remarque: il s’agit d’une réponse à cette question qui a été fusionnée avec celle-ci.

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

127.0.1.1   dave00-G31M-ES2

Cela devient donc:

127.0.1.1   dave00-G31M-ES2L

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

sudo gedit /etc/hosts

Ajoutez la lettre L comme mentionné, enregistrez et quittez.

    
réponse donnée Thor 18.08.2012 - 13:02
la source
16

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

exécutez 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!

    
réponse donnée Luca D'Amico 01.04.2013 - 03:18
la source
10

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 s'avère que vous ne pouvez pas avoir un trait de soulignement dans votre nom d’hôte, c’est pourquoi je recevais cette erreur. Changer le trait de soulignement en trait d'union a corrigé mon problème.

    
réponse donnée Chris.B 13.08.2014 - 15:50
la source
9

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

    
réponse donnée Erick 15.01.2015 - 06:15
la source
5

J'ai rencontré le 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."

lien

    
réponse donnée user93581 13.02.2016 - 12:44
la source
5

Certains émulateurs de terminaux ne mettront pas à jour les invites avec le nom d'hôte correct tant que vous ne fermez pas 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é mes fichiers nom d'hôte et hosts et exécuté sudo service hostname restart jusqu'à ce que je lance sudo hostname valeur, même si l’invite indiquait l’ancienne valeur.

    
réponse donnée dagbel 19.06.2016 - 18:29
la source
4

Dans mon cas, c’était le problème, j’ai changé le hostname en man parce que je voulais savoir si certains paramètres pouvaient être utilisés sur hostname . Au lieu de cela, j'ai changé mon hostname en man et j'ai toujours reçu le même message comme vous

sudo: unable to resolve host (none)

après avoir changé le nom d’hôte en 'localhost tout fonctionnait bien à nouveau

hostname localhost
    
réponse donnée XandruCea 09.01.2014 - 23:24
la source
3

Le symptôme donné dans la question peut être fortement corrélé avec ce problème plus spécifique:

$ hostname --fqdn
hostname: Temporary failure in name resolution

Il existe différentes manières de résoudre ce problème, l’une d’elles consiste à ajouter votre nom d’hôte en tant que localhost dans /etc/hosts (comme indiqué dans plusieurs autres réponses). C'est peut-être la bonne chose à faire en général, mais ce n'est pas la seule résolution possible.

Un "nom de domaine complet" peut être fourni par un serveur DNS externe ou similaire (si celui-ci est disponible sur votre réseau). Dans ce cas, sudo ne se plaindra pas malgré l'entrée manquante dans /etc/hosts .

Remarque: sudo tente de déréférencer le nom d'hôte, même s'il n'est pas nécessairement requis, en raison des fonctionnalités facultatives du fichier sudoers. Voir la commande sudo tentant de rechercher le nom d'hôte .

Tant que le délai n’est pas trop long, ce message d’erreur est généralement inoffensif.

    
réponse donnée nobar 19.09.2017 - 00:17
la source
2

Désolé, je ne peux pas vous aider beaucoup, mais, comme il est dit "ne peut pas résoudre hôte", essayez de lancer:

hostname

Et voir si la sortie est le nom d'hôte de la machine. Sinon, le problème est la configuration de l’hôte, pas sudo.

    
réponse donnée animaletdesequia 31.08.2011 - 21:16
la source
2

OP a écrit:

  

Tout était dans / etc / hostname. Sur deux de nos serveurs malades, cela ressemblait à   ceci:

[email protected](none):~$ cat /etc/hostname
linux-web-n ip-10-128-##-##
     

Sur un serveur sans ce problème, nous avions:

[email protected]##-###:~$ cat /etc/hostname
ip-10-128-##-###
     

Suppression de la partie linux-web-n , redémarrage et tout allait bien.

    
réponse donnée Radu Rădeanu 13.04.2014 - 07:19
la source
2

vous pourriez avoir une erreur si votre fichier hôte ou votre fichier de nom d'hôte contient des caractères illégaux. Seuls ces symboles sont autorisés: a-z, A-Z, 0-9

    
réponse donnée Marcello 18.01.2015 - 04:26
la source
2

J'ai eu le même problème! J'ai changé le nom de mon VPS via le panneau de configuration de l'administrateur en ligne qui n'a pas modifié le nom de la machine dans le fichier hosts. Tout ce que j'ai fait a été exécuté:

sudo nano /etc/hosts

Puis je l’ai édité à partir de ceci:

127.0.1.1 Megabyte Megabyte
127.0.0.1 localhost

À ceci:

127.0.1.1 Debian Debian
127.0.0.1 localhost

et cela a corrigé mon erreur! J'espère que cela a aidé!

    
réponse donnée Synth 10.01.2017 - 03:18
la source
1

J'ai eu le même problème. Je l'ai résolu en éditant les fichiers / etc / hosts et / etc / hostname ... sur le fichier / etc / hosts, éditez simplement la partie supérieure comme indiqué ci-dessous.

#vi /etc/hosts
    127.0.0.1   localhost
    127.0.1.1   localhost  myhostname




#vi /etc/hostname
    myhostname
    
réponse donnée Centy 26.03.2016 - 18:53
la source
1

Si vous ne pouvez pas sudo vous pouvez vous connecter en tant que root via su. IE: su root (dans un terme x). puis donnez le mot de passe root lorsque vous y êtes invité, vous pouvez alors éditer les fichiers avec nano. Le mot de passe root dans 'buntu est le même que le mot de passe que vous utiliseriez pour sudo.

    
réponse donnée ken scharf 24.08.2016 - 17:07
la source
1

Si vous utilisez Vagrant, connectez-vous à l'invité et exécutez      apt-get --no-install-recommends install virtualbox-guest-utils

    
réponse donnée tanmoy 13.07.2017 - 09:27
la source
0

Tout le monde conseille de modifier /etc/hosts . Mais dans certains cas, cela peut ne pas être possible (par exemple dans un conteneur Docker). Donc, je devais trouver un meilleur moyen et je suis venu avec ceci:

echo "alias sudo='sudo -h 127.0.0.1'" >> ~/.bash_aliases
source ~/.bashrc

Les alias ne fonctionnent pas dans les scripts bash, mais nous pouvons utiliser des variables: sudo='sudo -h 127.0.0.1'

    
réponse donnée dashohoxha 28.07.2018 - 19:24
la source

Lire d'autres questions sur les étiquettes