Python获取一个用户名的组ID过程解析

yipeiwu_com7年前Python基础

getpwname只能得到gid一个username。

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

getgroups只能获取groups脚本用户。

import os
myGroupIds = os.getgroups()

我怎么能得到所有groups的任意一个username,比如id -Gn命令?

id -Gn `whoami`

解决方案

#!/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设计】。

相关文章

Python使用poplib模块和smtplib模块收发电子邮件的教程

poplib模块接收邮件 python的poplib模块是用来从pop3收取邮件的,也可以说它是处理邮件的第一步。 POP3协议并不复杂,它也是采用的一问一答式的方式,你向服务器发送一个...

python定时器使用示例分享

复制代码 代码如下:class SLTimer(multiprocessing.Process):    #from datetime import dat...

浅析python的Lambda表达式

浅析python的Lambda表达式

在python项目中,我们经常会用到lambda,那么lambda是什么呢,有什么作用,下面我们开始介绍 1、可以使用lambda关键字创建匿名函数。Lambda函数可以在需要函数对象的...

Python基于time模块求程序运行时间的方法

Python基于time模块求程序运行时间的方法

本文实例讲述了Python基于time模块求程序运行时间的方法。分享给大家供大家参考,具体如下: 要记录程序的运行时间可以利用Unix系统中,1970.1.1到现在的时间的毫秒数,这个时...

Python 实用技巧之利用Shell通配符做字符串匹配

1、需求 当工作在UNIX Shell下时,我们想使用常见的通配符模式(即:.py,Dat[0-9].csv等)来对文本做匹配。 2、解决方案 fnmatch模块提供了两个函数:fnma...