Messaggio di errore 'sudo: impossibile risolvere l'host USER'

662

Quando eseguo sudo , il terminale rimane bloccato per alcuni secondi e poi emette un messaggio di errore. Il mio terminale ha questo aspetto:

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

Che cosa posso fare per risolverlo?

    
posta Kit Sunde 31.08.2011 - 21:09

19 risposte

905

Due cose da verificare (supponendo che la tua macchina sia chiamata my-machine , puoi cambiarla a seconda dei casi):

  1. Che il file /etc/hostname contenga solo il nome della macchina.

  2. Quella /etc/hosts ha una voce per localhost . Dovrebbe avere qualcosa di simile:

     127.0.0.1    localhost.localdomain localhost
     127.0.1.1    my-machine
    

Se uno di questi file non è corretto (poiché non è possibile sudo), potrebbe essere necessario riavviare il computer in modalità di ripristino e apportare le modifiche, quindi riavviare il sistema nel solito ambiente.

    
risposta data Jeremy Kerr 01.09.2011 - 05:26
179

Modifica /etc/hosts e aggiungi il tuo nuovo nome host alla riga 127.0.0.1 (o crea una nuova riga se preferisco quello).

Il mio assomiglia a:

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

Sostituisci penguin nell'esempio precedente con il tuo nuovo nome host come indicato nel file /etc/hostname .

    
risposta data Lekensteyn 07.04.2012 - 15:39
55

Aggiungi il tuo nome host a /etc/hosts in questo modo:

echo $(hostname -I | cut -d\  -f1) $(hostname) | sudo tee -a /etc/hosts
    
risposta data Collin Anderson 15.09.2014 - 18:03
30

Nota, questa è una risposta a questa domanda che è stata unita a questa.

Il tuo nome host ( dave00-G31M-ES2L ) non è rappresentato in /etc/hosts . Aggiungi un L a questa riga:

127.0.1.1   dave00-G31M-ES2

Quindi diventa:

127.0.1.1   dave00-G31M-ES2L

Per fare ciò, apri una console (premi Ctrl + Alt + T ) e digita:

sudo gedit /etc/hosts

Aggiungi la lettera L come menzionato, salva ed esci.

    
risposta data Thor 18.08.2012 - 13:02
16

Ho avuto questo problema quando stavo usando Ubuntu su un VPS. Ho risolto il problema modificando il file / etc / hosts.

esegui questo comando:

sudo nano /etc/hosts

e quindi aggiungi:

127.0.0.1   localhost.localdomain localhost
127.0.1.1   ubuntu

Spero che risolva il tuo problema:)

PS: ricorda di riavviare il computer!

    
risposta data Luca D'Amico 01.04.2013 - 03:18
10

Avevo lo stesso problema anche se il nome host nel mio file / etc / hostname e / etc / hosts corrispondevano.

Il mio nome host era "staging_1". Si scopre che non è possibile avere un carattere di sottolineatura nel nome host, motivo per cui ho ricevuto questo errore. La modifica del carattere di sottolineatura a un trattino ha risolto il problema.

    
risposta data Chris.B 13.08.2014 - 15:50
10

In AWS, vai al tuo vpc e attiva "Nomi host DNS".

    
risposta data Erick 15.01.2015 - 06:15
5

Ho riscontrato questo stesso messaggio di errore. Penso che questo thread di discussione ai forum degli sviluppatori AWS sia una soluzione migliore:

"Accedi alla console di gestione VPC, seleziona il VPC, fai clic su Azioni, seleziona Modifica nomi host DNS e seleziona Sì."

link

    
risposta data user93581 13.02.2016 - 12:44
5

Alcuni emulatori di terminale non aggiorneranno il prompt con il nome host corretto finché non chiudi e riavvii l'emulatore (lxterminal, sto parlando con te).

Ho trascorso 30 minuti a combattere con questo errore dopo aver modificato i miei file hostname e host e eseguito sudo service hostname restart finché non ho eseguito sudo hostname e ho visto che il nome host era il nuovo valore, anche se il prompt mostrava il vecchio valore.

    
risposta data dagbel 19.06.2016 - 18:29
4

