Python标准库中的pwd模块提供对Unix / Linux操作系统中用户帐户的密码数据库的访问。此密码数据库中的条目被指定为类似元组的对象。元组的结构根据CPython API中的以下passwd结构pwd.h文件
指数 | 属性 | 含义 |
---|---|---|
0 | pw_name | 登录名 |
1 | pw_passwd | 可选的加密密码 |
2 | pw_uid | 数字用户ID |
3 | pw_gid | 数字组ID |
4 | pw_gecos | 用户名或评论字段 |
5 | pw_dir | 用户主目录 |
6 | pw_shell | 用户命令解释器 |
pwd模块定义以下功能-
>>> import pwd >>> dir(pwd) ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'getpwall', 'getpwnam', 'getpwuid', 'struct_passwd']
getpwnam() -此函数返回密码数据库中与指定用户名相对应的记录
>>> pwd.getpwnam('root') pwd.struct_passwd(pw_name s= 'root', pw_passwd = 'x', pw_uid = 0, pw_gid = 0, pw_gecos = 'root', pw_dir = '/root', pw_shell = '/bin/bash')
getpwuid() -此函数返回密码数据库中与给定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')
getpwall() -此函数返回一个元组列表。每个元组包含每个用户的密码结构信息。结构中的uid和gid项目是整数。如果找不到与传递的参数相对应的条目,则会引发KeyError异常。
>>> pwd.getpwnam('hello') Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'getpwnam(): name not found: hello'