Lorsque je lance sudo
le terminal, celui-ci est bloqué pendant quelques secondes, puis envoie 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?
sudo
error-handling
Kit Sunde
la source
la source
/etc/hostname
et/etc/hosts
.hosts
fichier, mais un nom différent, en particulier parce que, sur de nombreux réseaux, les ordinateurs portent le même nom. Cette question (et cette réponse) apparaîtrait lorsque quelqu'un cherchait ce problème et la réponse l'inciterait à vérifier ces divergences, même si l'orthographe exacte était différente.hostname
même avechosts
. Par exemple, le nom d'hôte est ubuntu-pc et les hôtes, ubuntu-pc doivent être identiques.sudo /etc/init.d/network-manager restart
. Cependant, je me demande pourquoi, au départ, onsudo
perd du temps à attendre des choses liées au réseau. Ne devrait passudo
travailler sans problèmes quand le réseau n'est pas disponible?Réponses:
Deux choses à vérifier (en supposant que votre machine soit appelée
my-machine
, vous pouvez la changer si nécessaire):Que le
/etc/hostname
fichier ne contient que le nom de la machine.Cela
/etc/hosts
a une entrée pourlocalhost
. Il devrait avoir quelque chose comme:Si l’un ou l’autre de ces fichiers n’est pas correct (car vous ne pouvez pas utiliser sudo), vous devrez peut-être redémarrer la machine en mode de récupération et y apporter les modifications, puis redémarrer dans votre environnement habituel.
la source
#%admin ALL=(ALL) ALL
pour%admin ALL=NOPASSWD: ALL
, puis redémarrer, et sudo su -, modifier ces fichiers, définir / nom d' hôte correct, redémarrer à nouveau, et tout fonctionnait.::1 localhost
à/etc/hosts
(il s'agit de la version IPv6 de 127.0.0.1, aussi appelée l'adresse de bouclage)127.0.0.1 localhost
mais127.0.1.1 my-machine
?Modifiez
/etc/hosts
et ajoutez votre nouveau nom d’hôte à la ligne 127.0.0.1 (ou créez-en une nouvelle si vous préférez).Le mien ressemble à:
Remplacez
penguin
dans l'exemple ci-dessus par votre nouveau nom d'hôte, comme indiqué dans le/etc/hostname
fichier.la source
sudo
même si ce message est affiché. IIRC, vous devez toujours entrer votre mot de passe à 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é.Ajoutez votre nom d'hôte pour
/etc/hosts
aimer ainsi:la source
echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo -h 127.0.0.1 tee -a /etc/hosts
Remarque, ceci est 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
. Ajouter unL
à cette ligne:Alors ça devient:
Pour ce faire, ouvrez une console (appuyez sur Ctrl+ Alt+ T) et tapez:
Ajoutez la lettre
L
comme mentionné, sauvegardez et quittez.la source
sudoedit
(ousudo -e
). Pour spécifier l’éditeur préféré, utilisez laEDITOR
variable d’environnement (par exempleexport EDITOR=vim
), car elle crée une copie hors ligne pour l’édition, puis la remplace proprement après l’édition.sudo
quand il n'y en a plussudo
.sudo
ne fonctionne pas, monsieur.sudo: unable to resolve host ...
sudo
? Le message d'erreur que vous mentionnez provient de lasudo
commande. Peut-être que vous vouliez dire quelque chose de différent?sudo
fonctionne très bien. Il ne peut tout simplement pas stocker d’état (par exemple, comme Lekensteyn l’a dit ailleurs, vous devez entrer votre mot de passe à chaque fois).J'ai eu ce problème quand j'utilisais Ubuntu sur un VPS. Je l'ai résolu en modifiant le fichier / etc / hosts.
lancez cette commande:
puis ajoutez:
J'espère que cela résoudra votre problème :)
PS: N'oubliez pas de redémarrer votre ordinateur!
la source
hosts
fichier ("ubuntu" dans l'exemple de Luca). La première ligne peut aussi être juste "localhost".sudoedit
(ousudo -e
). Pour spécifier l’éditeur préféré, utilisez laEDITOR
variable d’environnement (par exempleexport EDITOR=vim
), car elle crée une copie hors ligne pour l’édition, puis la remplace proprement après l’édition.J'avais le même problème même si le nom d'hôte de mon fichier / etc / hostname et de mon fichier / etc / hosts correspondait.
Mon nom d'hôte était "staging_1". Il s'avère que vous ne pouvez pas avoir de 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 résolu mon problème.
la source
Dans AWS, accédez à votre vpc et activez les "noms d'hôte DNS".
la source
DNS Hostnames
Le symptôme donné dans la question peut fortement corréler avec ce problème plus spécifique:
Cela peut être résolu de différentes manières, l'une d'entre elles consiste à ajouter votre nom d'hôte en tant qu'hôte local
/etc/hosts
(comme le montrent plusieurs autres réponses). C'est peut-être la bonne chose à faire en général, mais ce n'est pas la seule solution possible.Un "nom de domaine complet" peut être fourni par un serveur DNS externe ou similaire (s'il est disponible sur votre réseau). Dans ce cas,
sudo
ne va pas se plaindre, malgré l'entrée manquante dans/etc/hosts
.Remarque:
sudo
tente de déréférencer le nom d'hôte, même si cela n'est pas nécessairement requis, en raison des fonctionnalités optionnelles du fichier sudoers. Voir la commande sudo qui tente de rechercher un nom d’hôte .Tant que le délai n'est pas trop long, ce message d'erreur est généralement inoffensif.
la source
sudo --host=localhost
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 VPC, sélectionnez le VPC, cliquez sur Actions, sélectionnez Modifier les noms d’hôte DNS, puis sélectionnez Oui."
https://forums.aws.amazon.com/thread.jspa?messageID=699718
la source
Certains émulateurs de terminal ne mettront pas à jour l'invite avec le nom d'hôte correct jusqu'à ce que vous fermiez et redémarriez l'émulateur (lxterminal, je vous parle).
J'ai passé 30 minutes à lutter contre cette erreur après avoir modifié mon nom d'hôte et mes fichiers hôtes ,
sudo service hostname restart
jusqu'à ce que jesudo hostname
sois sûr que le nom d'hôte soit la nouvelle valeur, même si l'invite affichait l'ancienne valeur.la source
Dans mon cas, c’était le problème, j’ai changé le
hostname
enman
car je voulais savoir s’il existe certains paramètres que vous pouvez utiliserhostname
. Au contraire , il a changé mahostname
àman
et j'ai toujours eu le même message que vousaprès avoir changé le nom d'hôte à `localhost tout a bien fonctionné à nouveau
la source
Tout le monde conseille de modifier
/etc/hosts
. Mais dans certains cas, cela peut ne pas être possible (par exemple, dans un conteneur de menu fixe). Donc, je devais trouver un meilleur moyen et je suis venu avec ceci:Les alias ne fonctionnent pas dans les scripts bash, mais nous pouvons utiliser des variables:
sudo='sudo -h 127.0.0.1'
la source
Désolé, je ne peux pas vous aider beaucoup, mais comme il est écrit "ne peut pas résoudre l'hôte", essayez de lancer:
Et voyez si la sortie est le nom d'hôte de la machine. Sinon, le problème vient de la configuration de l'hôte, pas de sudo.
la source
OP a écrit:
la source
vous risquez de recevoir une erreur si votre hôte ou votre fichier de nom d’hôte contient des caractères non autorisés. Seuls ces symboles sont autorisés: az, AZ, 0-9
la source
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, ce qui n'a pas changé le nom de la machine dans le fichier hosts. Tout ce que j'ai fait est exécuté:
Puis je l'ai édité à partir de ceci:
Pour ça:
et cela a corrigé mon erreur! J'espère que cela a aidé!
la source
J'ai eu le même problème. Je l'ai résolu en modifiant les fichiers / etc / hosts et / etc / hostname ... du fichier / etc / hosts, modifiez simplement la partie supérieure, comme indiqué ci-dessous.
la source
127.0.1.1 localhost myhostname
ou127.0.1.1 myhostname
?/etc/hosts
sanssudo
.sudo
ne fonctionne passudo: unable to resolve host ...
si vous ne pouvez pas vous connecter, vous POUVEZ vous connecter en tant que root via su. IE: su root (dans un x-term). puis donnez le mot de passe root lorsque vous y êtes invité, vous pourrez ensuite éditer les fichiers avec nano. Le mot de passe root dans 'buntu est identique à celui que vous utiliseriez pour sudo.
la source
sudo
.root
est son propre compte, qui n'a pas de mot de passe défini par défaut.Si vous utilisez Vagrant, connectez-vous à l'invité et exécutez
apt-get --no-install-recommends install virtualbox-guest-utils
la source
Si votre problème concerne ce
/etc/hostname
fichier et que les/etc/hosts
deux fichiers ont le nom d’hôte souhaité et que votre ordinateur affiche toujours l’erreurEssayez, forçant le nom d'hôte
Vous obtiendrez probablement toujours la même erreur, mais essayez de vous déconnecter et de vous reconnecter. Cela a fonctionné pour moi.
la source