ref: a7c01127f9749fe471367c6461cde357403cc3b3
dir: /sys/src/cmd/python/Doc/lib/libpwd.tex/
\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 \var{pw_passwd} field only contains an asterisk (\code{'*'}) or the letter \character{x} where the encrypted password is stored in a file \file{/etc/shadow} which is not world readable. Whether the \var{pw_passwd} field contains anything useful is system-dependent. If available, the \module{spwd} module should be used where access to the encrypted password is required.} 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.} \seemodule{spwd}{An interface to the shadow password database, similar to this.} \end{seealso}