Python访问组数据库


要访问UNIX组数据库,我们应该使用grp模块。影子密码数据库条目类似于元组对象。

要使用grp模块,我们应该使用以下方法导入它:

import grp

grp数据库的属性如下:

索引属性和描述
0gr_name
组名称
1gr_passwd
组的加密密码。(通常为空)
2gr_gid
组ID(数字)
3gr_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: []
………..
………..
………..

更新于:2020年6月25日

233 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告