เมื่อฉันเปิด Terminal ฉันจะได้รับพรอมต์“ ฉันไม่มีชื่อ!”


39

ทันใดนั้นเช้านี้ฉันเปิดหน้าต่างเทอร์มินัลและฉันได้รับสิ่งนี้:

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

** ฉันไม่ใช่ตัวเลข! ฉันเป็นมนุษย์! **

สิ่งที่ช่วยให้? ใครรู้ว่าฉันต้องทำอย่างไรเพื่อให้ชื่อของฉันกลับมา?

ฉันคิดว่ามีสองปัญหาที่นี่หนึ่งคือชื่อโฮสต์ของฉันไม่ได้กำหนดอื่น ๆ คือ whoami รายงานชื่อของฉันเป็นตัวเลข


2
BTW - สำหรับผู้ที่สนใจฉันออกจากระบบ (command-shift-Q) และหลังจากเข้าสู่ระบบและรีสตาร์ทเครื่องปัญหาก็หายไป! ยังคงสนใจในสิ่งที่อาจทำให้เกิดสิ่งนี้หากไม่มีเหตุผลอื่นนอกจากเพื่อพัฒนาสถานะของ McKnowledge ของฉัน
ipd

คุณถามว่าทำไมชื่อโฮสต์ของคอมพิวเตอร์จึงปรากฏในพรอมต์หรือคุณถามว่าเพราะเหตุใดคอมพิวเตอร์ชื่อ“ ฉันไม่มีชื่อ!”
Chris หน้า

ฉันถามว่าทำไมทันใดนั้น bash prompt ของฉันก็แสดงว่า "ฉันไม่มีชื่อ!" มากกว่าชื่อโฮสต์ บางทีมันเป็นเรื่องบังเอิญที่whoamiรายงานหมายเลขของฉันมากกว่าชื่อของฉันด้วย
ipd

1
ทำอะไรhostnameและid -pส่งคืน
CajunLuke

ระบบของฉันกลับสู่ปกติ แม้ว่าคำแนะนำที่ดีถ้ามันเกิดขึ้นอีกครั้งฉันจะตรวจสอบพวกเขาทั้งสอง!
ipd

คำตอบ:


24

มีบางอย่างในหน่วยความจำเสียหายและการแมประหว่าง userID ของคุณ (502) และชื่อผู้ใช้ (ipd) ของคุณสูญหาย ฉันเคยเห็นมันเกิดขึ้น (โดยปกติเมื่อฉันฆ่ากระบวนการระบบที่แขวนด้วยตนเอง) แม้ว่าฉันจะไม่แน่ใจว่าอะไรเป็นสาเหตุ launchdอาจจะ?

เนื่องจากการจับคู่นั้นหายไปwhoamiไม่สามารถแปลง ID ของคุณเป็นชื่อผู้ใช้ดังนั้นส่งคืน ID และค่าเริ่มต้นของคุณที่ให้เป็น "ฉันไม่มีชื่อ!" ข้อความเพราะคุณไม่มีชื่อ

การออกจากระบบและย้อนกลับอาจแก้ไขได้ แต่การรีสตาร์ทเป็นวิธีที่ดีที่สุด (ตามที่คุณค้นพบ)

โดยทั่วไปมันเป็นอาการของปัญหาอื่นและไม่ใช่ปัญหาในตัวของมันเอง


1
ฉันหวังว่าฉันจะสามารถอธิบายได้ว่าแผนที่นั้นหายไปได้อย่างไร แต่ฉันไม่เคยขุดให้ลึกพอที่จะเข้าใจได้
Bobson

นี่เพิ่งเกิดขึ้นกับฉันอีกครั้ง ฉันเคยฆ่าlaunchdและผมตอนนี้ซึ่งทำให้ฉันจากการใช้501 sudoฉันยังไม่ทราบว่าlaunchdจะรีสตาร์ทตัวเองหรืออะไรที่ไม่มีการทำงานจะส่งผลกระทบ
Bobson

สำหรับสิ่งที่คุ้มค่าฉันเพิ่งพบเจอกับสิ่งนี้บนเครื่อง Linux ดังนั้นฉันจะเดาว่าสาเหตุที่แท้จริงคือสิ่งที่ไม่ดี strings /bin/bash | grep "I have"
บาดเจ็บทางดิจิทัล

สิ่งนี้เกิดขึ้นในกล่องทรายซึ่งเป็นเรื่องปกติที่ไม่มี whoami หรือแม้แต่การพึ่งพาพยายามที่which whoamiจะดูว่ามันอยู่ที่ไหนในกรณีของฉันฉันได้ldd /usr/bin/whoamiค้นหาการขึ้นต่อกันดูว่าคุณมีพวกมันหรือไม่
RomuloPBenedetti

11

ฉันเห็นว่ามันเป็นเธรดเก่า แต่นี่เป็นวิธีแก้ปัญหานี้ (โดยไม่ต้องรีสตาร์ทคอมพิวเตอร์ทั้งหมด)

ปัญหาอยู่ในopendirectoryddaemon และวันที่รายงานที่เร็วที่สุดนับตั้งแต่ต้นปี 2011 การรีสตาร์ท daemon (การสลับผู้ใช้กับผู้ดูแลระบบผ่านการสลับผู้ใช้อย่างเร็ว) จะช่วยแก้ไขปัญหาได้

