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

yipeiwu_com5年前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设计】。

相关文章

如何利用pygame实现简单的五子棋游戏

如何利用pygame实现简单的五子棋游戏

前言 写程序已经丢掉很长一段时间了,最近觉得完全把技术丢掉可能是个死路,还是应该捡起来,所以打算借CSDN来记录学习过程, 由于以前没事的时候断断续续学习过python和用flask框...

Python Trie树实现字典排序

Python Trie树实现字典排序

一般语言都提供了按字典排序的API,比如跟微信公众平台对接时就需要用到字典排序。按字典排序有很多种算法,最容易想到的就是字符串搜索的方式,但这种方式实现起来很麻烦,性能也不太好。Trie...

简单瞅瞅Python vars()内置函数的实现

0.偶然间看到一个奇怪的现象 >>> x = 1 >>> a = var() >>> a['x'] 1 这是啥操作??用h...

Python多层装饰器用法实例分析

本文实例讲述了Python多层装饰器用法。分享给大家供大家参考,具体如下: 前言 Python 的装饰器能够在不破坏函数原本结构的基础上,对函数的功能进行补充。当我们需要对一个函数补充不...

Python中的zip函数使用示例

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例: 1.示例1: 复制代码 代码如下: x = [1, 2, 3] y...