ฉันขอรายชื่อกลุ่ม "ระบบ" และ gid ที่เกี่ยวข้องได้ไหม?


16

ฉันรู้ว่ามีชื่อกลุ่มเช่น "พนักงาน" และ "ผู้ดูแลระบบ" แต่ชื่อเหล่านั้นเป็นคนเดียวหรือไม่ ฉันสงสัยว่าผู้ใช้รูทควรได้รับมอบหมายในกลุ่มด้วย การใช้คำสั่งdscacheutil -q userจะบอก gid ของรูท - 0 และหากบัญชีผู้ใช้เป็นผู้ดูแลระบบจะไม่อยู่ในทั้งกลุ่ม "ผู้ดูแลระบบ" และ "พนักงาน" ใช่ไหม

ด้วยการรันคำสั่งls -la /Usersฉันจะได้ผลลัพธ์ต่อไปนี้:

Nicholass-MacBook:~ Ee$ ls -la /Users
total 32
drwxr-xr-x  12 root     admin    408 Nov  3 15:11 .
drwxr-xr-x@ 35 root     wheel   1258 Oct 29 20:21 ..
-rw-r--r--@  1 root     admin  12292 Oct 27 09:02 .DS_Store
-rw-r--r--   1 root     wheel      0 Aug 25 16:58 .localized
drwxrwx---   5 root     admin    170 Nov  3 08:00 Deleted Users
drwxr-xr-x+ 21 Ee       staff    714 Nov  3 08:06 Ee
drwx------+ 84 root     admin   2856 Oct 26 06:49 Ee (Deleted)
drwxr-xr-x+ 11 EeJ      staff    374 Nov  3 15:07 EeJ
drwxr-xr-x+ 14 900      admin    476 Oct 24  2012 Ee******** (Deleted)
drwxr-xr-x   3 root     admin    102 Oct 27 06:50 Old Ee (frm Snow Leopard)
drwxr-xr-x+ 11 ParAcnt  staff    374 Nov  3 15:11 ParAcnt
drwxrwxrwt   6 root     wheel    204 Nov  1 18:18 Shared

คำตอบ:


22

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

rootเป็น superuser ที่อยู่ในกลุ่มด้วยตัวเองและยังเป็นสมาชิกของกลุ่มอื่น ๆ โดยปริยาย บัญชีผู้ใช้ใด ๆ สามารถเป็นสมาชิกของหลายกลุ่มได้ ในระบบของฉันมีเพียงสมาชิกเท่านั้นstaffคือroot; ผู้ดูแลระบบทั้งหมดอยู่ในadminกลุ่ม wheelเป็นชื่อกลุ่มอื่นที่คุณจะเห็นไฟล์ระบบบางไฟล์บ่อยๆ sudoมันเป็นชื่อกลุ่มที่นิยมบนระบบลินุกซ์จะกำหนดให้กับไฟล์เพื่อให้ผู้ดูแลระบบที่สามารถแก้ไขได้โดยไม่ต้องใช้รหัสผ่านของตนใน

ควรสังเกตว่า Mac OS X รองรับรายการควบคุมการเข้าถึงที่ให้การควบคุมการอนุญาตไฟล์อย่างละเอียดมากกว่าสิทธิ์ Unix แบบดั้งเดิม IIRC +ในรายการการอนุญาตของไฟล์ระบุว่ามีการอนุญาตเพิ่มเติมที่เกี่ยวข้องกับไฟล์


14

วิธีการทางเลือกสำหรับการจดทะเบียนgroupsและgid:

รายการเรียงตามชื่อกลุ่ม:

dscl . list /Groups PrimaryGroupID

รายการเรียงตามกลุ่ม gid:

dscl . list /Groups PrimaryGroupID | tr -s ' ' | sort -n -t ' ' -k2,2

รายชื่อกลุ่มที่มีสมาชิก:

dscl . list /Groups GroupMembership

หมายเหตุ: ค่าdscacheutilมิได้dsclรายชื่อสมาชิกของกลุ่มอื่นที่ไม่ใช่staff rootใช้เพื่อยืนยันการเป็นสมาชิกอยู่ในกลุ่มdsmemberutilstaff

ตัวอย่างผู้ใช้ที่มี uid 501:

dsmemberutil checkmembership -u 501 -g 20

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