blob: 0c74d2655ea0eaf2b766efdea27ced93cb84e976 [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
Skip Montanaroc8c45c22005-03-02 04:29:23 +000032\var{pw_passwd} field only contains an asterisk (\code{'*'}) or the
Fred Drake38e5d272000-04-03 20:13:55 +000033letter \character{x} where the encrypted password is stored in a file
Skip Montanaroc8c45c22005-03-02 04:29:23 +000034\file{/etc/shadow} which is not world readable. Whether the \var{pw_passwd}
35field contains anything useful is system-dependent. If available, the
36\module{spwd} module should be used where access to the encrypted password
37is required.}
Fred Drake38e5d272000-04-03 20:13:55 +000038
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000039It defines the following items:
40
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000041\begin{funcdesc}{getpwuid}{uid}
42Return the password database entry for the given numeric user ID.
43\end{funcdesc}
44
45\begin{funcdesc}{getpwnam}{name}
46Return the password database entry for the given user name.
47\end{funcdesc}
48
49\begin{funcdesc}{getpwall}{}
50Return a list of all available password database entries, in arbitrary order.
51\end{funcdesc}
Fred Drake38e5d272000-04-03 20:13:55 +000052
53
54\begin{seealso}
55 \seemodule{grp}{An interface to the group database, similar to this.}
Martin v. Löwisc3001752005-01-23 09:27:24 +000056 \seemodule{spwd}{An interface to the shadow password database, similar to this.}
Fred Drake38e5d272000-04-03 20:13:55 +000057\end{seealso}