| \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} |