ฉันจะแสดงรายการกลุ่มที่ผู้ใช้ UNIX เป็นสมาชิกได้อย่างไร


79

ด้วยpts m groupnameฉันสามารถแสดงรายการผู้ใช้ในกลุ่ม ฉันจะทำตรงข้ามได้ - นั่นคือแสดงรายการกลุ่มทั้งหมดที่ผู้ใช้เป็นสมาชิกอยู่

(ฉันต้องการสิ่งนี้เพื่อค้นหาชื่อของกลุ่มที่ฉันรู้จักผู้ใช้ที่เป็นสมาชิก แต่ฉันไม่รู้ชื่อกลุ่ม ... )

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

ภายในสาขาของเราเรามีกลุ่มการเข้าถึงที่แตกต่างกันสำหรับผู้ที่รับผิดชอบสิ่งต่าง ๆ ในกรณีนี้หนึ่งในสองคนรับผิดชอบต่อบางสิ่ง (ไม่สำคัญว่าอะไร) ถูกแทนที่และฉันต้องการตรวจสอบผู้ใช้รายอื่นเพื่อค้นหาสิทธิ์การเข้าถึงที่ฉันควรให้เพื่อทดแทน

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

คำตอบ:


105

คุณยังสามารถใช้groupsคำสั่ง:

[root @ ftp ~] # กลุ่มกลุ่ม
root: root bin daemon sys adm wheel wheel

หากสิ่งอื่นใดล้มเหลวก็มีความเก่าแก่เช่นgrepกัน:

[root @ ftp ~] # grep root / etc / group
ราก: x: 0: ราก
bin: x: 1: รากถังภูต
ภูต: x: 2: รากถังภูต
SYS: x 3: รากถัง ADM
ADM: x: 4: ราก ADM, ภูต
ฮาร์ดดิสก์: x: 6: ราก
ล้อ: x: 10: รากผู้ดูแลระบบ

1
grep ^root: /etc/groupอาจจะดีกว่า
Dennis Williamson

ไม่มันไม่ได้เป็นเพราะมันแสดงรายการเพียงหนึ่งในกลุ่ม root เป็นสมาชิกของอาจจะมี awk ของมันชัดเจนมากขึ้น :) grep root / etc / group | awk -F: '{print $ 1}'
matthias krull

3
การตรวจสอบ / etc / group ฟังดูดี แต่ถ้าระบบของคุณใช้ไดเรกทอรีกลาง (NIS, LDAP, ActiveDirectory,?) คุณจะไม่พบรายชื่อกลุ่มทั้งหมด คำจำกัดความของกลุ่มโลคัลเท่านั้นที่จะอยู่ในไฟล์นั้น
Slartibartfast

คำสั่งgroups kczเพียงให้ฉันแต่ฉันรู้ว่าผู้ใช้รายนี้เป็นสมาชิกของกลุ่มที่เรียกว่าusr fkmอะไรหายไป?
Tomas Aschan

ไม่แน่ใจให้/etc/groupวาง bin @Tomas ของคุณ
John T

28
$ id [username]

" $: Command not found"
Tomas Aschan

8
$หมายถึงพร้อมรับคำสั่ง idเริ่มพิมพ์ด้วย
ร่วมประชุม

ยังไม่ได้ให้อะไรฉัน:uid=[five digits](kcz) gid=30(usr)
Tomas Aschan

มันแสดง uid = gid = groups = ดังนั้นสิ่งที่สามที่ฉันได้รับคือรายชื่อกลุ่มที่ผู้ใช้เป็นเจ้าของ
MKJ

6

พบมัน - วิธีในภายหลัง แต่ฉันทำ! =)

เพียงเท่านี้

$>pts m [group name]

แสดงรายชื่อสมาชิกทั้งหมดในกลุ่ม

$>pts m [user name]

แสดงรายการกลุ่มทั้งหมดที่ผู้ใช้เป็นสมาชิก มันง่ายเกินไป: P


3
pts ไม่ใช่คำสั่งมาตรฐาน
user2284570

1
@ user2284570: อาจจะไม่ แต่มีการระบุไว้อย่างชัดเจนในคำถาม (สิ่งแรกสุดในความเป็นจริงและด้วยการเน้นไวยากรณ์) ว่ามันเป็นptsคำถามที่เกี่ยวข้อง
Tomas Aschan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.