| \section{\module{spwd} --- | 
 |          The shadow password database} | 
 |  | 
 | \declaremodule{builtin}{spwd} | 
 |   \platform{Unix} | 
 | \modulesynopsis{The shadow password database (\function{getspnam()} and friends).} | 
 | \versionadded{2.5} | 
 |  | 
 | This module provides access to the \UNIX{} shadow password database. | 
 | It is available on various \UNIX{} versions. | 
 |  | 
 | You must have enough privileges to access the shadow password database | 
 | (this usually means you have to be root). | 
 |  | 
 | Shadow password database entries are reported as a tuple-like object, whose | 
 | attributes correspond to the members of the \code{spwd} structure | 
 | (Attribute field below, see \code{<shadow.h>}): | 
 |  | 
 | \begin{tableiii}{r|l|l}{textrm}{Index}{Attribute}{Meaning} | 
 |   \lineiii{0}{\code{sp_nam}}{Login name} | 
 |   \lineiii{1}{\code{sp_pwd}}{Encrypted password} | 
 |   \lineiii{2}{\code{sp_lstchg}}{Date of last change} | 
 |   \lineiii{3}{\code{sp_min}}{Minimal number of days between changes} | 
 |   \lineiii{4}{\code{sp_max}}{Maximum number of days between changes} | 
 |   \lineiii{5}{\code{sp_warn}}{Number of days before password expires to warn user about it} | 
 |   \lineiii{6}{\code{sp_inact}}{Number of days after password expires until account is blocked} | 
 |   \lineiii{7}{\code{sp_expire}}{Number of days since 1970-01-01 until account is disabled} | 
 |   \lineiii{8}{\code{sp_flag}}{Reserved} | 
 | \end{tableiii} | 
 |  | 
 | The sp_nam and sp_pwd items are strings, all others are integers. | 
 | \exception{KeyError} is raised if the entry asked for cannot be found. | 
 |  | 
 | It defines the following items: | 
 |  | 
 | \begin{funcdesc}{getspnam}{name} | 
 | Return the shadow password database entry for the given user name. | 
 | \end{funcdesc} | 
 |  | 
 | \begin{funcdesc}{getspall}{} | 
 | Return a list of all available shadow password database entries, in arbitrary order. | 
 | \end{funcdesc} | 
 |  | 
 |  | 
 | \begin{seealso} | 
 |   \seemodule{grp}{An interface to the group database, similar to this.} | 
 |   \seemodule{pwd}{An interface to the normal password database, similar to this.} | 
 | \end{seealso} |