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.
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. launchd
vielleicht?
Da diese Zuordnung verloren geht, whoami
kann 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.
launchd
, und ich war es jetzt 501
, was mich daran hinderte , zu konsumieren sudo
. Ich weiß immer noch nicht, ob launchd
es sich selbst neu starten wird oder was sich sonst noch auswirkt, wenn es nicht ausgeführt wird.strings /bin/bash | grep "I have"
which whoami
Sie 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 opendirectoryd
Daemon 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.
com.apple.sharepoint.group.2
und 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 -p
und 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/passwd
wie folgt eingerichtet sind:
-rwxr--r--
weil es den Benutzernamen aus der passwd
Datei liest.
Ich hatte heute dasselbe verwirrende Problem (Lion 10.7.5) und dscacheutil -flushcache
habe 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
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`
Gehen Sie in Terminal zum Home-Ordner und führen Sie . ~/.bashrc
.
Es klappt!!
ipd
Chris Page
ipd
whoami
auch meine Nummer statt meines Namens gemeldet wird.Cajunluke
hostname
undid -p
zurück?ipd
Daniel Lyon
mspasov
Léo Léopold Hertz 준영
rbanffy