Wenn ich das Terminal öffne, erhalte ich die Meldung "Ich habe keinen Namen!" prompt

Heute Morgen öffne ich plötzlich ein Terminalfenster und erhalte 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, es gibt hier zwei Probleme, eines ist, dass mein Hostname nicht definiert ist, das andere ist, dass whoami meinen Namen als Nummer meldet.

Übrigens - für diejenigen, die daran interessiert sind, ich habe mich abgemeldet (Befehl-Umschalt-Q) und nachdem ich mich wieder angemeldet und das Terminal neu gestartet habe, ist das Problem weg! Ich bin immer noch daran interessiert, was dies verursacht haben könnte, wenn auch aus keinem anderen Grund, als den Stand meines McWissens zu verbessern.
Fragen Sie, warum der Hostname des Computers in der Eingabeaufforderung angezeigt wird, oder fragen Sie, warum der Computer „Ich habe keinen Namen!“ heißt?
Ich frage mich, warum meine Bash-Eingabeaufforderung plötzlich "Ich habe keinen Namen!" eher als ein Hostname. Vielleicht ist es nur ein Zufall, dass whoamiauch meine Nummer statt meines Namens gemeldet wird.
Was tun hostnameund id -pzurück?
Mein System hat sich wieder normalisiert. Guter Vorschlag, aber wenn es wieder passiert, werde ich sie beide überprüfen!
Das ist mir in den letzten Wochen zweimal passiert. Letzte Nacht habe ich „Festplatte überprüfen“ über das Festplattendienstprogramm ausgeführt und es wurden Fehler gefunden. Ich habe die Reparaturdiskette anhand ihrer Anweisungen erstellt. Vielleicht möchten Sie das auch versuchen. Es kann sein, dass unsere Festplatten schlecht werden.
Passiert mir nach dem Aufwachen - 10.7.3 und 10.7.4. Fast 13 "MBP 2010, 8 GB RAM und Intel SSD. Nur ein Neustart behebt dieses Problem. Scheint ein Softwareproblem zu sein.
Dasselbe passierte mit meinem Macbook Air 2008, 8 GB, OSX 10.7.5. Ich habe Programme nicht gewaltsam zum Absturz gebracht: nur manchmal Libreoffice, das in den Zustand „keine Antwort“ geraten ist. Neustart hilft.
Ich habe diesen Fehler gesehen, als ich versucht habe, einen Branch zu Github zu pushen. Es hat eine Weile gedauert, bis ich die Grundursache herausgefunden habe - ich habe sie nur bekommen, als ich versucht habe zu überprüfen, ob mein öffentlicher Schlüssel mit dem übereinstimmt, was auf GH gespeichert ist.

Antworten (10)

