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


6

นาน ๆ ครั้ง (3 ครั้งในช่วงสี่สัปดาห์ที่ผ่านมา) ฉันไม่มีตัวตน ข้อความในชื่อคำถามนี้คือคำตอบของฉันเมื่อฉันพยายามเรียกใช้sshในขณะที่ไม่มีอยู่ นอกจากนี้เมื่อฉันไม่อยู่ถ้าฉันเรียกใช้idมันจะแสดงโพสต์ของฉันและไม่ใช่ชื่อผู้ใช้ของฉันเหมือนที่เป็นอยู่ และฉันไม่สามารถใช้sudo:

; sudo date
sudo: unknown uid: 13799

ทุกครั้งที่ปัญหาหายไปเองภายในหนึ่งชั่วโมงและฉันก็มีอยู่อีกครั้ง โชคดีที่ฉันมีหน้าต่างเทอร์มินัลที่มีรูทเชลล์อยู่รอบ ๆ เสมอดังนั้นฉันจึงยังสามารถกระตุ้นระบบได้ และฉันไม่เห็นสิ่งใดที่ผิดพลาดอย่างน้อยก็ไม่มีอะไรที่ฉันจะสามารถเข้าใจได้นอกจากบรรทัดเหล่านี้ใน/var/log/opendirectoryd.log:

2012-02-27 07:31:39.911 CET - 70535.351417.351419.351421 - Client: netstat, UID: 0, EUID: 0, GID: 0, EGID: 0
2012-02-27 07:31:39.911 CET - 70535.351417.351419.351421, Node: /Local/Default, Module: PlistFile - recordtype 'networks' attribute 'address' is not indexed: performance hit
2012-02-27 07:31:40.904 CET - 70539.351444.351448 - Client: launchd, UID: 13799, EUID: 13799, GID: 20, EGID: 20
2012-02-27 07:31:40.904 CET - 70539.351444.351448, Module: SystemCache - unable to find node 71E63E19-F41E-4AF3-89A0-F50FE5185E5B
2012-02-27 07:31:40.905 CET - 70539.351444.351448 - Client: launchd, UID: 13799, EUID: 13799, GID: 20, EGID: 20
2012-02-27 07:31:40.905 CET - 70539.351444.351448, Module: SystemCache - ODQueryCreateWithNode failed with error 'Node ID is invalid' (90001)

เมื่อเช้านี้ฉันตื่นขึ้นมาแล็ปท็อป (ฉันเคยodutilยกระดับการบันทึกขึ้นเล็กน้อย) ฉันได้รับการ poking รอบdsclและทุกอย่างดูเหมือนปกติ - ฉันสามารถดูข้อมูลทั้งหมดเกี่ยวกับผู้ใช้ของตัวเอง - แต่ฉันไม่คุ้นเคยกับบริการไดเรกทอรีดังนั้นฉันอาจพลาดบางสิ่งบางอย่าง (ฉันจะค้นหาตัวเองโดย uid โดยใช้ dscl ได้อย่างไร)

ดังนั้นคำถามของฉันคือสองเท่า: ปัญหานี้ส่งเสียงระฆังหรือไม่? google-fu ของฉันไม่ขึ้นกับการค้นหาสิ่งที่เกี่ยวข้อง และคุณสามารถแนะนำสิ่งต่าง ๆ เพื่อพยายามจัดการกับปัญหาเพิ่มเติมการทดสอบเพื่อดำเนินการสิ่งที่ต้องมองหาใช่ไหม

ในขณะที่ฉันพิมพ์คำถามนี้เหตุการณ์ของวันนี้สิ้นสุดลงและฉันมีอยู่อีกครั้ง ดังนั้นอาจเป็นเวลาหนึ่งสัปดาห์หรือมากกว่านั้นก่อนที่โอกาสถัดไปของฉันในการแก้ไขข้อบกพร่องนี้ ฉันใช้ OS X 10.7.3, btw บน MacBook Pro


คุณติดตั้ง Lion Server บน MacBook Pro ของคุณแล้วคุณเปิดใช้งาน Open Directory หรือไม่? MacBook Pro ของคุณเข้าร่วมกับเซิร์ฟเวอร์ Open Directory ในที่ทำงานของคุณหรือที่อื่น ๆ หรือไม่?
Jason Salaz

@ JasonSalaz: ไม่มันเป็นธรรมดา Lion ไม่มีอะไรแฟนซีตั้งค่ามาตรฐาน มันทำงานopendirectorydในเครื่อง แต่นั่นคือการตั้งค่าเริ่มต้นที่ฉันเชื่อว่าสืบทอดมาจากลำดับของเครื่องที่ใช้ Migration Assistant ไปจนถึง Tiger หากหน่วยความจำทำหน้าที่ (ซึ่งอาจไม่ใช่ - ฉันอาจเริ่มต้นจากศูนย์ระหว่างการโยกย้ายเมื่อหลายปีก่อน )
Harald Hanche-Olsen

apple.stackexchange.com/questions/43940/…เป็นเธรดที่คล้ายกันมากกับอันนี้
mspasov

@mspasov: ขอบคุณสำหรับตัวชี้! ฉันจะลองแก้ไขที่กล่าวถึงที่นั่นในครั้งต่อไปที่มันเกิดขึ้นกับฉันเพราะฉันแน่ใจว่ามันจะ
Harald Hanche-Olsen

คำตอบ:


2

