Cuando abro la Terminal, aparece el mensaje "¡No tengo nombre!"

40

De repente, esta mañana, abro una ventana de Terminal y obtengo esto:

I have no name!@macbook:~$ whoami
502

** ¡No soy un número! ¡Soy un ser humano! ** **

¿Lo que da? ¿Alguien sabe lo que debo hacer para recuperar mi nombre?

Supongo que hay dos problemas aquí, uno es que mi nombre de host no está definido, el otro es que whoami informa mi nombre como un número.

ipd
fuente
2
Por cierto, para los interesados, me desconecté (command-shift-Q) y después de volver a iniciar sesión y reiniciar el terminal, ¡el problema desapareció! Todavía estoy interesado en lo que puede haber causado esto, aunque no sea por otra razón que avanzar el estado de mi McKnowledge.
ipd
¿Se pregunta por qué se muestra el nombre de host de la computadora en el mensaje o se pregunta por qué la computadora se llama "No tengo nombre"?
Chris Page
Me pregunto por qué, de repente, mi mensaje de bash muestra "¡No tengo nombre!" en lugar de un nombre de host. Quizás es solo una coincidencia que whoamitambién informa mi número en lugar de mi nombre.
ipd
1
¿Qué hacer hostnamey id -pvolver?
CajunLuke
Mi sistema ha vuelto a la normalidad. Sin embargo, una buena sugerencia, si sucede de nuevo, ¡los revisaré a ambos!
ipd

Respuestas:

25

Algo en la memoria se corrompió y se perdió la asignación entre su ID de usuario (502) y su nombre de usuario (ipd). Lo he visto suceder (generalmente cuando eliminé manualmente los procesos del sistema bloqueados), aunque no estoy seguro exactamente de qué lo causa. launchd¿tal vez?

Debido a que ese mapeo se pierde, whoamino puede convertir su ID en un nombre de usuario, por lo que devuelve la ID y su mensaje predeterminado es "¡No tengo nombre!" mensaje porque efectivamente no tienes un nombre.

Cerrar sesión y volver a iniciarla podría solucionarlo, pero reiniciar es la mejor manera (como descubrió).

Básicamente, es un síntoma de otro problema, y ​​no un problema en sí mismo.

Bobson
fuente
1
Desearía poder explicar cómo se pierde ese mapeo, pero nunca he cavado lo suficientemente profundo como para descubrirlo.
Bobson
Esto me acaba de pasar de nuevo. Había matado launchd, y lo estaba ahora 501, lo que me impedía usar sudo. Todavía no sé si launchdse reiniciará solo, o qué otra cosa no afectará si se ejecuta.
Bobson el
Por lo que vale, me encontré con esto en una máquina Linux, por lo que supongo que la causa raíz es algo en mal estado. strings /bin/bash | grep "I have"
Trauma digital
Esto también sucede en las cajas de arena, donde es común no tener whoami o incluso sus dependencias, trate which whoamide ver dónde está, en mi caso lo hice ldd /usr/bin/whoamipara encontrar dependencias, ver si las tiene y si están dañadas.
RomuloPBenedetti
12

Veo que es un hilo viejo, pero aquí está la solución a este problema (sin reiniciar toda la computadora).

El problema está en el opendirectoryddemonio y los primeros informes datan de principios de 2011. El reinicio del demonio (cambio de usuarios con un administrador a través de Cambio rápido de usuario) soluciona el problema.

Mientras escribía esta respuesta, encontré una pregunta similar en Serverfault aquí , que también cubre mi respuesta.

mspasov
fuente
Esto no funcionó para mí. Mis síntomas son quizás un poquito diferentes. Tengo varias ventanas de terminal abiertas, y cada ventana de terminal existente ha perdido su asignación de nombre de usuario, pero cada nueva ventana parece tenerla sin problemas. Matar (también conocido como reiniciar) opendirectoryd no ayudó. En los terminales "fallidos", también me falta la asignación de grupos para com.apple.sharepoint.group.2y access_bpf, pero no los grupos enumerados en /etc/group. Me parece que los viejos procesos terminales (y quién sabe qué más) han perdido el acceso a opendirectoryd, no que opendirectoryd haya fallado.
ghoti
3

Esto me sucede al azar cuando salgo del modo de espera (es decir, abriendo mi computadora portátil). Cerrar sesión o reiniciar es la única forma de solucionarlo. No sé exactamente qué lo causa. Mientras escribo, está sucediendo en este momento. Como el comentario en la publicación original preguntaba, corrí id -py se estrelló. (Informe de bloqueo : http://pastebin.com/nmFFQELq )

Comandos de consola:

whoami - devuelve 501

id -p - se bloquea

cat /etc/passwd - mi usuario no está en el documento.

Cualquier intento de ssh falla con el error:

¡No existes, vete!

También revisé la consola, al despertar, aparecen un montón de errores aleatorios "Socket no conectado" (que creo que podría ser normal, ya que la conexión inalámbrica no se conecta de inmediato) de programas como Dropbox. Sin embargo, aparece un error interesante:

12/04/12 8: 37: 09.045 PM coreserviciosd: _scserver_ServerCheckin: error de validación del uid del cliente; getpwuid (501) == NULL

12/04/12 8: 37: 09.400 PM coreserviciosd: _scserver_ServerCheckin: error de validación de uid del cliente; getpwuid (501) == NULL

Todavía no estoy seguro de qué lo está causando, pero pensé que compartiría estos diagnósticos.

Estoy en una MacBook Pro de mediados de 2009 con 10.7.3 instalado.

Austin
fuente
1

Vea si los permisos del archivo /etc/passwdestán configurados así:

-rwxr--r--

porque lee el nombre de usuario del passwdarchivo.

Christian Leggiero
fuente
Era 644, no 744. Establecer a 744 no ayudó.
ejmin
0

Resolví el problema usando iterm => preferencias => URL_handler y conectando whoami a mi nombre de usuario .. después de reiniciar en iterm, el problema ya no existía

vrwired
fuente
0

Tuve este mismo problema desconcertante hoy (Lion 10.7.5) y lo dscacheutil -flushcachearregló para mí, como se sugiere en un comentario en algún blog .

lhf
fuente
-1

Mi problema es el permiso en el archivo passwd, el permiso anterior es -rw ------- 1 root root 1280 9 de junio 15:41 passwd Usé el comando "chmod a + r / etc / passwd" y ahora todos los usuarios Puede leer este archivo. -rw-r - r-- 1 raíz raíz 1280 9 de junio 15:41 passwd Cierre la sesión del usuario e inténtelo. =)

Luiz Oliveira
fuente
-2

Vaya a la carpeta de inicio en Terminal y ejecute . ~/.bashrc.

¡¡Funciona!!

VRS
fuente
55
No creo que volver a comprar .bashrc resuelva el problema aquí ...
nohillside