📅  最后修改于: 2023-12-03 15:19:26.930000             🧑  作者: Mango
grp模块是Python标准库中的一个模块,它提供了一个API去查询和操作Unix用户和组的信息。它利用了Unix系统的“/etc/group”文件,可以告诉你有哪些组而且哪些用户在它们之中。
使用 grp 模块可以很容易地获取组的信息。Python会从“/etc/group”文件中读取组信息并构建相应的数据结构。
import grp
groups = grp.getgrall()
print(groups)
运行结果可能是如下所示:
[grp.struct_group(gr_name='root', ...삭제...), grp.struct_group(gr_name='admin', ...삭제...), grp.struct_group(gr_name='staff', ...삭제...), ...]
有时候,我们只需要查找单个组的信息,这时可以使用 grp.getgrnam(name) 函数。
import grp
group_info = grp.getgrnam('staff')
print(group_info)
grp.getgrgid(gid) 函数可以返回指定组ID的组成员信息。
import grp
group_info = grp.getgrgid(20)
print(group_info.gr_mem)
运行结果可能如下所示:
['root', '_xcsbuild']
以下是一个完整的示例程序:
import grp
for group in grp.getgrall():
print(f'组名称: {group.gr_name}')
print(f'组ID: {group.gr_gid}')
print(f'组成员: {group.gr_mem}')
print('------')
运行结果如下:
组名称: root
组ID: 0
组成员: ['root']
------
组名称: daemon
组ID: 1
组成员: ['daemon']
------
...