สิ่งนี้ทำให้เสียงระฆังดังขึ้นทันทีที่ฉันเห็นปัญหาที่คล้ายกันในระบบที่หลากหลายตั้งแต่ 10.3 ถึง 10.6 นี่คือสาเหตุบางอย่างที่ฉันสังเกตเห็นโดยไม่เรียงลำดับ

  • ที่อยู่เซิร์ฟเวอร์ DNS ไม่ถูกต้องในการกำหนดค่าเครือข่าย
  • เซิร์ฟเวอร์ LDAP หรือชื่อแทนเซิร์ฟเวอร์ไม่ถูกต้อง (หากเครื่องเป็นส่วนหนึ่งของเครือข่าย LDAP หรือ OpenDirectory)
  • โมดูล PAM ที่ผิดพลาด (หากคุณติดตั้งซอฟต์แวร์บุคคลที่สามซึ่งใช้ PAM หรือติดตั้งลงใน/etc/pam.d)
  • การรวมบัญชี Local / BSD เข้ากับบัญชี LDAP / OpenDirectory สิ่งนี้อาจเกิดขึ้นได้หากคุณมีบัญชีที่มีการโยกย้ายซ้ำหลายเวอร์ชัน
  • GUID ของบัญชีกำลังซิงค์เนื่องจากการโยกย้ายหรือความเสียหายอื่น ๆ ของฐานข้อมูล OpenDirectory
  • โปรดทราบว่าอาจใช้เวลาถึงหนึ่งนาทีหลังจากที่เครื่องตื่นจากโหมดสลีปหรือบูตเสร็จสิ้นก่อนที่ระบบการรับรองความถูกต้องจะทำงานได้อย่างสมบูรณ์ ปัญหาการเชื่อมต่อเครือข่ายสามารถทำให้เกิดความล่าช้าได้อย่างมากโดยเฉพาะหากระบบเป็นส่วนหนึ่งของเครือข่าย LDAP / OpenDirectory

เนื่องจากคุณได้ย้ายบัญชีลองตั้งค่าบัญชีใหม่และดูว่าปัญหาเกิดขึ้นที่นั่นหรือไม่ อาจเป็นไปได้ที่จะแก้ไขปัญหาโดยการขุดลงในฐานข้อมูล OpenDirectory แต่มันอาจจะง่ายกว่าที่จะสร้างบัญชีปัญหาขึ้นใหม่

ปรับปรุง

เนื่องจาก UID มีการเปลี่ยนแปลงในบางจุดในอดีตด้วยเหตุผล NFS เป็นไปได้ว่า GUID และ UID จะไม่ซิงค์กัน ลองใช้คำสั่ง Terminal ต่อไปนี้เพื่อดูว่า unix และ Directory Services อยู่ในหน้าเดียวกัน:

dscl . -read /Users/sbnoble GeneratedUID
dscl . -read /Users/sbnoble UniqueID
id

เอาต์พุต UID โดย "UniqueID" และ "id" ควรจับคู่กันและ NFS UID ที่คุณคาดหวัง


ขอบคุณ สามทางเลือกแรกของคุณดูเหมือนจะไม่เกิดขึ้นในกรณีของฉัน แต่หมายเลขสี่และห้าอาจมีค่าดู เนื่องจากปัญหาเกิดขึ้นน้อยมากฉันไม่คิดว่าจะตั้งค่าบัญชีใหม่เพื่อดูว่าปัญหาที่เกิดขึ้นมีกลยุทธ์ที่ทำงานได้หรือไม่ ฉันจะต้องทำงานทั้งหมดของฉันในบัญชีใหม่ซึ่งหมายความว่าฉันจะต้องย้ายไฟล์ทั้งหมดของฉันไปที่มัน แต่บางทีฉันสามารถทำเช่นนั้นได้และก็ละทิ้งบัญชีเก่าของฉัน อืม…
Harald Hanche-Olsen

สิ่งหนึ่งที่ฉันลืมพูดถึง: เนื่องจากความจำเป็นในการเข้าถึงไฟล์ผ่าน NFS มันเป็นสิ่งสำคัญที่ฉันจะต้องเลือก uid ของฉัน ฉันเคยทำเช่นนั้นในอดีตเปลี่ยน uid จากสิ่งที่ระบบกำหนดให้ฉันเมื่อตั้งค่าบัญชี นั่นอาจเป็นสาเหตุที่เป็นไปได้ของปัญหาปัจจุบัน
Harald Hanche-Olsen

ที่จะทำมัน OS X มีสองรหัสผู้ใช้อย่างมีประสิทธิภาพ: unix UID แบบคลาสสิกและ GUID ของตัวเอง (GeneratedUID) ดังนั้น UID ของคุณและ GUID ของคุณจึงไม่ซิงค์กัน การแก้ไขที่ไม่ยากเกินไปใน "OS X Server" โดยใช้ Workgroup Manager แต่ในไคลเอนต์ฉันคิดว่าคุณจะต้องใช้dsclบรรทัดคำสั่งด้วย ดูการแก้ไขของฉันด้านบน
เซทโนเบิล

อืมมม UniqueID ของฉันและ (unix) id ทั้งคู่ออกมาเป็น 13799 GeneratedUID คือ 781F6CC1-C5B3-4016-80AE-BE405C3EC721 ไม่ใช่ว่าฉันคาดหวังว่าจะตรงกับคนอื่น
Harald Hanche-Olsen

รายการบันทึกคุณโพสต์แสดงระบบมีปัญหาในการหา 71E63E19-F41E-4AF3-89A0-F50FE5185E5BGUID ฉันเดาว่ามี GUID และ UID หลายรายการที่เชื่อมโยงกับบัญชีของคุณ คุณอาจต้องทำการสำรวจด้วยdsclเพื่อดูว่ามีบันทึกผู้ใช้ใดบ้างและอาจรวมเข้าด้วยกัน
เซทโนเบิล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.