Quando corro, sudo
o terminal fica preso por alguns segundos e emite uma mensagem de erro. Meu terminal fica assim:
ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)
O que posso fazer para resolvê-lo?
sudo
error-handling
Kit Sunde
fonte
fonte
/etc/hostname
e/etc/hosts
.hosts
arquivo, mas em um nome diferente, principalmente porque, em muitas redes, os computadores têm nomes semelhantes. Essa pergunta (e resposta) apareceria quando alguém pesquisar com esse problema, e a resposta os levaria a verificar essas discrepâncias, mesmo que o erro de ortografia exato seja diferente.hostname
mesmo comhosts
. por exemplo, o nome do host é ubuntu-pc e hosts é ubuntu-pc deve ser o mesmo.sudo /etc/init.d/network-manager restart
. No entanto, estou me perguntando por que, em primeiro lugar,sudo
perde tempo aguardando coisas relacionadas à rede. Não devesudo
funcionar sem problemas quando a rede não está disponível?Respostas:
Duas coisas a verificar (supondo que sua máquina seja chamada
my-machine
, você pode alterar isso conforme apropriado):Que o
/etc/hostname
arquivo contenha apenas o nome da máquina.Isso
/etc/hosts
tem uma entrada paralocalhost
. Deve ter algo como:Se um desses arquivos não estiver correto (já que você não pode sudo), talvez seja necessário reiniciar a máquina no modo de recuperação e fazer as modificações, depois reinicie no ambiente habitual.
fonte
#%admin ALL=(ALL) ALL
para%admin ALL=NOPASSWD: ALL
, em seguida, reinicialize e sudo su -, edite esses arquivos, configure / corrija o nome do host, reinicie novamente e tudo funcionou.::1 localhost
a/etc/hosts
(esta é a versão IPv6 de 127.0.0.1, aka o endereço de auto-retorno)127.0.0.1 localhost
mas127.0.1.1 my-machine
?Edite
/etc/hosts
e acrescente seu novo nome de host à linha 127.0.0.1 (ou crie uma nova linha, se preferir).O meu se parece com:
Substitua
penguin
no exemplo acima por seu novo nome de host, conforme indicado no/etc/hostname
arquivofonte
sudo
mesmo que essa mensagem seja exibida. No IIRC, você ainda precisará digitar sua senha a cada chamada. Se isso não funcionar, você pode reiniciar o console de recuperação e aplicar as alterações. Uma conta root com senha é desencorajada.Adicione seu nome de host para
/etc/hosts
:fonte
echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo -h 127.0.0.1 tee -a /etc/hosts
Observe que esta é uma resposta a esta pergunta que foi mesclada com esta.
Seu nome de host (
dave00-G31M-ES2L
) não está representado/etc/hosts
. Adicione umL
a esta linha:Então se torna:
Para fazer isso, abra um console (pressione Ctrl+ Alt+ T) e digite:
Adicione a letra
L
conforme mencionado, salve e saia.fonte
sudoedit
(ousudo -e
). Para especificar o editor preferido, use aEDITOR
variável de ambiente (por exemploexport EDITOR=vim
), pois ela cria uma cópia offline para edição e, em seguida, sobrescreve corretamente após a edição.sudo
quando não existe maissudo
.sudo
não funciona senhor.sudo: unable to resolve host ...
sudo
? A mensagem de erro que você menciona vem dosudo
comando. Talvez você quis dizer algo diferente?sudo
funciona muito bem. Ele simplesmente não pode armazenar nenhum estado (ou seja, como Lekensteyn disse em outro lugar, você deve digitar sua senha todas as vezes).Eu tive esse problema quando estava usando o ubuntu em um VPS. Eu resolvi editando o arquivo / etc / hosts.
execute este comando:
e depois adicione:
Espero que isso resolva seu problema :)
PS: Lembre-se de reiniciar o seu computador!
fonte
hosts
arquivo ("ubuntu" no exemplo de Luca). A primeira linha também pode ser apenas "localhost".sudoedit
(ousudo -e
). Para especificar o editor preferido, use aEDITOR
variável de ambiente (por exemploexport EDITOR=vim
), pois ela cria uma cópia offline para edição e, em seguida, sobrescreve corretamente após a edição.Eu estava tendo o mesmo problema, apesar de o nome do host no meu arquivo / etc / hostname e no arquivo / etc / hosts corresponderem.
Meu nome de host era "teste_1". Acontece que você não pode ter um sublinhado no nome do host, e é por isso que eu estava recebendo esse erro. Alterar o sublinhado para um hífen corrigiu meu problema.
fonte
Na AWS, acesse seu vpc e ative "DNS Hostnames".
fonte
DNS Hostnames
O sintoma dado na pergunta pode se correlacionar fortemente com esse problema mais específico:
Existem diferentes maneiras de resolver isso, uma das quais é adicionar o nome do host como host local
/etc/hosts
(como mostrado em várias outras respostas). Isso pode ser a coisa certa a ser feita em geral, mas não é a única solução possível.Um "nome de domínio totalmente qualificado" pode ser fornecido por um servidor DNS externo ou similar (se disponível na sua rede). Nesse caso,
sudo
não irá reclamar, apesar da entrada faltante no/etc/hosts
.Nota:
sudo
tenta desreferenciar o nome do host, mesmo que não seja necessariamente necessário, devido aos recursos opcionais no arquivo sudoers. Veja o comando sudo tentando procurar pelo nome do host .Contanto que o atraso não seja muito longo, essa mensagem de erro normalmente é inofensiva.
fonte
sudo --host=localhost
Eu encontrei essa mesma mensagem de erro. Acho que esse tópico de discussão nos fóruns de desenvolvedores da AWS é uma solução melhor:
"Acesse o console de gerenciamento da VPC, selecione a VPC, clique em Ações, selecione Editar nomes de host DNS e selecione Sim."
https://forums.aws.amazon.com/thread.jspa?messageID=699718
fonte
Alguns emuladores de terminal não atualizarão o prompt com o nome de host correto até você fechar e reiniciar o emulador (lxterminal, estou falando com você).
Passei 30 minutos lutando com esse erro depois de editar meu nome de host e arquivos de hosts e executar
sudo service hostname restart
até executarsudo hostname
e ver que o nome de host era o novo valor, mesmo que o prompt mostrasse o valor antigo.fonte
No meu caso, foi o problema, mudei
hostname
para paraman
porque queria saber se existem alguns parâmetros nos quais você pode usarhostname
. Em vez disso, mudou minhahostname
paraman
e sempre recebi a mesma mensagem como vocêdepois de mudar o nome do host de volta para `localhost, tudo funcionou bem novamente
fonte
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 de docker). Então, eu tive que encontrar uma maneira melhor e vim com isso:Os aliases não funcionam em scripts bash, mas podemos usar variáveis:
sudo='sudo -h 127.0.0.1'
fonte
Desculpe, não posso ajudá-lo muito, mas, como diz "não é possível resolver o host", tente executar:
E veja se a saída é o nome do host da máquina. Caso contrário, o problema é a configuração do host, não o sudo.
fonte
OP escreveu:
fonte
você pode estar recebendo um erro se os hosts ou o arquivo do nome do host contiverem caracteres ilegais. Somente estes símbolos são permitidos: az, AZ, 0-9
fonte
Eu tenho esse mesmo problema! Alterei o nome do meu VPS através do painel de controle do administrador on-line, que não alterou o nome da máquina no arquivo hosts. Tudo o que fiz foi executar:
Então eu editei a partir disso:
Para isso:
e isso corrigiu meu erro! Espero que isso tenha ajudado!
fonte
Eu tive o mesmo problema. Eu o resolvi editando os arquivos / etc / hosts e / etc / hostname ... no arquivo / etc / hosts, basta editar a parte superior, como mostrado abaixo.
fonte
127.0.1.1 localhost myhostname
ou127.0.1.1 myhostname
?/etc/hosts
semsudo
.sudo
não funciona #sudo: unable to resolve host ...
se você não pode sudo, você PODE logar como root via su. IE: su root (em um termo x). depois forneça a senha de root quando solicitado, e você poderá editar os arquivos com o nano. A senha root no 'buntu é a mesma que você usaria para o sudo.
fonte
sudo
.root
é sua própria conta, que não tem uma senha definida por padrão.Se você estiver usando o Vagrant, faça o login no convidado e execute
apt-get --no-install-recommends install virtualbox-guest-utils
fonte
Caso seu problema seja esse
/etc/hostname
arquivo e/etc/hosts
, ambos os arquivos têm o nome de host desejado e sua máquina ainda está mostrando o erroTente, forçando o nome do host
Você provavelmente ainda receberá o mesmo erro, mas tente sair e fazer login novamente. Funcionou para mim.
fonte