35.2. "pwd" — The password database
***********************************

======================================================================

This module provides access to the Unix user account and password
database.  It is available on all Unix versions.

Password database entries are reported as a tuple-like object, whose
attributes correspond to the members of the "passwd" structure
(Attribute field below, see "<pwd.h>"):

+---------+-----------------+-------------------------------+
| Index   | Attribute       | Meaning                       |
+=========+=================+===============================+
| 0       | "pw_name"       | Login name                    |
+---------+-----------------+-------------------------------+
| 1       | "pw_passwd"     | Optional encrypted password   |
+---------+-----------------+-------------------------------+
| 2       | "pw_uid"        | Numerical user ID             |
+---------+-----------------+-------------------------------+
| 3       | "pw_gid"        | Numerical group ID            |
+---------+-----------------+-------------------------------+
| 4       | "pw_gecos"      | User name or comment field    |
+---------+-----------------+-------------------------------+
| 5       | "pw_dir"        | User home directory           |
+---------+-----------------+-------------------------------+
| 6       | "pw_shell"      | User command interpreter      |
+---------+-----------------+-------------------------------+

The uid and gid items are integers, all others are strings. "KeyError"
is raised if the entry asked for cannot be found.

Note: In traditional Unix the field "pw_passwd" usually contains a
  password encrypted with a DES derived algorithm (see module
  "crypt").  However most modern unices  use a so-called *shadow
  password* system.  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.  Whether the *pw_passwd* field contains anything
  useful is system-dependent.  If available, the "spwd" module should
  be used where access to the encrypted password is required.

It defines the following items:

pwd.getpwuid(uid)

   Return the password database entry for the given numeric user ID.

pwd.getpwnam(name)

   Return the password database entry for the given user name.

pwd.getpwall()

   Return a list of all available password database entries, in
   arbitrary order.

See also:

  Module "grp"
     An interface to the group database, similar to this.

  Module "spwd"
     An interface to the shadow password database, similar to this.
