Wenn ich das Terminal öffne, wird die Meldung "Ich habe keinen Namen!" Angezeigt

39

Plötzlich öffne ich heute Morgen ein Terminalfenster und bekomme Folgendes:

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

** Ich bin keine Nummer! Ich bin ein Mensch! **

Was gibt? Weiß jemand, was ich tun muss, um meinen Namen zurückzubekommen?

Ich nehme an, dass es hier zwei Probleme gibt, eines ist, dass mein Hostname undefiniert ist, das andere ist, dass whoami meinen Namen als Zahl meldet.

ipd
quelle
2
Übrigens - für Interessenten habe ich mich abgemeldet (Befehl-Umschalt-Q) und nach dem erneuten Anmelden und Neustarten des Terminals ist das Problem weg! Ich bin immer noch daran interessiert, was dies möglicherweise verursacht hat, wenn auch nur, um den Stand meines Wissens zu verbessern.
ipd
Fragen Sie, warum der Hostname des Computers in der Eingabeaufforderung angezeigt wird, oder warum der Computer den Namen "Ich habe keinen Namen!" Trägt?
Chris Seite
Ich frage, warum plötzlich meine Bash-Eingabeaufforderung "Ich habe keinen Namen!" eher als ein Hostname. Vielleicht ist es nur ein Zufall, der whoamiauch meine Nummer und nicht meinen Namen angibt.
ipd
1
Was tun hostnameund id -pzurückkehren?
CajunLuke
Mein System ist wieder normal. Guter Vorschlag aber, wenn es wieder vorkommt, überprüfe ich sie beide!
ipd

Antworten:

24

Etwas im Speicher wurde beschädigt und die Zuordnung zwischen Ihrer Benutzer-ID (502) und Ihrem Benutzernamen (ipd) ging verloren. Ich habe es gesehen (normalerweise, wenn ich Systemprozesse manuell beendet habe), obwohl ich nicht genau weiß, was es verursacht. launchdvielleicht?

Da diese Zuordnung verloren geht, whoamikann Ihre ID nicht in einen Benutzernamen konvertiert werden, sodass die ID zurückgegeben wird. Die Standardeinstellung für die Eingabeaufforderung lautet "Ich habe keinen Namen!". Nachricht, weil Sie effektiv keinen Namen haben.

Das Abmelden und erneutes Anmelden kann zu Problemen führen, aber wie Sie festgestellt haben, ist ein Neustart der beste Weg.

Grundsätzlich ist es ein Symptom für ein anderes Problem und kein Problem an sich.

Bobson
quelle
1
Ich wünschte, ich könnte erklären, wie dieses Mapping verloren geht, aber ich habe nie tief genug gegraben, um es herauszufinden.
Bobson
Das ist mir gerade wieder passiert. Ich hatte getötet launchdund war es jetzt 501, was mich am Benutzen hinderte sudo. Ich weiß immer noch nicht, ob launchdsich ein Neustart von selbst oder ein anderer Fehler auswirkt.
Bobson
Für was es sich lohnt, ich bin gerade auf einem Linux-Rechner darauf gestoßen, also würde ich vermuten, dass die Grundursache etwas in der Bash ist. strings /bin/bash | grep "I have"
Digitales Trauma
Dies geschieht auch in Sandkästen, in denen es häufig vorkommt, dass whoami oder auch seine Abhängigkeiten nicht vorhanden sind. which whoamiIn meinem Fall habe ich versucht ldd /usr/bin/whoami, Abhängigkeiten zu finden, um festzustellen, ob diese vorhanden und / oder beschädigt sind.
RomuloPBenedetti
11

Ich sehe, es ist ein alter Thread, aber hier ist die Lösung für dieses Problem (ohne den gesamten Computer neu zu starten).

Das Problem liegt im opendirectorydDaemon vor und die frühesten Berichte stammen aus dem Jahr 2011. Durch einen Neustart des Daemons (Benutzerwechsel mit einem Administrator über Fast User Switching) wird das Problem behoben.

Beim Schreiben dieser Antwort habe ich hier im Serverfehler eine ähnliche Frage gefunden , die auch meine Antwort abdeckt.

