首页 > 代码库 > python使用pwd和grp操作unix用户及用户组

python使用pwd和grp操作unix用户及用户组

1、pwd模块

pwd模块提供了一个unix密码数据库即/etc/passwd的操作接口,这个数据库包含本地机器用户帐户信息

常用操作如下:

 

pwd.getpwuid(uid):返回对应uid的示例信息

示例:

>>> pwd.getpwuid(0)       
pwd.struct_passwd(pw_name=root, pw_passwd=x, pw_uid=0, pw_gid=0, pw_gecos=root, pw_dir=/root, pw_shell=/bin/bash)

 

pwd.getpwnam(name):返回对应name的用户信息

示例:

>>> pwd.getpwnam(root)
pwd.struct_passwd(pw_name=root, pw_passwd=x, pw_uid=0, pw_gid=0, pw_gecos=root, pw_dir=/root, pw_shell=/bin/bash)

 

pwd.getpwall():返回所有的用户信息

示例:

import pwd

def get_user()
    all_user = {}
    for user in pwd.getpwall()
        all_user[user[0]] = all_user[user[2]] = user
    return all_user

def userinfo(uid):
    return get_user()[uid]

 

执行结果:

print userinfo(0)
pwd.struct_passwd(pw_name=root, pw_passwd=x, pw_uid=0, pw_gid=0, pw_gecos=root, pw_dir=/root, pw_shell=/bin/bash)
print userinfo(root)
pwd.struct_passwd(pw_name=root, pw_passwd=x, pw_uid=0, pw_gid=0, pw_gecos=root, pw_dir=/root, pw_shell=/bin/bash)

 

2、grp模块

grp模块提供了一个操作unix用户组即/etc/group数据库的接口

常用操作如下:

 

grp.getgrgid(gid):返回对应gid的组信息

示例:

>>> print grp.getgrgid(0)
grp.struct_group(gr_name=root, gr_passwd=x, gr_gid=0, gr_mem=[])

 

grp.getgrnam(name):返回对应name的组信息

示例:

>>> print grp.getgrnam(root)
grp.struct_group(gr_name=root, gr_passwd=x, gr_gid=0, gr_mem=[])

 

grp.getgrall():返回所有的组信息

 

python使用pwd和grp操作unix用户及用户组