Python获取指定用户所有组ID及组名的完整方法

Aria
Aria
发布时间:2026-10-13 | 2人浏览过
原创

本文详细解析如何在Python中获取指定用户的所有组ID及组名。通过结合使用grp.getgrall()遍历所有组、pwd模块获取用户主组,并过滤用户成员列表,最终实现与Linux命令id -Gn等效的功能,适用于需要精确权限管理的场景。

Python获取用户组信息的局限性

在Python中,若仅调用pwd.getpwnam()方法,只能获取到指定用户的主组ID(gid),无法直接获得该用户所属的所有附加组信息。


import pwd
myGroupId = pwd.getpwnam(username).pw_gid

另一方面,使用os.getgroups()函数时,它仅返回当前运行脚本的用户所属的组列表,无法直接查询任意指定用户的组信息。


import os
myGroupIds = os.getgroups()

因此,如何像执行Linux命令“id -Gn”那样,获取任意指定用户名所属的所有组ID和组名,成为一个常见需求。


id -Gn `whoami`

完整解决方案与代码实现

针对上述问题,可以通过Python标准库中的grp和pwd模块组合实现。具体做法是遍历所有组,筛选出包含该用户的组,并补充主组信息,从而得到完整的组列表。


#!/usr/bin/env python
import grp, pwd 
user = "myname"
groups = [g.gr_name for g in grp.getgrall() if user in g.gr_mem]
gid = pwd.getpwnam(user).pw_gid
groups.append(grp.getgrgid(gid).gr_name)
print groups

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表