mspasov
quelle
Das hat bei mir nicht funktioniert. Meine Symptome sind vielleicht ein bisschen anders. Ich habe eine Reihe von Terminalfenstern geöffnet, und jedes vorhandene Terminalfenster hat seine Benutzernamenzuordnung verloren, aber jedes neue Fenster scheint es ohne Probleme zu haben. Das Beenden von opendirectoryd (auch bekannt als Neustart) hat nicht geholfen. In den "ausgefallenen" Terminals fehlen mir auch die Gruppenzuordnungen für com.apple.sharepoint.group.2und access_bpf, jedoch nicht die in aufgeführten Gruppen /etc/group. Mir scheint, dass alte Terminalprozesse (und wer weiß was noch) den Zugriff auf opendirectoryd verloren haben, nicht, dass opendirectoryd selbst fehlgeschlagen ist.
Ghoti
3

Das passiert mir zufällig, wenn ich aus dem Standby-Modus zurückkomme (dh meinen Laptop öffne). Ein Abmelden oder Neustarten ist die einzige Möglichkeit, das Problem zu beheben. Ich weiß nicht genau, woran es liegt. Während ich tippe, passiert es gerade. Wie der Kommentar im ursprünglichen Beitrag verlangte, lief ich id -pund es stürzte ab. (Absturzbericht: http://pastebin.com/nmFFQELq )

Konsolenbefehle:

whoami - gibt 501 zurück

id -p - stürzt ab

cat /etc/passwd - Mein Benutzer befindet sich nicht im Dokument.

Jeder SSH-Versuch schlägt mit folgendem Fehler fehl:

Du existierst nicht, geh weg!

Ich habe auch die Konsole überprüft, nachdem ich aufgewacht war, und eine Reihe von zufälligen "Socket not connected" -Fehlern von Programmen wie Dropbox aufgetreten sind (was ich für normal halte, da die drahtlose Verbindung nicht sofort hergestellt werden kann). Ein interessanter Fehler tritt jedoch auf:

4/12/12 8: 37: 09.045 PM coreservicesd: _scserver_ServerCheckin: Client-UID-Validierungsfehler; getpwuid (501) == NULL

4/12/12 8: 37: 09.400 PM coreservicesd: _scserver_ServerCheckin: Client-UID-Validierungsfehler; getpwuid (501) == NULL

Immer noch nicht sicher, was es verursacht, aber ich dachte, ich würde diese Diagnose teilen.

Ich bin auf einem MacBook Pro Mitte 2009 mit 10.7.3 installiert.

Austin
quelle
1

Überprüfen Sie, ob die Berechtigungen der Datei folgendermaßen /etc/passwdeingerichtet sind:

-rwxr--r--

weil es den Benutzernamen aus der passwdDatei liest .

Christian Leggiero
quelle
Es war 644, nicht 744. Die Einstellung auf 744 hat nicht geholfen.
29.
0

Ich habe das Problem mit iterm => preferences => URL_handler gelöst und whoami mit meinem Benutzernamen verbunden. Nach dem Neustart auf iterm gab es kein Problem mehr

vrwired
quelle
0

Ich hatte heute dasselbe verblüffende Problem (Lion 10.7.5) und habe dscacheutil -flushcachees für mich behoben, wie in einem Kommentar in einem Blog vorgeschlagen .

lhf
quelle
-1

Mein Problem ist die Berechtigung im passwd-Archiv. Die alte Berechtigung ist -rw ------- 1 root root 1280 Jun 9 15:41 passwd Ich habe den Befehl "chmod a + r / etc / passwd" verwendet und nun alle Benutzer kann dieses Archiv lesen. -rw-r - r-- 1 root root 1280 9. Juni 15:41 passwd Melden Sie den Benutzer ab und versuchen Sie es. =)

Luiz Oliveira
quelle
-2

Gehen Sie in den Home-Ordner im Terminal und führen Sie es aus . ~/.bashrc.

Es klappt!!

VRS
quelle
5
Ich glaube nicht, dass die erneute Beschaffung von .bashrc das Problem hier löst ...
nohillside