ข้อความแสดงข้อผิดพลาด: ไม่สามารถหาชื่อสำหรับ ID กลุ่มหลังจากเข้าสู่ระบบ


15

พื้นหลัง

เทรเวอร์ลงชื่อเข้าใช้บัญชีของเขาใน ssh: //foobar.university.edu เป็นหนึ่งในนักพัฒนาในกล่องและเขาได้รับข้อความ:

 id: cannot find name for group ID 131

เทรเวอร์แล้วตรวจสอบสิ่งนี้โดยใช้

 vim /etc/group

ปัญหา

ค้นพบเทรเวอร์ว่ามีคือไม่มี 131 ที่ใดก็ได้ในไฟล์ / etc / กลุ่ม

เทรเวอร์จึงเรียกใช้ id ...

 > id trevor
 uid=4460(trevor) gid=131 groups=48(foobar),51(doobar),131

หากต้องการค้นพบกลุ่มหลักของเขาจะไม่มีชื่อติดอยู่

คำถาม

  • มีอะไรเกิดขึ้นที่จะทำให้เกิดเหตุการณ์นี้ในกล่อง foobar.university.edu?
  • สมมติว่าเทรเวอร์ต้องการแก้ไขปัญหานี้ (เช่นเพียงแค่สร้างกลุ่ม "เทรเวอร์" ที่จับคู่กับ GID 131) วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไรโดยไม่ทำลายสิ่งอื่นบนเซิร์ฟเวอร์

หรือบางทีคุณอาจมีการเข้าถึงที่ไม่ถูกต้องในไฟล์ / etc / group
Pavel Patrin

คำตอบ:


18

สิ่งที่อาจเกิดขึ้นคือมีการจัดเตรียม UID และ GID ให้กับเซิร์ฟเวอร์ผ่าน LDAP หาก/etc/groupไฟล์ไม่มีการแปลสำหรับ GID ผู้ดูแลเซิร์ฟเวอร์น่าจะล้มเหลวในการอัพเดทคำจำกัดความกลุ่ม คุณทำอะไรได้บ้าง? ไม่มาก. ID ผู้ใช้ถูกควบคุมโดยผู้ดูแลระบบ (ตอนนี้หากคุณมีสิทธิ์ ROOT คุณสามารถเพิ่มกลุ่มลงใน/etc/groupคุณควรตรวจสอบเพื่อดูว่าบัญชีผู้ใช้อื่นกำลังใช้กลุ่มเดียวกันหรือไม่และตั้งชื่อกลุ่มอย่างเหมาะสม)


6
ขอบคุณสำหรับการตอบกลับ. หมายเหตุเพิ่มเติม: หากคุณมีสิทธิ์เพียงพอ; การเพิ่มลงในไฟล์กลุ่มสามารถทำได้ผ่าน groupadd --gid 131 foobargroup
dreftymac

@dreftymac สมมติว่าการเรียกใช้idรายงาน ID เดียวกันสำหรับ uid, gid และกลุ่มฉันคิดว่าปลอดภัยgroupadd -gID usernameหรือไม่
XXX

หากบัญชีนี้ได้รับการกำหนดค่าโดยใช้ sssd กับ ldap / ad ความเป็นไปได้อีกอย่าง (ถ้าคุณมีการเข้าถึงรูทบนระบบของคุณ) ก็คือแอตทริบิวต์ ldap_group_search_base ของคุณนั้นไม่กว้างพอและไม่มีกลุ่มที่ระบบของคุณกำลังค้นหา
ไม่มีใคร

3

สิ่งนี้เกิดขึ้นเมื่อผู้ใช้ของฉัน "แจ็คสัน" ไม่ได้รับมอบหมายกลุ่ม ฉันรู้ว่า id กลุ่มเดี่ยวสำหรับผู้ใช้ของฉันคือ 1,000 (เมื่อผู้ใช้ถูกสร้างด้วย$ adduserและไม่มีการกำหนดพารามิเตอร์ผู้ใช้จะได้รับรหัสถัดไปที่มีให้มากกว่า 999 ตัวแรกรับ uid 1,000 และ gid 1000)

คำเตือนนี้หมายความว่าผู้ใช้ของคุณไม่ได้อยู่ในกลุ่มดังนั้นสิ่งที่คุณต้องทำคือการเพิ่มผู้ใช้ไปยังกลุ่ม มีผู้ดูแลระบบของคุณที่ช่วยให้คุณชอบ @sparticvs ที่กล่าวถึงหรือหากคุณมีสิทธิ์ใช้งานรูท / เป็นเครื่องของคุณคุณสามารถทำสิ่งต่อไปนี้:

$ addgroup [your_user_name]
$ usermod -a -G [your_user_name] [your_user_name]

และที่ควรแก้ไข ( ยังไม่ทดลอง )

สิ่งที่ฉันทำก็แค่(ขั้นสูง)

  • $ sudo vi /etc/group
  • แก้ไขบรรทัดของweb:x:1001:เป็นweb:x:1000:jackson

ซึ่งทำให้ผู้ใช้ของฉันjacksonอยู่ในwebกลุ่ม

FYI หากคุณไม่คุ้นเคยกับvimฉันไม่แนะนำขั้นตอน "ขั้นสูง" ถ้าคุณใช้งานอย่างสิ้นหวังจริงๆ$ sudo nano /etc/group


งานที่ดีเกี่ยวกับข้อจำกัดความรับผิดชอบขั้นสูง ... ที่อาจทำให้เกิดความไม่พอใจและความแตกแยกถ้าใครไม่ได้ตระหนักถึงความหมาย
dreftymac

ตัวเลือกที่ดีกว่าการใช้viโดยตรงคือการใช้ความเชี่ยวชาญรุ่นvigr มันทำสำเนาชั่วคราวและตรวจสอบไวยากรณ์ก่อนที่จะบันทึกทำให้ปลอดภัยกว่าเมื่อทำการแก้ไขสิ่งที่สำคัญ มีให้ใน BSD และ GNU / Linux (จากutil-linuxแพ็คเกจ) เครื่องมือที่คล้ายกันที่มีอยู่สำหรับไฟล์ที่สำคัญอื่น ๆ vipwเช่นvisudo,
Anthony G - ความยุติธรรมสำหรับโมนิก้า
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.