Quando apro il Terminale, ricevo il messaggio "Non ho un nome!"


40

Improvvisamente, questa mattina, apro una finestra del Terminale e ottengo questo:

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

** Io non sono un numero! Sono un essere umano! **

Cosa dà? Qualcuno sa cosa devo fare per riavere il mio nome?

Suppongo che qui ci siano due problemi, uno è che il mio nome host non è definito, l'altro è che whoami riporta il mio nome come numero.


2
A proposito: per chi fosse interessato, mi sono disconnesso (command-shift-Q) e dopo aver effettuato il login e il riavvio del terminale, il problema è sparito! Sono ancora interessato a ciò che potrebbe aver causato questo, se non altro per far avanzare lo stato della mia McKnowledge.
ipd

Stai chiedendo perché il nome host del computer viene visualizzato nel prompt o stai chiedendo perché il computer è denominato "Non ho un nome!"?
Chris Page

Sto chiedendo perché, all'improvviso, il mio prompt di bash visualizza "Non ho un nome!" piuttosto che un nome host. Forse è solo una coincidenza che whoamiriporta anche il mio numero piuttosto che il mio nome.
IPD

1
Cosa fanno hostnamee id -pritornano?
CajunLuke

il mio sistema è tornato alla normalità. Un buon consiglio però, se succede di nuovo li controllerò entrambi!
ipd

Risposte:


25

Qualcosa nella memoria è stato danneggiato e la mappatura tra userID (502) e username (ipd) è andata persa. L'ho visto accadere (di solito quando ho ucciso manualmente i processi di sistema sospesi), anche se non sono sicuro di cosa sia la causa. launchdpuò essere?

Poiché tale mappatura viene persa, whoaminon è possibile convertire l'ID in un nome utente, quindi restituisce l'ID e il prompt viene impostato automaticamente su "Non ho un nome!" messaggio perché in effetti non hai un nome.

Disconnettersi e riconnettersi potrebbe risolvere il problema, ma il riavvio è il modo migliore (come hai scoperto).

Fondamentalmente, è un sintomo di un altro problema, e non un problema in sé e per sé.


1
Vorrei poter spiegare come si perde quella mappatura, ma non ho mai scavato abbastanza in profondità per capirlo.
Bobson,

Mi è appena successo di nuovo. Avevo ucciso launchde lo ero adesso 501, il che mi ha impedito di usare sudo. Non so ancora se launchdsi riavvierà da solo, o cos'altro influirà.
Bobson,

Per quello che vale, mi sono appena imbattuto in questo su una macchina Linux, quindi immagino che la causa principale sia qualcosa di bash. strings /bin/bash | grep "I have"
Digital Trauma,

Questo succede anche sui sandbox, dove è comune non avere whoami o anche le sue dipendenze, provare which whoamia vedere dove si trova, nel mio caso ho ldd /usr/bin/whoamitrovato delle dipendenze, vedere se le hai e o se sono danneggiate.
RomuloPBenedetti il

12

Vedo che è un vecchio thread, ma ecco la soluzione a questo problema (senza riavviare l'intero computer).

Il problema si trova nel opendirectoryddemone e la prima data dei rapporti è dall'inizio del 2011. Il riavvio del daemon (passaggio da un utente all'altro tramite Cambio rapido utente) consente di risolvere il problema.

Mentre scrivo questa risposta, ho trovato una domanda simile nel Serverfault qui , che copre anche la mia risposta.


Questo non ha funzionato per me. I miei sintomi sono forse leggermente diversi. Ho un certo numero di finestre del terminale aperte e ogni finestra del terminale esistente ha perso la mappatura del nome utente, ma ogni nuova finestra sembra averla senza problemi. L'uccisione (ovvero il riavvio) di opendirectoryd non ha aiutato. Nei terminali "falliti", mi manca anche la mappatura dei gruppi per com.apple.sharepoint.group.2e access_bpf, ma non i gruppi elencati in /etc/group. Mi sembra che i vecchi processi terminali (e chissà cos'altro) abbiano perso l'accesso all'opendirectoryd, non che l'opendirectoryd stesso abbia fallito.
ghoti,

3

Questo succede a me in modo casuale quando riprendo dallo standby (ovvero aprendo il mio laptop). Disconnettersi o riavviare è l'unico modo per risolverlo. Non so esattamente cosa lo causi. Mentre scrivo, sta succedendo proprio ora. Come richiesto dal commento nel post originale, ho corso id -pe si è bloccato. (Rapporto di crash: http://pastebin.com/nmFFQELq )

Comandi della console:

whoami - restituisce 501

id -p - si blocca

cat /etc/passwd - il mio utente non è nel documento.

Qualsiasi tentativo ssh fallisce con l'errore:

Tu non esisti, vai via!

Ho anche controllato la console, dal risveglio, appaiono un sacco di errori casuali "Socket non connesso" (che penso potrebbe essere normale, dato che il wireless non si connette immediatamente) da programmi come Dropbox. Un errore interessante appare però:

12/04/12 8: 37: 09.045 PM coreservicesd: _scserver_ServerCheckin: errore di convalida uid client; getpwuid (501) == NULL

12/04/12 8: 37: 09.400 PM coreservicesd: _scserver_ServerCheckin: errore di convalida dell'id client; getpwuid (501) == NULL

Non sono ancora sicuro di cosa lo stia causando, ma ho pensato di condividere questi dati diagnostici.

Sono su un MacBook Pro di metà 2009 con installato 10.7.3.


1

Verifica se le autorizzazioni del file /etc/passwdsono impostate in questo modo:

-rwxr--r--

perché legge il nome utente dal passwdfile.


Era 644, non 744. L'impostazione su 744 non ha aiutato.
ejmin

0

Ho risolto il problema utilizzando iterm => preferenze => URL_handler e collegando whoami al mio nome utente .. dopo il riavvio su iterm, il problema non era più


0

Ho avuto questo stesso problema sconcertante oggi (Lion 10.7.5) e l' dscacheutil -flushcacheho risolto per me, come suggerito in un commento in alcuni blog .


-1

Il mio problema è il permesso nell'archivio passwd, Il vecchio permesso è -rw ------- 1 root root 1280 9 giu 15: 15:41 passwd Ho usato il comando "chmod a + r / etc / passwd" e ora tutti gli utenti può leggere questo archivio. -rw-r - r-- 1 root root 1280 9 giu 15: 15:41 passwd Disconnetti l'utente e prova. =)


-2

Vai alla cartella principale in Terminale ed esegui . ~/.bashrc.

Funziona!!


5
Non credo che il re-sourcing .bashrc risolva il problema qui ...
nohillside
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.