Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Truy cập Cơ sở dữ liệu Nhóm (Group Database) trong Python

Để 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ụcThuộc tính & Mô tả
0gr_name
Tên nhóm
1gr_passwd
Mật khẩu mã hóa cho nhóm. (Thường rỗng)
2gr_gid
ID nhóm (số)
3gr_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: []
………… ………… …………