| \section{\module{pwd} --- | 
 |          The password database} | 
 |  | 
 | \declaremodule{builtin}{pwd} | 
 |   \platform{Unix} | 
 | \modulesynopsis{The password database (\function{getpwnam()} and friends).} | 
 |  | 
 | 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 \code{passwd} structure | 
 | (Attribute field below, see \code{<pwd.h>}): | 
 |  | 
 | \begin{tableiii}{r|l|l}{textrm}{Index}{Attribute}{Meaning} | 
 |   \lineiii{0}{\code{pw_name}}{Login name} | 
 |   \lineiii{1}{\code{pw_passwd}}{Optional encrypted password} | 
 |   \lineiii{2}{\code{pw_uid}}{Numerical user ID} | 
 |   \lineiii{3}{\code{pw_gid}}{Numerical group ID} | 
 |   \lineiii{4}{\code{pw_gecos}}{User name or comment field} | 
 |   \lineiii{5}{\code{pw_dir}}{User home directory} | 
 |   \lineiii{6}{\code{pw_shell}}{User command interpreter} | 
 | \end{tableiii} | 
 |  | 
 | The uid and gid items are integers, all others are strings. | 
 | \exception{KeyError} is raised if the entry asked for cannot be found. | 
 |  | 
 | \note{In traditional \UNIX{} the field \code{pw_passwd} usually | 
 | contains a password encrypted with a DES derived algorithm (see module | 
 | \refmodule{crypt}\refbimodindex{crypt}).  However most modern unices  | 
 | use a so-called \emph{shadow password} system.  On those unices the | 
 | field \code{pw_passwd} only contains a asterisk (\code{'*'}) or the  | 
 | letter \character{x} where the encrypted password is stored in a file | 
 | \file{/etc/shadow} which is not world readable.} | 
 |  | 
 | It defines the following items: | 
 |  | 
 | \begin{funcdesc}{getpwuid}{uid} | 
 | Return the password database entry for the given numeric user ID. | 
 | \end{funcdesc} | 
 |  | 
 | \begin{funcdesc}{getpwnam}{name} | 
 | Return the password database entry for the given user name. | 
 | \end{funcdesc} | 
 |  | 
 | \begin{funcdesc}{getpwall}{} | 
 | Return a list of all available password database entries, in arbitrary order. | 
 | \end{funcdesc} | 
 |  | 
 |  | 
 | \begin{seealso} | 
 |   \seemodule{grp}{An interface to the group database, similar to this.} | 
 | \end{seealso} |