Wenn ich laufe, sudo
bleibt das Terminal einige Sekunden lang hängen und gibt dann eine Fehlermeldung aus. Mein Terminal sieht so aus:
ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)
Was kann ich tun, um es zu lösen?
sudo
error-handling
Kit Sunde
quelle
quelle
/etc/hostname
und/etc/hosts
.hosts
Datei eingegeben, aber stattdessen einen anderen Namen, zumal Computer in vielen Netzwerken ähnliche Namen haben. Diese Frage (und Antwort) würde erscheinen, wenn jemand mit diesem Problem sucht, und die Antwort würde ihn auffordern, nach solchen Unstimmigkeiten zu suchen, obwohl die genaue Rechtschreibfehler unterschiedlich wäre.hostname
dasselbe mithosts
. zB der Hostname ist ubuntu-pc und hosts ist ubuntu-pc muss gleich sein.sudo /etc/init.d/network-manager restart
. Ich frage mich jedoch, warum in erster Liniesudo
Zeit damit verschwendet wird, auf netzwerkbezogene Dinge zu warten. Sollte nichtsudo
ohne Probleme funktionieren, wenn das Netzwerk nicht verfügbar ist?Antworten:
Zwei zu überprüfende Punkte (vorausgesetzt, Ihr Computer wird aufgerufen
my-machine
, können Sie dies entsprechend ändern):Dass die
/etc/hostname
Datei nur den Namen des Rechners enthält.Das
/etc/hosts
hat einen Eintrag fürlocalhost
. Es sollte ungefähr so aussehen:Wenn eine dieser Dateien nicht korrekt ist (da Sie sudo nicht ausführen können), müssen Sie den Computer möglicherweise im Wiederherstellungsmodus neu starten und die Änderungen vornehmen. Starten Sie dann in Ihrer normalen Umgebung neu.
quelle
#%admin ALL=(ALL) ALL
zu%admin ALL=NOPASSWD: ALL
, dann einen Neustart, und sudo su -, bearbeiten Sie diese Dateien, Set / richtige Hostnamen, starten Sie wieder, und alles funktionierte.::1 localhost
um/etc/hosts
(dies ist die IPv6 - Version von 127.0.0.1, auch bekannt als die Loopback - Adresse)127.0.0.1 localhost
aber127.0.1.1 my-machine
?Bearbeiten Sie
/etc/hosts
Ihren neuen Hostnamen und hängen Sie ihn an die Zeile 127.0.0.1 an (oder erstellen Sie eine neue Zeile, wenn Sie dies vorziehen).Meins sieht aus wie:
Ersetzen Sie
penguin
im obigen Beispiel durch Ihren neuen Hostnamen, wie in der/etc/hostname
Datei angegeben.quelle
sudo
auch wenn diese Meldung angezeigt wird. Im IIRC müssen Sie jedoch bei jedem Aufruf Ihr Passwort eingeben. Wenn dies nicht funktioniert, können Sie die Wiederherstellungskonsole neu starten und die Änderungen übernehmen. Ein Root-Account mit Passwort wird nicht empfohlen.Fügen Sie Ihren Hostnamen hinzu,
/etc/hosts
damit er Ihnen gefällt:quelle
echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo -h 127.0.0.1 tee -a /etc/hosts
Beachten Sie, dass dies eine Antwort auf diese Frage ist, die mit dieser Frage zusammengeführt wurde.
Ihr Hostname (
dave00-G31M-ES2L
) ist in nicht vertreten/etc/hosts
. Fügen Sie einL
zu dieser Zeile hinzu:So wird es:
Öffnen Sie dazu eine Konsole (drücken Sie Ctrl+ Alt+ T) und geben Sie Folgendes ein:
Fügen Sie den Buchstaben
L
wie erwähnt hinzu, speichern und beenden Sie ihn.quelle
sudoedit
(odersudo -e
). Verwenden Sie zum Angeben des bevorzugten Editors dieEDITOR
Umgebungsvariable (z. B.export EDITOR=vim
), wenn eine Offline-Kopie zum Bearbeiten erstellt und nach dem Bearbeiten bereinigt überschrieben wird.sudo
wenn es keinen mehr gibtsudo
.sudo
funktioniert nicht, Sir.sudo: unable to resolve host ...
sudo
? Die Fehlermeldung, die Sie erwähnen, stammt aus demsudo
Befehl. Vielleicht hast du etwas anderes gemeint?sudo
funktioniert gut. Es kann einfach keinen Zustand speichern (dh wie Lekensteyn an anderer Stelle sagte, müssen Sie jedes Mal Ihr Passwort eingeben).Ich hatte dieses Problem, als ich Ubuntu auf einem VPS verwendete. Ich habe es gelöst, indem ich die Datei / etc / hosts bearbeitet habe.
Führen Sie diesen Befehl aus:
und füge dann hinzu:
Ich hoffe das wird dein Problem lösen :)
PS: Denken Sie daran, Ihren Computer neu zu starten!
quelle
hosts
Datei übereinstimmt ("ubuntu" in Lucas Beispiel). Die erste Zeile kann auch nur "localhost" sein.sudoedit
(odersudo -e
). Verwenden Sie zum Angeben des bevorzugten Editors dieEDITOR
Umgebungsvariable (z. B.export EDITOR=vim
), wenn eine Offline-Kopie zum Bearbeiten erstellt und nach dem Bearbeiten bereinigt überschrieben wird.Ich hatte das gleiche Problem, obwohl der Hostname in meiner / etc / hostname-Datei und / etc / hosts-Datei übereinstimmte.
Mein Hostname war "staging_1". Es stellt sich heraus, dass Ihr Hostname keinen Unterstrich enthält. Deshalb habe ich diesen Fehler erhalten. Das Ändern des Unterstrichs in einen Bindestrich hat mein Problem behoben.
quelle
Rufen Sie in AWS Ihren virtuellen Computer auf und aktivieren Sie "DNS-Hostnamen".
quelle
DNS Hostnames
Das in der Frage angegebene Symptom kann stark mit diesem spezifischeren Problem korrelieren:
Es gibt verschiedene Möglichkeiten, dies zu beheben. Eine davon besteht darin, Ihren Hostnamen als localhost in hinzuzufügen
/etc/hosts
(wie in mehreren anderen Antworten gezeigt). Dies mag im Allgemeinen das Richtige sein, ist jedoch nicht die einzig mögliche Lösung.Ein "vollqualifizierter Domänenname" wird möglicherweise von einem externen DNS-Server oder einem ähnlichen Server bereitgestellt (sofern dieser in Ihrem Netzwerk verfügbar ist). In diesem Fall
sudo
wird sich trotz fehlendem Eintrag in nicht beschweren/etc/hosts
.Hinweis: Es wird
sudo
versucht, den Hostnamen zu dereferenzieren, obwohl dies aufgrund optionaler Funktionen in der sudoers-Datei nicht unbedingt erforderlich ist. Siehe sudo-Befehl, der versucht, nach dem Hostnamen zu suchen .Solange die Verzögerung nicht zu lang ist, ist diese Fehlermeldung normalerweise harmlos.
quelle
sudo --host=localhost
Ich bin auf dieselbe Fehlermeldung gestoßen. Ich halte diesen Diskussionsthread in den AWS-Entwicklerforen für eine bessere Lösung:
"Rufen Sie die VPC-Verwaltungskonsole auf, wählen Sie die VPC aus, klicken Sie auf" Aktionen ", wählen Sie" DNS-Hostnamen bearbeiten "und klicken Sie auf" Ja "."
https://forums.aws.amazon.com/thread.jspa?messageID=699718
quelle
Einige Terminalemulatoren aktualisieren die Eingabeaufforderung erst dann mit dem richtigen Hostnamen, wenn Sie den Emulator schließen und neu starten (lxterminal, ich spreche mit Ihnen).
Ich habe mit diesem Fehler 30min Kämpfe nach meinen Bearbeitung Hostnamen und Hosts - Dateien und läuft ,
sudo service hostname restart
bis ich liefsudo hostname
und sah , dass der Hostname der neue Wert war, obwohl die prompt den alten Wert wurde showning.quelle
In meinem Fall war es das Problem, ich habe das
hostname
auf geändert ,man
weil ich wissen wollte, ob es einige Parameter gibt, die Sie verwenden könnenhostname
. Stattdessen änderte sich meine Nachrichthostname
zuman
und ich erhielt immer die gleiche Nachricht wie SieNachdem der Hostname wieder in "localhost" geändert wurde, funktionierte alles wieder einwandfrei
quelle
Jeder rät zu modifizieren
/etc/hosts
. In einigen Fällen ist dies jedoch möglicherweise nicht möglich (z. B. in einem Docker-Container). Also musste ich einen besseren Weg finden und mir fiel folgendes ein:Aliase funktionieren nicht in Bash-Skripten, aber wir können Variablen verwenden:
sudo='sudo -h 127.0.0.1'
quelle
Tut mir leid, ich kann Ihnen nicht viel helfen, aber da "Host kann nicht aufgelöst werden" steht, versuchen Sie Folgendes:
Überprüfen Sie, ob es sich bei der Ausgabe um den Hostnamen des Computers handelt. Wenn nicht, liegt das Problem in der Host-Konfiguration, nicht in sudo.
quelle
OP schrieb:
quelle
Möglicherweise wird eine Fehlermeldung angezeigt, wenn Ihre Hosts oder Ihre Hostnamensdatei unzulässige Zeichen enthält. Es sind nur diese Symbole zulässig: az, AZ, 0-9
quelle
Ich hatte das gleiche Problem! Ich habe den Namen meines VPS über das Online-Verwaltungsbedienfeld geändert, ohne den Computernamen in der Hosts-Datei zu ändern. Alles, was ich getan habe, war:
Dann habe ich es so bearbeitet:
Dazu:
und das hat meinen Fehler behoben! Hoffe das hat geholfen!
quelle
Ich hatte das gleiche problem Ich habe das Problem gelöst, indem ich die Dateien / etc / hosts und / etc / hostname ... in der Datei / etc / hosts bearbeitet habe. Bearbeiten Sie einfach den oberen Teil wie unten gezeigt.
quelle
127.0.1.1 localhost myhostname
oder127.0.1.1 myhostname
?/etc/hosts
ohne bearbeitensudo
.sudo
funktioniert nichtsudo: unable to resolve host ...
Wenn Sie sudo nicht können, können Sie sich als root über su anmelden. IE: su root (in einem x-Term). Geben Sie das root-Passwort ein, wenn Sie dazu aufgefordert werden. Anschließend können Sie die Dateien mit nano bearbeiten. Das root-Passwort in 'buntu ist dasselbe wie das Passwort, das Sie für sudo verwenden würden.
quelle
sudo
.root
ist ein eigenes Konto, für das standardmäßig kein Kennwort festgelegt ist.Wenn Sie Vagrant verwenden, melden Sie sich beim Gast an und führen Sie es aus
apt-get --no-install-recommends install virtualbox-guest-utils
quelle
Wenn es sich bei Ihrem Problem um diese
/etc/hostname
Datei handelt und/etc/hosts
beide Dateien Ihren gewünschten Hostnamen haben und der Fehler weiterhin auf Ihrem Computer angezeigt wirdVersuchen Sie, den Hostnamen zu erzwingen
Wahrscheinlich wird immer noch derselbe Fehler angezeigt, aber versuchen Sie, sich abzumelden und wieder anzumelden. Bei mir hat es funktioniert.
quelle