Mensagem de erro 'sudo: não é possível resolver o host USER'

646

Quando executo sudo , o terminal fica preso por alguns segundos e, em seguida, gera uma mensagem de erro. Meu terminal é assim:

ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)

O que posso fazer para resolvê-lo?

    
por Kit Sunde 31.08.2011 / 21:09

19 respostas

879

Duas coisas para verificar (supondo que sua máquina seja chamada my-machine , você pode alterar isso conforme apropriado):

  1. O arquivo /etc/hostname contém apenas o nome da máquina.

  2. Esse /etc/hosts tem uma entrada para localhost . Deve ter algo como:

     127.0.0.1    localhost.localdomain localhost
     127.0.1.1    my-machine
    

Se algum desses arquivos não estiver correto (já que você não pode sudo), talvez seja necessário reinicializar a máquina no modo de recuperação e fazer as modificações e, em seguida, reinicializar para o seu ambiente normal.

    
por Jeremy Kerr 01.09.2011 / 05:26
174

Editar /etc/hosts e acrescente seu novo nome de host à linha 127.0.0.1 (ou crie uma nova linha se preferir isso).

Parece o meu:

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

Substitua penguin no exemplo acima por seu novo nome de host conforme indicado no arquivo /etc/hostname .

    
por Lekensteyn 07.04.2012 / 15:39
45

Adicione seu nome de host a /etc/hosts da seguinte forma:

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

Note que esta é uma resposta a esta questão que foi integrada a esta.

Seu hostname ( dave00-G31M-ES2L ) não está representado em /etc/hosts . Adicione um L a esta linha:

127.0.1.1   dave00-G31M-ES2

Então se torna:

127.0.1.1   dave00-G31M-ES2L

Para conseguir isso, abra um console (pressione Ctrl + Alt + T ) e digite:

sudo gedit /etc/hosts

Adicione a letra L como mencionado, salve e saia.

    
por Thor 18.08.2012 / 13:02
16

Eu tive esse problema quando eu estava usando o Ubuntu em um VPS. Eu resolvi editando o arquivo / etc / hosts.

execute este comando:

sudo nano /etc/hosts

e adicione:

127.0.0.1   localhost.localdomain localhost
127.0.1.1   ubuntu

Espero que isso resolva seu problema:)

PS: Lembre-se de reiniciar o seu computador!

    
por Luca D'Amico 01.04.2013 / 03:18
10

Eu estava tendo o mesmo problema, mesmo que o nome do host em meu arquivo / etc / hostname e / etc / hosts correspondesse.

Meu nome de host era "staging_1". Acontece que você não pode ter um sublinhado no seu nome de host, e é por isso que eu estava recebendo este erro. Alterar o sublinhado para um hífen resolveu meu problema.

    
por Chris.B 13.08.2014 / 15:50
9

Na AWS, vá para o seu vpc e ative "DNS Hostnames".

    
por Erick 15.01.2015 / 06:15
5

Encontrei esta mesma mensagem de erro. Acho que este tópico de discussão nos fóruns do AWS Developer é uma solução melhor:

"Vá para o console de gerenciamento de VPC, selecione o VPC, clique em Ações, selecione Editar nomes de host DNS e selecione Sim."

link

    
por user93581 13.02.2016 / 12:44
5

Alguns emuladores de terminal não atualizam o prompt com o nome do host correto até você fechar e reiniciar o emulador (lxterminal, estou falando com você).

Eu passei 30 minutos brigando com esse erro depois de editar meus arquivos hostname e hosts e executando sudo service hostname restart até que executei sudo hostname e vi que o nome do host era o novo valor, mesmo que o prompt mostrasse o valor antigo.

    
por dagbel 19.06.2016 / 18:29
4

No meu caso, foi o problema, eu mudei o hostname para man porque eu queria saber se há alguns parâmetros que você pode usar em hostname . Em vez disso, eu mudei meu hostname para man e sempre recebi a mesma mensagem como você

sudo: unable to resolve host (none)

