913 votes

Message d'erreur "sudo : unable to resolve host (none)".

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 ?

10 votes

Veuillez afficher le contenu de /etc/hostname y /etc/hosts .

60 votes

Je recommande de ne pas clore cette question en disant trop localisé . De nombreux utilisateurs peuvent penser à tort qu'ils ont mis un nom dans leurs hosts mais mettre un nom différent à la place, d'autant plus que sur de nombreux réseaux, les ordinateurs sont nommés de la même manière. Cette question (et sa réponse) apparaîtrait lorsque quelqu'un effectue une recherche sur ce problème, et la réponse l'inciterait à vérifier de telles divergences, même si l'orthographe exacte est différente.

12 votes

Assurez-vous que votre hostname même avec hosts . par exemple, le nom d'hôte est ubuntu-pc et les hôtes est ubuntu-pc doivent être identiques.

11voto

Erick Points 127

Dans AWS, allez dans votre vpc et activez "DNS Hostnames".

2 votes

Bienvenue sur askubuntu ! Pouvez-vous nous en dire un peu plus ? Ce que vous voulez dire n'est pas très clair (du moins pour moi)

2 votes

Voici la réponse qui m'a aidé. Amazon AWS a changé depuis la dernière fois que je l'ai consultée. Les VPC ont des options DNS, et elles doivent être activées pour que la résolution DNS fonctionne.

1 votes

L'option Enable DNS Hostnames (Activer les noms d'hôtes DNS) peut être trouvée (par exemple) dans le menu contextuel de l'entrée vpc

10voto

Ben Points 10335

Le symptôme indiqué dans la question peut présenter une forte corrélation avec ce problème plus spécifique :

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

Il existe différentes façons de résoudre ce problème, l'une d'entre elles consiste à ajouter votre nom d'hôte en tant que localhost dans le fichier /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 pleinement qualifié" peut être fourni par un serveur DNS externe ou similaire (s'il est disponible sur votre réseau). Dans ce cas, sudo ne se plaindra pas, malgré l'entrée manquante dans /etc/hosts .


Nota: sudo tente de déréférencer le nom d'hôte, même s'il n'est pas nécessairement requis, en raison de capacités optionnelles dans le fichier sudoers. Voir La commande sudo essaie 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.

0 votes

Un peu plus rapide : sudo --host=localhost

0 votes

0 votes

8voto

dashohoxha Points 292

Tout le monde conseille de modifier /etc/hosts . Mais dans certains cas, cela peut ne pas être possible (par exemple à l'intérieur d'un conteneur docker). Je devais donc trouver une meilleure solution et j'ai trouvé celle-ci :

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

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

6voto

user93581 Points 119

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

"Allez dans la console de gestion du VPC, sélectionnez le VPC, cliquez sur Actions, sélectionnez Modifier les noms d'hôtes DNS et sélectionnez Oui."

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

6voto

dagbel Points 61

Certains émulateurs de terminal ne mettront pas à jour l'invite avec le nom d'hôte correct tant que vous n'aurez pas fermé et redémarré l'émulateur (lxterminal, c'est à vous que je parle).

J'ai passé 30 minutes à me battre avec cette erreur après avoir modifié ma page d'accueil. nom d'hôte y hôtes et en exécutant 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.

1 votes

Le problème ne vient pas des émulateurs de terminal, mais des shells qui ont mis la valeur en cache.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X