Python访问组数据库
要访问UNIX组数据库,我们应该使用grp模块。影子密码数据库条目类似于元组对象。
要使用grp模块,我们应该使用以下方法导入它:
import grp
grp数据库的属性如下:
索引 | 属性和描述 |
---|---|
0 | gr_name 组名称 |
1 | gr_passwd 组的加密密码。(通常为空) |
2 | gr_gid 组ID(数字) |
3 | gr_mem 组用户列表 |
在组对象中,gid是一个整数。组名和密码是字符串。成员列表是一个字符串列表。
该模块的一些方法如下:
方法 grp.getgrgid(gid)
此方法将从给定的组ID返回组数据库条目。如果没有与gid对应的组,它将引发KeyError。
方法 grp.getgrnam(name)
此方法将从给定的组名返回组数据库条目。如果没有与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: [] ……….. ……….. ………..
广告