blob: 1e7a1c8a60adec6bd5f35018bd0eaa7bccceb6e1 [file] [log] [blame]
Fred Drake295da241998-08-10 19:42:37 +00001\section{\module{pwd} ---
Fred Drakef6863c11999-03-02 16:37:17 +00002 The password database}
3
Fred Drakeb91e9341998-07-23 17:59:49 +00004\declaremodule{builtin}{pwd}
Fred Drakea54a8871999-03-02 17:03:42 +00005 \platform{Unix}
Fred Drakeb91e9341998-07-23 17:59:49 +00006\modulesynopsis{The password database (\function{getpwnam()} and friends).}
7
Fred Drake38e5d272000-04-03 20:13:55 +00008This module provides access to the \UNIX{} user account and password
9database. It is available on all \UNIX{} versions.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000010
Martin v. Löwis29001ff2002-03-01 10:47:37 +000011Password database entries are reported as a tuple-like object, whose
12attributes correspond to the members of the \code{passwd} structure
13(Attribute field below, see \code{<pwd.h>}):
Fred Drake38e5d272000-04-03 20:13:55 +000014
Martin v. Löwis29001ff2002-03-01 10:47:37 +000015\begin{tableiii}{r|l|l}{textrm}{Index}{Attribute}{Meaning}
Fred Drake38e5d272000-04-03 20:13:55 +000016 \lineiii{0}{\code{pw_name}}{Login name}
17 \lineiii{1}{\code{pw_passwd}}{Optional encrypted password}
18 \lineiii{2}{\code{pw_uid}}{Numerical user ID}
19 \lineiii{3}{\code{pw_gid}}{Numerical group ID}
20 \lineiii{4}{\code{pw_gecos}}{User name or comment field}
21 \lineiii{5}{\code{pw_dir}}{User home directory}
22 \lineiii{6}{\code{pw_shell}}{User command interpreter}
23\end{tableiii}
24
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000025The uid and gid items are integers, all others are strings.
Fred Drakef6863c11999-03-02 16:37:17 +000026\exception{KeyError} is raised if the entry asked for cannot be found.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000027
Fred Drake0aa811c2001-10-20 04:24:09 +000028\note{In traditional \UNIX{} the field \code{pw_passwd} usually
Fred Drake38e5d272000-04-03 20:13:55 +000029contains a password encrypted with a DES derived algorithm (see module
30\refmodule{crypt}\refbimodindex{crypt}). However most modern unices
31use a so-called \emph{shadow password} system. On those unices the
32field \code{pw_passwd} only contains a asterisk (\code{'*'}) or the
33letter \character{x} where the encrypted password is stored in a file
Fred Drake0aa811c2001-10-20 04:24:09 +000034\file{/etc/shadow} which is not world readable.}
Fred Drake38e5d272000-04-03 20:13:55 +000035
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000036It defines the following items:
37
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000038\begin{funcdesc}{getpwuid}{uid}
39Return the password database entry for the given numeric user ID.
40\end{funcdesc}
41
42\begin{funcdesc}{getpwnam}{name}
43Return the password database entry for the given user name.
44\end{funcdesc}
45
46\begin{funcdesc}{getpwall}{}
47Return a list of all available password database entries, in arbitrary order.
48\end{funcdesc}
Fred Drake38e5d272000-04-03 20:13:55 +000049
50
51\begin{seealso}
52 \seemodule{grp}{An interface to the group database, similar to this.}
53\end{seealso}