ในขณะที่เขียนคำตอบนี้ฉันพบคำถามที่คล้ายกันใน Serverfault ที่นี่ซึ่งครอบคลุมคำตอบของฉันด้วย


สิ่งนี้ไม่ได้ผลสำหรับฉัน อาการของฉันอาจแตกต่างกันเล็กน้อย ฉันเปิดหน้าต่างเทอร์มินัลจำนวนหนึ่งและทุกหน้าต่างเทอร์มินัลที่มีอยู่นั้นสูญเสียการจับคู่ชื่อผู้ใช้ แต่หน้าต่างใหม่ทุกหน้าต่างดูเหมือนว่าจะไม่มีปัญหา การฆ่า (การเริ่มระบบใหม่) opendirectoryd ไม่ได้ช่วยอะไร ใน "ล้มเหลว" ขั้วนอกจากนี้ผมยังขาดหายไปทำแผนที่กลุ่มcom.apple.sharepoint.group.2และแต่ไม่ได้ระบุไว้ในกลุ่มaccess_bpf /etc/groupดูเหมือนว่ากระบวนการเก่าของเทอร์มินัล (และใครจะรู้ว่ามีอะไรอีก) ที่สูญเสียการเข้าถึง opendirectoryd ไม่ใช่ opendirectoryd นั้นเองที่ล้มเหลว
ghoti

3

สิ่งนี้เกิดขึ้นกับฉันแบบสุ่มเมื่อฉันดำเนินการต่อจากโหมดสแตนด์บาย (เช่นเปิดแล็ปท็อปของฉัน) การล็อกเอาต์หรือรีบูตเป็นวิธีเดียวที่ฉันจะแก้ไขได้ ฉันไม่รู้ว่าอะไรเป็นสาเหตุ ขณะที่ฉันพิมพ์มันกำลังเกิดขึ้นในขณะนี้ ในขณะที่ความคิดเห็นในโพสต์ต้นฉบับถามว่าฉันวิ่งid -pและมันล้มเหลว (รายงานข้อขัดข้อง: http://pastebin.com/nmFFQELq )

คำสั่งคอนโซล:

whoami - ส่งคืน 501

id -p - ล่ม

cat /etc/passwd - ผู้ใช้ของฉันไม่ได้อยู่ในเอกสาร

ความพยายาม ssh ใด ๆ ล้มเหลวโดยมีข้อผิดพลาด:

คุณไม่มีอยู่ไปให้พ้น!

ฉันยังตรวจสอบคอนโซลจากการตื่นขึ้นมามีข้อผิดพลาดแบบสุ่ม "ซ็อกเก็ตที่ไม่ได้เชื่อมต่อ" ปรากฏขึ้น (ซึ่งฉันคิดว่าอาจเป็นเรื่องปกติเนื่องจากไร้สายไม่ได้เชื่อมต่อทันที) จากโปรแกรมเช่น Dropbox ข้อผิดพลาดที่น่าสนใจปรากฏขึ้นแม้ว่า:

4/12/12 8: 37: 09.045 PM coreservicesd: _scserver_ServerCheckin: การตรวจสอบความถูกต้อง uid ของไคลเอ็นต์ล้มเหลว getpwuid (501) == NULL

4/12/12 8: 37: 09.400 PM coreservicesd: _scserver_ServerCheckin: การตรวจสอบความถูกต้อง uid ของไคลเอ็นต์ล้มเหลว getpwuid (501) == NULL

ยังไม่แน่ใจว่าเกิดจากอะไร แต่คิดว่าฉันจะแบ่งปันการวินิจฉัยเหล่านี้

ฉันใช้ MacBook Pro ระดับกลางปี ​​2009 พร้อมติดตั้ง 10.7.3


1

ดูว่าการ/etc/passwdตั้งค่าการอนุญาตของไฟล์เป็นดังนี้:

-rwxr--r--

เพราะมันอ่านชื่อผู้ใช้จากpasswdไฟล์


เป็น 644 ไม่ใช่ 744 การตั้งค่าเป็น 744 ไม่ได้ช่วย
ejmin

0

ฉันแก้ไขปัญหาโดยใช้ iterm => preferences => URL_handler และเชื่อมต่อ whoami กับชื่อผู้ใช้ของฉัน .. หลังจากรีสตาร์ทบน iterm ปัญหาก็ไม่มาก


0

ผมมีปัญหานี้งงเหมือนกันวันนี้ (Lion 10.7.5) และdscacheutil -flushcacheคงมันสำหรับฉันเป็นข้อเสนอแนะในความคิดเห็นในบล็อก


-1

ปัญหาของฉันคือการอนุญาตในไฟล์เก็บถาวร passwd สิทธิ์เก่าคือ -rw ------- 1 รูทราก 1280 มิ.ย. 9 15:41 รหัสผ่านฉันใช้คำสั่ง "chmod a + r / etc / passwd" และตอนนี้ผู้ใช้ทั้งหมด สามารถอ่านที่เก็บถาวรนี้ -rw-r - r-- 1 รูทราก 1280 มิ.ย. 9 15:41 passwd ออกจากระบบผู้ใช้แล้วลอง =)


-2

ไปที่โฟลเดอร์บ้านใน Terminal . ~/.bashrcและวิ่ง

มันได้ผล!!


5
ฉันไม่คิดว่าการจัดหา. bashrc อีกครั้งแก้ปัญหาได้ที่นี่ ...
nohillside
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.