Nếu bạn đọc grp module documentation bạn sẽ thấy rằng grp.getgrnam (groupname) sẽ trả về một mục nhập từ cơ sở dữ liệu nhóm, mà là một đối tượng tuple-như thế nào. Bạn có thể truy cập thông tin theo chỉ số hoặc bằng thuộc tính:
>>> import grp
>>> groupinfo = grp.getgrnam('root')
>>> print groupinfo[2]
0
>>> print groupinfo.gr_gid
0
mục khác là tên, mật khẩu được mã hóa (thường là trống rỗng, nếu sử dụng một tập tin shadow, nó sẽ là một giá trị dummy) và tất cả các thành viên trong nhóm tên. Này hoạt động tốt trên bất kỳ hệ thống Unix, bao gồm máy tính xách tay Mac OS X của tôi:
>>> import grp
>>> admin = grp.getgrnam('admin')
>>> admin
('admin', '*', 80, ['root', 'admin', 'mj'])
>>> admin.gr_name
'admin'
>>> admin.gr_gid
80
>>> admin.gr_mem
['root', 'admin', 'mj']
Các module cũng cung cấp một phương pháp để có được mục bởi gid, và khi bạn phát hiện ra, một phương pháp để lặp qua tất cả các mục trong cơ sở dữ liệu:
>>> grp.getgrgid(80)
('admin', '*', 80, ['root', 'admin', 'mj'])
>>> len(grp.getgrall())
73
cuối cùng nhưng không kém, python cung cấp chức năng tương tự để có được thông tin về các tập tin mật khẩu và bóng tối, trong pwd và spwd mô-đun, trong đó có một API tương tự.
Nguồn
2009-07-21 08:34:41
Lưu ý rằng vì có giới hạn số lượng thành viên nhóm Unix có thể có, một số hệ thống (lớn) có nhiều nhóm Unix với cùng GID nhưng tên khác, ví dụ: 'admin',' admin2', 'admin3', Ví dụ: Bạn có thể không nhận thức được điều này vì tệp được lưu trữ bằng UID/GID dạng số của họ và các công cụ như 'ls' tra cứu GID và hiển thị tên đầu tiên gặp phải, trong ví dụ của tôi là 'quản trị'. Vì vậy, bạn có thể ngạc nhiên khi tìm một tài khoản người dùng cụ thể không nằm trong nhóm 'admin', nhưng thực sự là 'admin2' hoặc bí danh khác. Bạn phải lọc tất cả các nhóm theo GID để tìm bí danh AFAICT. – RobM