Nel mio caso era il problema, ho cambiato hostname in man perché volevo sapere se ci sono alcuni parametri che puoi usare su hostname . Invece ha cambiato il mio hostname in man e ho sempre ricevuto lo stesso messaggio come te

sudo: unable to resolve host (none)

dopo aver cambiato il nome host in "localhost", tutto ha funzionato di nuovo bene

hostname localhost
    
risposta data XandruCea 09.01.2014 - 23:24
3

Il sintomo dato nella domanda può essere fortemente correlato a questo problema più specifico:

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

Ci sono diversi modi in cui questo può essere risolto, uno dei quali è aggiungere il tuo hostname come localhost in /etc/hosts (come mostrato in diverse altre risposte). Questa potrebbe essere la cosa giusta da fare in generale, ma non è l'unica soluzione possibile.

Un "nome di dominio completo" può essere fornito da un server DNS esterno o simile (se tale è disponibile sulla rete). In questo caso, sudo non si lamenterà, nonostante la voce mancante in /etc/hosts .

Nota: sudo tenta di dereferenziare il nome host, anche se non necessariamente richiesto, a causa delle funzionalità opzionali nel file sudoers. Vedi comando sudo cercando di cercare il nome host .

Finché il ritardo non è troppo lungo, questo messaggio di errore è in genere innocuo.

    
risposta data nobar 19.09.2017 - 00:17
2

Mi dispiace non posso aiutarti molto ma, dal momento che dice "impossibile risolvere l'host" prova a eseguire:

hostname

E vedere se l'output è il nome host della macchina. In caso contrario, il problema è la configurazione host, non sudo.

    
risposta data animaletdesequia 31.08.2011 - 21:16
2

OP ha scritto:

% Bl0ck_qu0te%     
risposta data Radu Rădeanu 13.04.2014 - 07:19
2

potresti ricevere un errore se il tuo host o il tuo nome host contengono caratteri non validi. Sono ammessi solo questi simboli: a-z, A-Z, 0-9

    
risposta data Marcello 18.01.2015 - 04:26
2

Ho avuto lo stesso problema! Ho cambiato il nome del mio VPS attraverso il pannello di controllo dell'amministratore online che non ha modificato il nome della macchina nel file hosts. Tutto ciò che ho fatto è stato eseguito:

sudo nano /etc/hosts

Poi l'ho modificato da questo:

127.0.1.1 Megabyte Megabyte
127.0.0.1 localhost

A questo:

127.0.1.1 Debian Debian
127.0.0.1 localhost

e questo ha corretto il mio errore! Spero che questo ha aiutato!

    
risposta data Synth 10.01.2017 - 03:18
2

Tutti consigliano di modificare /etc/hosts . Ma in alcuni casi ciò potrebbe non essere possibile (ad esempio all'interno di un contenitore di finestra mobile). Quindi, ho dovuto trovare un modo migliore e mi è venuto in mente questo:

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

Gli alias non funzionano negli script di bash, ma possiamo usare le variabili: sudo='sudo -h 127.0.0.1'

    
risposta data dashohoxha 28.07.2018 - 19:24
1

Ho avuto lo stesso problema. Ho risolto il problema modificando i file / etc / hosts e / etc / hostname ... sul file / etc / hosts, basta modificare la parte superiore come mostrato di seguito.

#vi /etc/hosts
    127.0.0.1   localhost
    127.0.1.1   localhost  myhostname




#vi /etc/hostname
    myhostname
    
risposta data Centy 26.03.2016 - 18:53
1

se non riesci a farlo puoi accedere come root tramite su. IE: su root (in un termine x). quindi fornire la password di root quando richiesto, quindi è possibile modificare i file con nano. La password di root in 'buntu è la stessa della password che useresti per sudo.

    
risposta data ken scharf 24.08.2016 - 17:07
1

Se stai usando Vagrant, accedi al guest ed esegui     % Co_de%

    
risposta data tanmoy 13.07.2017 - 09:27

Leggi altre domande sui tag