# 35.2. `pwd` - 密码数据库

此模块提供对Unix用户帐户和密码数据库的访问。它在所有Unix版本上可用。

密码数据库条目被报告为类元组对象，其属性对应于`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` | 用户命令解释器

uid和gid项是整数，所有其他都是字符串。如果无法找到要求的条目，则会引发`KeyError`。

注意

在传统的Unix中，字段`pw_passwd`通常包含用DES导出的算法加密的密码（参见模块`crypt`）。然而，大多数现代unices使用所谓的shadow密码系统。On those unices the pw_passwd field only contains an asterisk (`'*'`) or the letter `'x'` where the encrypted password is stored in a file `/etc/shadow` which is not world readable. pw_passwd字段是否包含任何有用的是系统相关的。如果可用，应在需要访问加密密码的地方使用`spwd`模块。

它定义以下项目：

`pwd.``getpwuid`(uid)

  返回给定数字用户ID的密码数据库条目。

`pwd.``getpwnam`(name)

  返回给定用户名的密码数据库条目。

`pwd.``getpwall`()

  以任意顺序返回所有可用密码数据库条目的列表。

也可以看看

模块`grp`
  一个到组数据库的接口，类似于此。
模块`spwd`
  一个到shadow密码数据库的接口，类似这样。