ในการเข้าถึงฐานข้อมูลกลุ่ม UNIX เราควรใช้โมดูล grp รายการฐานข้อมูลรหัสผ่านเงาเป็นเหมือนทูเพิลเหมือนวัตถุ
ในการใช้โมดูล grp เราควรนำเข้าโดยใช้ −
import grp
คุณลักษณะของฐานข้อมูล grp คือ −
ดัชนี | แอตทริบิวต์ &คำอธิบาย |
---|---|
0 | gr_name ชื่อกลุ่ม |
1 | gr_passwd รหัสผ่านที่เข้ารหัสสำหรับกลุ่ม (โดยทั่วไปว่างเปล่า) |
2 | gr_gid รหัสกลุ่ม (ตัวเลข) |
3 | gr_mem รายชื่อผู้ใช้กลุ่ม |
ในวัตถุกลุ่ม gid เป็นจำนวนเต็ม ชื่อกลุ่มและรหัสผ่านเป็นสตริง รายชื่อสมาชิกเป็นรายการสตริง
วิธีการบางอย่างของโมดูลนี้คือ −
วิธีการ grp.getgrgid(gid)
เมธอดนี้จะคืนค่ารายการฐานข้อมูลกลุ่มจากรหัสกลุ่มที่กำหนด เมื่อไม่มีกลุ่มที่สอดคล้องกับ gid ก็จะเกิด KeyError
วิธีการ grp.getgrnam(ชื่อ)
เมธอดนี้จะคืนค่ารายการฐานข้อมูลกลุ่มจากชื่อกลุ่มที่ระบุ เมื่อไม่มีกลุ่มที่สอดคล้องกับ gid ก็จะเกิด KeyError
วิธีการ grp.getgrall()
เมธอดนี้จะคืนค่ารายการฐานข้อมูลกลุ่มทั้งหมด
โค้ดตัวอย่าง
import grp print("ID: 4: " + str(grp.getgrgid(4)) + '\n') #Password detail using Group ID print("cdrom group: " + str(grp.getgrnam('cdrom')) + '\n') #Password detail using Group name for entry in grp.getgrall(): print("Group Name: " + entry[0] + "\t\tMembers: " + str(entry.gr_mem))
ผลลัพธ์
$ sudo python3 example.py ID: 4: grp.struct_group(gr_name='adm', gr_passwd='x', gr_gid=4, gr_mem=['syslog', 'unix_user']) cdrom group: grp.struct_group(gr_name='cdrom', gr_passwd='x', gr_gid=24, gr_mem=['unix_user']) Group Name: root Members: [] Group Name: daemon Members: [] Group Name: bin Members: [] Group Name: sys Members: [] Group Name: adm Members: ['syslog', 'unix_user'] Group Name: tty Members: [] Group Name: disk Members: [] Group Name: lp Members: [] Group Name: mail Members: [] Group Name: news Members: [] Group Name: uucp Members: [] Group Name: man Members: [] Group Name: proxy Members: [] Group Name: kmem Members: [] Group Name: dialout Members: [] Group Name: fax Members: [] Group Name: voice Members: [] Group Name: cdrom Members: ['unix_user'] Group Name: floppy Members: [] Group Name: tape Members: [] Group Name: sudo Members: ['unix_user'] Group Name: audio Members: ['pulse'] Group Name: dip Members: ['unix_user'] Group Name: www-data Members: [] Group Name: backup Members: [] ……….. ……….. ………..