Để truy cập cơ sở dữ liệu nhóm (group database) của UNIX, ta nên dùng module grp. Các entry (bản ghi) của cơ sở dữ liệu mật khẩu shadow (shadow password database) là đối tượng kiểu tuple.
Để dùng module grp, nên nhập bằng:
import grp
Các thuộc tính của cơ sở dữ liệu grp:
| Chỉ mục | Thuộc tính & Mô tả |
|---|---|
| 0 | gr_name Tên nhóm |
| 1 | gr_passwd Mật khẩu mã hóa cho nhóm. (Thường rỗng) |
| 2 | gr_gid ID nhóm (số) |
| 3 | gr_mem Danh sách người dùng trong nhóm |
Trong đối tượng group, gid là số nguyên. Tên nhóm và mật khẩu là chuỗi. Danh sách thành viên là list của chuỗi.
Một số phương thức của module này:
Phương thức grp.getgrgid(gid)
Trả về entry nhóm từ group id cho trước. Nếu không có nhóm tương ứng với gid, ném KeyError.
Phương thức grp.getgrnam(name)
Trả về entry nhóm từ tên nhóm cho trước. Nếu không có nhóm tương ứng, ném KeyError.
Phương thức grp.getgrall()
Trả về tất cả các entry nhóm.
Mã ví dụ
import grp
print("ID: 4: " + str(grp.getgrgid(4)) + '\n') # Chi tiết mật khẩu dùng Group ID
print("Nhóm cdrom: " + str(grp.getgrnam('cdrom')) + '\n') # Chi tiết mật khẩu dùng tên nhóm
for entry in grp.getgrall():
print("Tên nhóm: " + entry[0] + "\t\tThành viên: " + str(entry.gr_mem))
Kết quả
$ sudo python3 example.py ID: 4: grp.struct_group(gr_name='adm', gr_passwd='x', gr_gid=4, gr_mem=['syslog', 'unix_user']) Nhóm cdrom: grp.struct_group(gr_name='cdrom', gr_passwd='x', gr_gid=24, gr_mem=['unix_user']) Tên nhóm: root Members: [] Tên nhóm: daemon Members: [] Tên nhóm: bin Members: [] Tên nhóm: sys Members: [] Tên nhóm: adm Members: ['syslog', 'unix_user'] Tên nhóm: tty Members: [] Tên nhóm: disk Members: [] Tên nhóm: lp Members: [] Tên nhóm: mail Members: [] Tên nhóm: news Members: [] Tên nhóm: uucp Members: [] Tên nhóm: man Members: [] Tên nhóm: proxy Members: [] Tên nhóm: kmem Members: [] Tên nhóm: dialout Members: [] Tên nhóm: fax Members: [] Tên nhóm: voice Members: [] Tên nhóm: cdrom Members: ['unix_user'] Tên nhóm: floppy Members: [] Tên nhóm: tape Members: [] Tên nhóm: sudo Members: ['unix_user'] Tên nhóm: audio Members: ['pulse'] Tên nhóm: dip Members: ['unix_user'] Tên nhóm: www-data Members: [] Tên nhóm: backup Members: [] ………… ………… …………