"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" 模块）。不过现在的 unix 系统使用 *影子密码* 系统。在这些
  unix 上，*pw_passwd* 只包含星号（"'*'"）或字母（"'x'"），而加密的密
  码存储在文件 "/etc/shadow" 中，此文件不是全局可读的。在 *pw_passwd*
  中是否包含有用信息是系统相关的。如果可以访问到加密的密码，就需要使用
  "spwd" 模块了。

本模块定义如下内容：

pwd.getpwuid(uid)

   给定用户的数值 ID，返回密码数据库的对应项目。

pwd.getpwnam(name)

   给定用户名，返回密码数据库的对应项目。

pwd.getpwall()

   返回密码数据库中所有项目的列表，顺序不是固定的。

也參考:

  "grp" 模組
     针对用户组数据库的接口，与本模块类似。

  "spwd" 模組
     针对影子密码数据库的接口，与本模块类似。
