Cuando ejecuto sudo
el terminal está atascado durante unos segundos y luego muestra un mensaje de error. Mi terminal se ve así:
ubuntu@(none):~$ sudo true
sudo: unable to resolve host (none)
¿Qué puedo hacer para resolverlo?
sudo
error-handling
Kit Sunde
fuente
fuente
/etc/hostname
y/etc/hosts
.hosts
archivo, pero en su lugar ponen un nombre diferente, especialmente porque en muchas redes, las computadoras tienen nombres similares. Esta pregunta (y respuesta) aparecería cuando alguien buscara con ese problema, y la respuesta los incitaría a verificar tales discrepancias, a pesar de que el error ortográfico exacto sería diferente.hostname
mismo conhosts
. por ejemplo, el nombre de host es ubuntu-pc y hosts es ubuntu-pc debe ser el mismo.sudo /etc/init.d/network-manager restart
. Sin embargo, me pregunto por qué, en primer lugar,sudo
pierde el tiempo esperando cosas relacionadas con la red. ¿No deberíasudo
funcionar sin problemas cuando la red no está disponible?Respuestas:
Dos cosas para verificar (suponiendo que se llame a su máquina
my-machine
, puede cambiar esto según corresponda):Que el
/etc/hostname
archivo contiene solo el nombre de la máquina.Eso
/etc/hosts
tiene una entrada paralocalhost
. Debería tener algo como:Si alguno de estos archivos no es correcto (ya que no puede sudo), es posible que deba reiniciar la máquina en modo de recuperación y realizar las modificaciones, luego reinicie en su entorno habitual.
fuente
#%admin ALL=(ALL) ALL
a%admin ALL=NOPASSWD: ALL
, luego reiniciar y sudo su -, editar esos archivos, establecer / corregir el nombre de host, reiniciar de nuevo, y todo funcionó.::1 localhost
a/etc/hosts
(esta es la versión IPv6 de 127.0.0.1, también conocido como la dirección de bucle)127.0.0.1 localhost
pero127.0.1.1 my-machine
?Edite
/etc/hosts
y agregue su nuevo nombre de host a la línea 127.0.0.1 (o cree una nueva línea si lo prefiere).El mío se ve así:
Reemplace
penguin
en el ejemplo anterior por su nuevo nombre de host como se indica en el/etc/hostname
archivo.fuente
sudo
incluso si se muestra ese mensaje. Sin embargo, en el IIRC aún debe ingresar su contraseña en cada invocación. Si esto no funciona, puede reiniciar en la consola de recuperación y aplicar los cambios. Se desaconseja una cuenta raíz con contraseña.Agregue su nombre de host para
/etc/hosts
gustar así:fuente
echo $(hostname -I | cut -d\ -f1) $(hostname) | sudo -h 127.0.0.1 tee -a /etc/hosts
Tenga en cuenta que esta es una respuesta a esta pregunta que se ha fusionado con esta.
Su nombre de host (
dave00-G31M-ES2L
) no está representado en/etc/hosts
. Agregue un anL
a esta línea:Entonces se convierte en:
Para lograr esto, abra una consola (presione Ctrl+ Alt+ T) y escriba:
Agregue la letra
L
como se mencionó, guarde y salga.fuente
sudoedit
(osudo -e
). Para especificar el editor preferido, use laEDITOR
variable de entorno (p. Ej.export EDITOR=vim
) Ya que crea una copia fuera de línea para editar y luego sobrescribe limpiamente después de la edición.sudo
cuándo ya no existesudo
.sudo
No funciona, señor.sudo: unable to resolve host ...
sudo
¿ No ? El mensaje de error que menciona proviene delsudo
comando. ¿Quizás quisiste decir algo diferente?sudo
funciona bien. Simplemente no puede almacenar ningún estado (es decir, como Lekensteyn dijo en otro lugar, debe ingresar su contraseña cada vez).Tuve este problema cuando estaba usando ubuntu en un VPS. Lo resolví editando el archivo / etc / hosts.
ejecuta este comando:
y luego agregue:
Espero que eso resuelva tu problema :)
PD: ¡Recuerde reiniciar su computadora!
fuente
hosts
archivo ("ubuntu" en el ejemplo de Luca). La primera línea también puede ser solo "localhost".sudoedit
(osudo -e
). Para especificar el editor preferido, use laEDITOR
variable de entorno (p. Ej.export EDITOR=vim
) Ya que crea una copia fuera de línea para editar y luego sobrescribe limpiamente después de la edición.Estaba teniendo el mismo problema a pesar de que el nombre de host en mi archivo / etc / hostname y / etc / hosts coinciden.
Mi nombre de host era "staging_1". Resulta que no puede tener un guión bajo en su nombre de host, por lo que recibí este error. Cambiar el guión bajo a un guión solucionó mi problema.
fuente
En AWS, vaya a su vpc y active "Nombres de host DNS".
fuente
DNS Hostnames
El síntoma dado en la pregunta puede correlacionarse fuertemente con este problema más específico:
Hay diferentes maneras de resolver esto, una de las cuales es agregar su nombre de host como localhost
/etc/hosts
(como se muestra en varias otras respuestas). Esto puede ser lo correcto en general, pero no es la única solución posible.Un servidor DNS externo o similar puede proporcionar un "nombre de dominio completo" (si está disponible en su red). En este caso,
sudo
no se quejará, a pesar de la falta de entrada/etc/hosts
.Nota:
sudo
intenta desreferenciar el nombre de host, aunque no sea necesariamente necesario, debido a las capacidades opcionales en el archivo sudoers. Vea el comando sudo tratando de buscar el nombre de host .Mientras el retraso no sea demasiado largo, este mensaje de error suele ser inofensivo.
fuente
sudo --host=localhost
Encontré este mismo mensaje de error. Creo que este hilo de discusión en AWS Developer Forums es una mejor solución:
"Vaya a la consola de administración de VPC, seleccione la VPC, haga clic en Acciones, seleccione Editar nombres de host DNS y seleccione Sí".
https://forums.aws.amazon.com/thread.jspa?messageID=699718
fuente
Algunos emuladores de terminal no actualizarán la solicitud con el nombre de host correcto hasta que cierre y reinicie el emulador (lxterminal, estoy hablando con usted).
Pasé 30 minutos luchando con este error después de editar mi nombre de host y los archivos de hosts y ejecutarlos
sudo service hostname restart
hasta que ejecutésudo hostname
y vi que el nombre de host era el nuevo valor, a pesar de que el mensaje mostraba el valor anterior.fuente
En mi caso fue el problema, cambié
hostname
aman
porque quería saber si hay algunos parámetros que pueda usarhostname
. En lugar cambió mihostname
paraman
y siempre tengo el mismo mensaje como usteddespués de volver a cambiar el nombre de host a `localhost, todo volvió a funcionar bien
fuente
Todo el mundo aconseja modificar
/etc/hosts
. Pero en algunos casos esto puede no ser posible (por ejemplo, dentro de un contenedor acoplable). Entonces, tuve que encontrar una mejor manera y se me ocurrió esto:Los alias no funcionan en los scripts de bash, pero podemos usar variables:
sudo='sudo -h 127.0.0.1'
fuente
Lo siento, no puedo ayudarte mucho, pero como dice "no se puede resolver el host", intenta ejecutar:
Y vea si la salida es el nombre de host de la máquina. Si no, el problema es la configuración del host, no sudo.
fuente
OP escribió:
fuente
es posible que reciba un error si sus hosts o el archivo de nombre de host contienen caracteres ilegales. Solo se permiten estos símbolos: az, AZ, 0-9
fuente
¡Yo tuve el mísmo problema! Cambié el nombre de mi VPS a través del panel de control de administración en línea que no cambió el nombre de la máquina en el archivo de hosts. Todo lo que hice fue ejecutar:
Luego lo edité de esto:
A esto:
y eso solucionó mi error! Espero que esto haya ayudado!
fuente
Yo tuve el mismo problema. Lo resolví editando los archivos / etc / hosts y / etc / hostname ... en el archivo / etc / hosts, solo edite la parte superior como se muestra a continuación.
fuente
127.0.1.1 localhost myhostname
o127.0.1.1 myhostname
?/etc/hosts
sinsudo
?sudo
no funcionasudo: unable to resolve host ...
si no puede sudo, PUEDE iniciar sesión como root a través de su. IE: su raíz (en un término x). luego proporcione la contraseña de root cuando se le solicite, luego puede editar los archivos con nano. La contraseña de root en 'buntu es la misma que la contraseña que usarías para sudo.
fuente
sudo
.root
es su propia cuenta, que no tiene una contraseña establecida de forma predeterminada.Si está utilizando Vagrant, inicie sesión en el invitado y ejecute
apt-get --no-install-recommends install virtualbox-guest-utils
fuente
En caso de que su problema sea ese
/etc/hostname
archivo/etc/hosts
, ambos archivos tienen su nombre de host deseado y su máquina aún muestra el errorIntenta, forzando el nombre de host
Probablemente aún obtendrá el mismo error, pero intente cerrar la sesión y volver a iniciarla. Funcionó para mí.
fuente