Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เข้าถึงฐานข้อมูลกลุ่มใน Python


ในการเข้าถึงฐานข้อมูลกลุ่ม 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: []
………..
………..
………..