depois de alterar o hostname de volta para 'localhost tudo funcionou bem novamente

hostname localhost
    
por XandruCea 09.01.2014 / 23:24
3

O sintoma dado na pergunta pode se correlacionar strongmente com esse problema mais específico:

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

Existem diferentes maneiras de resolver isso, uma das quais é adicionar seu nome de host como localhost em /etc/hosts (como mostrado em várias outras respostas). Esta pode ser a coisa certa a fazer em geral, mas não é a única resolução possível.

Um "nome de domínio totalmente qualificado" pode ser fornecido por um servidor DNS externo ou similar (se estiver disponível em sua rede). Neste caso, sudo não irá reclamar, apesar da falta de entrada em /etc/hosts .

Nota: sudo tenta desreferenciar o nome do host, mesmo que não seja necessariamente necessário, devido a recursos opcionais no arquivo sudoers. Veja comando sudo tentando procurar por hostname .

Contanto que o atraso não seja muito longo, essa mensagem de erro normalmente é inofensiva.

    
por nobar 19.09.2017 / 00:17
2

Desculpe, mas não posso ajudar muito, mas, como diz "não é possível resolver o host", tente executar:

hostname

E veja se a saída é o nome do host da máquina. Se não, o problema é a configuração do host, não o sudo.

    
por animaletdesequia 31.08.2011 / 21:16
2

OP escreveu:

  

Estava tudo em / etc / hostname. Em dois dos nossos servidores doentes, parecia   isso:

ubuntu@(none):~$ cat /etc/hostname
linux-web-n ip-10-128-##-##
     

Enquanto em um servidor sem esse problema, tivemos:

ubuntu@ip-10-128-##-###:~$ cat /etc/hostname
ip-10-128-##-###
     

Removemos a parte linux-web-n , reiniciamos e estava tudo bem.

    
por Radu Rădeanu 13.04.2014 / 07:19
2

você pode estar recebendo um erro se seus hosts ou arquivo de nome de host contiverem caracteres ilegais. Somente estes símbolos são permitidos: a-z, A-Z, 0-9

    
por Marcello 18.01.2015 / 04:26
2

Eu tive esse mesmo problema! Mudei o nome do meu VPS através do painel de controle on-line do administrador, que não alterou o nome da máquina no arquivo hosts. Tudo o que fiz foi executado:

sudo nano /etc/hosts

Depois eu editei isso:

127.0.1.1 Megabyte Megabyte
127.0.0.1 localhost

Para isso:

127.0.1.1 Debian Debian
127.0.0.1 localhost

e isso corrigiu o meu erro! Espero que isso tenha ajudado!

    
por Synth 10.01.2017 / 03:18
2

Todo mundo aconselha a modificar /etc/hosts . Mas, em alguns casos, isso pode não ser possível (por exemplo, dentro de um contêiner docker). Então, eu tive que encontrar um jeito melhor e eu fiz isso:

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

Alias não funcionam em scripts bash, mas podemos usar variáveis: sudo='sudo -h 127.0.0.1'

    
por dashohoxha 28.07.2018 / 19:24
1

Eu tive o mesmo problema. Eu resolvi isso editando os arquivos / etc / hosts e / etc / hostname ... no arquivo / etc / hosts, apenas edite a parte superior como mostrado abaixo.

#vi /etc/hosts
    127.0.0.1   localhost
    127.0.1.1   localhost  myhostname




#vi /etc/hostname
    myhostname
    
por Centy 26.03.2016 / 18:53
1

se você não pode sudo você pode logar como root via su. IE: su raiz (em um termo x). em seguida, dê a senha de root quando solicitado, então você pode editar os arquivos com nano. A senha do root em 'buntu é a mesma senha que você usaria para o sudo.

    
por ken scharf 24.08.2016 / 17:07
1

Se você estiver usando o Vagrant, faça login no guest e execute      apt-get --no-install-recommends install virtualbox-guest-utils

    
por tanmoy 13.07.2017 / 09:27