要访问UNIX组数据库,我们应该使用grp模块。影子密码数据库条目就像元组一样的对象。
要使用grp模块,我们应该使用-导入它
import grp
grp数据库的属性是-
指数 | 属性和说明 |
---|---|
0 | gr_name 组名 |
1 | gr_passwd组 的加密密码。(通常是空的) |
2 | gr_gid 组ID(数字) |
3 | gr_mem 组用户列表 |
在组对象中,gid是整数。组名和密码是字符串。成员列表是字符串列表。
该模块的一些方法是-
此方法将从给定的组ID返回组数据库条目。当没有对应于gid的组时,它将引发KeyError。
此方法将从给定的组名称返回组数据库条目。当没有对应于gid的组时,它将引发KeyError。
此方法将返回所有组数据库条目。
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: [] ……….. ……….. ………..