Ketika saya membuka Terminal, saya mendapatkan prompt "Saya tidak punya nama!"

40

Tiba-tiba, pagi ini, saya membuka jendela Terminal dan saya mendapatkan ini:

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

** Saya bukanlah sebuah angka! Saya seorang manusia! **

Apa yang menyebabkannya? Adakah yang tahu apa yang harus saya lakukan untuk mendapatkan kembali nama saya?

Saya kira ada dua masalah di sini, satu adalah bahwa nama host saya tidak terdefinisi, yang lain adalah bahwa whoami melaporkan nama saya sebagai nomor.

ipd
sumber
2
BTW - bagi yang berminat, saya logout (command-shift-Q) dan setelah masuk kembali dan me-restart terminal, masalahnya hilang! Masih tertarik pada apa yang mungkin menyebabkan ini, jika tidak ada alasan lain selain untuk memajukan keadaan McKnowledge saya.
ipd
Apakah Anda bertanya mengapa nama host komputer ditampilkan pada prompt atau apakah Anda bertanya mengapa komputer itu bernama "Saya tidak punya nama!"?
Chris Page
Saya bertanya mengapa, tiba-tiba, bash prompt saya menampilkan "Saya tidak punya nama!" daripada nama host. Mungkin ini hanya kebetulan yang whoamijuga melaporkan nomor saya daripada nama saya.
ipd
1
Apa yang dilakukan hostnamedan id -pdikembalikan?
CajunLuke
sistem saya telah kembali normal. Saran yang bagus, jika itu terjadi lagi saya akan memeriksa keduanya!
ipd

Jawaban:

25

Sesuatu dalam memori rusak, dan pemetaan antara ID pengguna Anda (502) dan nama pengguna Anda (ipd) hilang. Saya telah melihat itu terjadi (biasanya ketika saya secara manual membunuh proses sistem yang digantung), meskipun saya tidak yakin apa yang menyebabkannya. launchdmungkin?

Karena pemetaan itu hilang, whoamitidak dapat mengonversi ID Anda menjadi nama pengguna sehingga mengembalikan ID tersebut, dan prompt Anda meminta default untuk "Saya tidak punya nama!" pesan karena Anda secara efektif tidak memiliki nama.

Logout dan kembali mungkin fixit, tetapi memulai kembali adalah cara terbaik (seperti yang Anda temukan).

Pada dasarnya, ini adalah gejala dari masalah lain, dan bukan masalah itu sendiri.

Bobson
sumber
1
Saya berharap saya bisa menjelaskan bagaimana pemetaan itu hilang, tetapi saya tidak pernah menggali cukup dalam untuk mengetahuinya.
Bobson
Ini baru saja terjadi pada saya lagi. Saya telah membunuh launchd, dan saya sekarang 501, yang mencegah saya menggunakan sudo. Saya masih tidak tahu apakah launchdakan me-restart sendiri, atau apa lagi yang menjalankannya akan mempengaruhi.
Bobson
Untuk apa nilainya, saya hanya menjalankan ini pada mesin Linux, jadi saya kira akar penyebabnya adalah sesuatu di bash. strings /bin/bash | grep "I have"
Digital Trauma
Ini juga terjadi pada kotak pasir, di mana umum tidak memiliki whoami atau bahkan dependensinya, cobalah which whoamiuntuk melihat di mana itu, dalam kasus saya, saya ldd /usr/bin/whoamimenemukan dependensi, melihat apakah Anda memilikinya dan atau apakah rusak.
RomuloPBenedetti
12

Saya melihat ini adalah utas lama, tetapi di sini adalah solusi untuk masalah ini (tanpa me-restart seluruh komputer).

Masalahnya ada di opendirectoryddaemon dan tanggal laporan paling awal dari awal 2011. Restart daemon (beralih pengguna dengan admin satu melalui Fast User Switching) memperbaiki masalah.

Saat menulis jawaban ini, saya menemukan pertanyaan serupa di Serverfault di sini , yang juga mencakup jawaban saya.

mspasov
sumber
Ini tidak berhasil untuk saya. Gejala saya mungkin sedikit berbeda. Saya memiliki sejumlah jendela terminal terbuka, dan setiap jendela terminal yang ada telah kehilangan pemetaan nama pengguna, tetapi setiap jendela baru tampaknya memilikinya tanpa masalah. Membunuh (alias memulai kembali) opendirectoryd tidak membantu. Di terminal "gagal", saya juga tidak ada pemetaan grup untuk com.apple.sharepoint.group.2dan access_bpf, tetapi bukan grup yang terdaftar di /etc/group. Menurut saya proses terminal lama (dan siapa yang tahu apa lagi) telah kehilangan akses ke opendirectoryd, bukan karena opendirectoryd sendiri telah gagal.
ghoti
3

Ini terjadi pada saya secara acak ketika saya melanjutkan dari siaga (yaitu membuka laptop saya). Logout atau reboot adalah satu-satunya cara bagi saya untuk memperbaikinya. Saya tidak tahu persis apa penyebabnya. Saat saya mengetik itu sedang terjadi sekarang. Seperti komentar di posting asli bertanya, saya berlari id -pdan jatuh. (Laporan kerusakan: http://pastebin.com/nmFFQELq )

Perintah konsol:

whoami - mengembalikan 501

id -p - crash

cat /etc/passwd - pengguna saya tidak ada dalam dokumen.

Upaya ssh gagal dengan kesalahan:

Anda tidak ada, pergi!

Saya juga memeriksa konsol, dari bangun, sekelompok kesalahan "Socket tidak terhubung" acak muncul (yang saya pikir mungkin normal, karena nirkabel tidak terhubung langsung) dari program seperti Dropbox. Kesalahan yang menarik muncul:

4/12/12 8: 37: 09.045 PM coreservicesd: _scserver_ServerCheckin: kegagalan validasi pengguna uid; getpwuid (501) == NULL

4/12/12 8: 37: 09.400 PM coreservicesd: _scserver_ServerCheckin: kegagalan validasi pengguna uid; getpwuid (501) == NULL

Masih tidak yakin apa penyebabnya, tetapi saya pikir saya akan membagikan diagnostik ini.

Saya menggunakan Mid 2009 MacBook Pro dengan 10.7.3 diinstal.

Austin
sumber
1

Lihat apakah izin file /etc/passwddiatur seperti ini:

-rwxr--r--

karena membaca nama pengguna dari passwdfile.

Christian Leggiero
sumber
Itu 644, bukan 744. Pengaturan ke 744 tidak membantu.
ejmin
0

Saya memecahkan masalah dengan menggunakan iterm => preferensi => URL_handler dan menghubungkan whoami ke nama pengguna saya .. setelah restart di iterm, masalahnya tidak ada lagi

vrwired
sumber
0

Saya memiliki masalah membingungkan yang sama hari ini (Lion 10.7.5) dan dscacheutil -flushcachememperbaikinya untuk saya, seperti yang disarankan dalam komentar di beberapa blog .

lhf
sumber
-1

Masalah saya adalah izin dalam arsip passwd, Izin lama adalah -rw ------- 1 root root 1280 9 Juni 9 15:41 passwd Saya menggunakan perintah "chmod a + r / etc / passwd" dan sekarang semua pengguna dapat membaca arsip ini. -rw-r - r-- 1 root root 1280 9 Juni 15:41 passwd Logout pengguna dan coba. =)

Luiz Oliveira
sumber
-2

Buka folder rumah di Terminal dan jalankan . ~/.bashrc.

Berhasil!!

VRS
sumber
5
Saya tidak berpikir re-sourcing .bashrc memecahkan masalah di sini ...
nohillside