Etwas im Speicher wurde beschädigt und die Zuordnung zwischen Ihrer Benutzer-ID (502) und Ihrem Benutzernamen (ipd) ging verloren. Ich habe gesehen, wie es passiert ist (normalerweise, wenn ich hängende 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 umgewandelt werden, sodass die ID zurückgegeben wird, und Ihre Eingabeaufforderung lautet standardmäßig "Ich habe keinen Namen!" Nachricht, weil Sie praktisch keinen Namen haben.

Abmelden und erneutes Anmelden kann das Problem beheben, aber ein Neustart ist der beste Weg (wie Sie festgestellt haben).

Im Grunde ist es ein Symptom für ein anderes Problem und kein Problem an und für sich.

Ich wünschte, ich könnte erklären, wie diese Zuordnung verloren geht, aber ich habe nie tief genug gegraben, um es herauszufinden.
Das ist mir gerade wieder passiert. Ich hatte getötet launchd, und ich war es jetzt 501, was mich daran hinderte , zu konsumieren sudo. Ich weiß immer noch nicht, ob launchdes sich selbst neu starten wird oder was sich sonst noch auswirkt, wenn es nicht ausgeführt wird.
Für das, was es wert ist, bin ich gerade auf einem Linux-Rechner darauf gestoßen, also würde ich vermuten, dass die Hauptursache etwas in Bash ist.strings /bin/bash | grep "I have"
Dies passiert auch auf Sandboxes, wo es üblich ist, whoami oder sogar seine Abhängigkeiten nicht zu haben, versuchen which whoamiSie zu sehen, wo es ist, in meinem Fall habe ich es getan ldd /usr/bin/whoami, um Abhängigkeiten zu finden, sehen Sie, ob Sie sie haben und oder ob sie beschädigt sind.

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 und die frühesten Berichte stammen von Anfang 2011. Ein Neustart des Daemons (Wechseln von Benutzern mit einem Admin-Benutzer über Fast User Switching) behebt das Problem.

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

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 (auch bekannt als Neustarten) von opendirectoryd hat nicht geholfen. In den "fehlgeschlagenen" Terminals fehlt mir auch die Gruppenzuordnung für com.apple.sharepoint.group.2und access_bpf, aber nicht die in aufgelisteten Gruppen /etc/group. Mir scheint, dass alte Terminalprozesse (und wer weiß was noch) den Zugriff auf opendirectoryd verloren haben, nicht dass opendirectoryd selbst ausgefallen ist.

Dies passiert mir zufällig, wenn ich aus dem Standby wieder aufnehme (dh meinen Laptop öffne). Abmelden oder Neustart ist für mich die einzige Möglichkeit, das Problem zu beheben. Ich weiß nicht genau, was es verursacht. Während ich schreibe, passiert es gerade. Wie der Kommentar im ursprünglichen Beitrag fragte, rannte 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 ist nicht im Dokument.

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

Du existierst nicht, geh weg!

Ich habe auch die Konsole überprüft, nach dem Aufwachen erscheinen eine Reihe zufälliger „Socket not connected“-Fehler (was meiner Meinung nach normal sein könnte, da die drahtlose Verbindung nicht sofort hergestellt wird) von Programmen wie Dropbox. Allerdings taucht ein interessanter Fehler 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

Ich bin mir immer noch nicht sicher, was es verursacht, aber ich dachte, ich würde diese Diagnosen teilen.

Ich verwende ein MacBook Pro von Mitte 2009, auf dem 10.7.3 installiert ist.

Prüfen Sie, ob die Berechtigungen der Datei /etc/passwdwie folgt eingerichtet sind:

-rwxr--r--

weil es den Benutzernamen aus der passwdDatei liest.

Es war 644, nicht 744. Die Einstellung auf 744 hat nicht geholfen.

Ich hatte heute dasselbe verwirrende Problem (Lion 10.7.5) und dscacheutil -flushcachehabe es für mich behoben, wie in einem Kommentar in einem Blog vorgeschlagen .

Ich habe das Problem gelöst, indem ich iterm=>preferences=>URL_handler verwendet und whoami mit meinem Benutzernamen verbunden habe. Nach dem Neustart auf iterm war das Problem nicht mehr vorhanden

Stellen Sie sicher, dass Ihre /etc/passwd-Dateiberechtigungen 644 sind

chmod 644 /etc/passwd

Melden Sie sich nach dem Ändern der Berechtigungen ab und wieder an

Es ist interessant, dass andere Antworten besagen, dass 644/744-Berechtigungen nicht relevant oder vollständig sind, um dies zu lösen. Gibt es einen Hinweis darauf, was die richtigen Genehmigungen sein sollten und wann davon abgewichen werden sollte?

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 jetzt alle Benutzer kann dieses Archiv lesen. -rw-r--r-- 1 root root 1280 Jun 9 15:41 passwd Melden Sie den Benutzer ab und versuchen Sie es. =)

Ich hatte dieses seltsame Problem auf meinem Ubuntu, als ich einen neuen Benutzer erstellte

Ich habe die Datei /etc/passwd überprüft

`cat /etc/passwd`

Ich habe gesehen, dass meine Aufzeichnung die folgenden Details hatte -

`ajit:x:1002:1002::/home/ajitp:/bin/sh`

Ich habe es wie folgt geändert -

`ajit:x:1002:1002::/home/ajitp:/bin/bash`
Damit ist die Frage nicht beantwortet. Sobald Sie über einen ausreichenden Ruf verfügen , können Sie jeden Beitrag kommentieren . Geben Sie stattdessen Antworten an, die keine Klärung durch den Fragesteller erfordern . - Aus Bewertung

Gehen Sie in Terminal zum Home-Ordner und führen Sie . ~/.bashrc.

Es klappt!!

Ich glaube nicht, dass die Neubeschaffung von .bashrc das Problem hier löst ...