Nagle dziś rano otwieram okno terminalu i otrzymuję:
I have no name!@macbook:~$ whoami
502
** Nie jestem numerem! Jestem istotą ludzką! **
Co daje? Czy ktoś wie, co muszę zrobić, aby odzyskać moje imię?
Przypuszczam, że są tutaj dwa problemy, jeden polega na tym, że moja nazwa hosta jest niezdefiniowana, a drugi polega na tym, że whoami zgłasza moje imię jako liczbę.
whoami
podaje także mój numer, a nie moje imię.hostname
iid -p
zwrócić?Odpowiedzi:
Coś w pamięci uległo uszkodzeniu, a mapowanie między identyfikatorem użytkownika (502) a nazwą użytkownika (ipd) zostało utracone. Widziałem, jak to się dzieje (zwykle kiedy ręcznie zabiłem zawieszone procesy systemowe), chociaż nie jestem pewien, co dokładnie to powoduje.
launchd
może?Ponieważ mapowanie zostało utracone,
whoami
nie można przekonwertować identyfikatora na nazwę użytkownika, dlatego zwraca identyfikator, a monit domyślnie brzmi „Nie mam nazwy!” wiadomość, ponieważ faktycznie nie masz nazwy.Wylogowanie i ponowne zalogowanie może być naprawione, ale ponowne uruchomienie jest najlepszym sposobem (jak odkryłeś).
Zasadniczo jest to objaw innego problemu, a nie sam w sobie problem.
źródło
launchd
, a teraz byłem501
, co uniemożliwiło mi użyciesudo
. Nadal nie wiem, czylaunchd
zrestartuje się samo, czy to, co jeszcze nie wpłynie na jego uruchomienie.strings /bin/bash | grep "I have"
which whoami
zobaczyć, gdzie to jest, w moim przypadku szukałemldd /usr/bin/whoami
zależności, czy je masz i czy są uszkodzone.Widzę, że to stary wątek, ale oto rozwiązanie tego problemu (bez ponownego uruchamiania całego komputera).
Problem tkwi w
opendirectoryd
demonie, a najwcześniejsze raporty pochodzą z początku 2011 r. Ponowne uruchomienie demona (przełączanie użytkowników z administracyjnym za pomocą szybkiego przełączania użytkowników) rozwiązuje problem.Pisząc tę odpowiedź, znalazłem podobne pytanie w Serverfault tutaj , które obejmuje również moją odpowiedź.
źródło
com.apple.sharepoint.group.2
iaccess_bpf
, ale nie grup wymienionych w/etc/group
. Wydaje mi się, że stare procesy terminalowe (i kto wie, co jeszcze) straciły dostęp do opendirectoryd, a nie, że sam opendirectoryd zawiódł.Zdarza mi się to losowo po wznowieniu pracy z trybu gotowości (tj. Po otwarciu laptopa). Wylogowanie lub ponowne uruchomienie to jedyny sposób, aby to naprawić. Nie wiem dokładnie, co to powoduje. Kiedy piszę, dzieje się teraz. Jak powiedział komentarz w oryginalnym poście, pobiegłem
id -p
i się zawiesił. (Raport o awarii: http://pastebin.com/nmFFQELq )Polecenia konsoli:
whoami
- zwraca 501id -p
- awariecat /etc/passwd
- mojego użytkownika nie ma w dokumencie.Każda próba ssh kończy się niepowodzeniem z błędem:
Sprawdziłem także konsolę, po przebudzeniu pojawia się losowy błąd „Socket not connected” (co moim zdaniem może być normalne, ponieważ sieć bezprzewodowa nie łączy się natychmiast) z programów takich jak Dropbox. Pojawia się jednak interesujący błąd:
Nadal nie jestem pewien, co go powoduje, ale pomyślałem, że podzielę się tymi informacjami diagnostycznymi.
Jestem na MacBooku Pro z połowy 2009 roku z zainstalowanym 10.7.3.
źródło
Sprawdź, czy uprawnienia do pliku
/etc/passwd
są skonfigurowane w następujący sposób:ponieważ odczytuje nazwę użytkownika z
passwd
pliku.źródło
Rozwiązałem problem, używając iterm => preferencje => moduł obsługi adresów URL i łącząc whoami z moją nazwą użytkownika .. po ponownym uruchomieniu na iterm problem nie był już
źródło
Miałem dzisiaj ten sam zdumiewający problem (Lion 10.7.5) i
dscacheutil -flushcache
naprawiłem go, jak zasugerowano w komentarzu na blogu .źródło
Moim problemem jest pozwolenie w archiwum passwd, stare uprawnienie to -rw ------- 1 root root 1280 Jun 9 15:41 passwd Użyłem polecenia „chmod a + r / etc / passwd” i teraz wszyscy użytkownicy mogę przeczytać to archiwum. -rw-r - r-- 1 root root 1280 Jun 9 15:41 passwd Wyloguj użytkownika i spróbuj. =)
źródło
Przejdź do folderu domowego w terminalu i uruchom
. ~/.bashrc
.To działa!!
źródło