'\" t
.\" Title: shadow
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets v1.76.1
.\" Date: 25/05/2012
.\" Manual: Appels de biblioth\(`eque
.\" Source: shadow-utils 4.1.5.1
.\" Language: French
.\"
.TH "SHADOW" "3" "25/05/2012" "shadow\-utils 4\&.1\&.5\&.1" "Appels de biblioth\(`eque"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NOM"
shadow, getspnam \- routines d\*(Aqutilisation des mots de passe cach\('es
.SH "SYNTAX"
.PP
\fI#include \fR
.PP
\fIstruct spwd *getspent();\fR
.PP
\fIstruct spwd *getspnam(char\fR
\fI*nom\fR\fI);\fR
.PP
\fIvoid setspent();\fR
.PP
\fIvoid endspent();\fR
.PP
\fIstruct spwd *fgetspent(FILE\fR
\fI*fp\fR\fI);\fR
.PP
\fIstruct spwd *sgetspent(char\fR
\fI*cp\fR\fI);\fR
.PP
\fIint putspent(struct spwd\fR
\fI*p,\fR
\fIFICHIER\fR
\fI*fp\fR\fI);\fR
.PP
\fIint lckpwdf();\fR
.PP
\fIint ulckpwdf();\fR
.SH "DESCRIPTION"
.PP
\fIshadow\fR
manipule le contenu du fichier des mots de passe cach\('es,
/etc/shadow\&. La structure d\('efinie dans le fichier inclus est\ \&:
.sp
.if n \{\
.RS 4
.\}
.nf
struct spwd {
char *sp_namp; /* nom de connexion de l\*(Aqutilisateur */
char *sp_pwdp; /* mot de passe chiffr\('e */
long int sp_lstchg; /* dernier changement de mot de passe */
long int sp_min; /* jours avant de pouvoir changer de mot de passe */
long int sp_max; /* jours avant l\*(Aqobligation de changer de mot de passe */
long int sp_warn; /* jours d\*(Aqavertissement avant la fin de validit\('e */
long int sp_inact; /* jours avant que le compte soit inactif */
long int sp_expire; /* date de fin de validit\('e du compte */
unsigned long int sp_flag; /* r\('eserv\('e pour une utilisation future */
}
.fi
.if n \{\
.RE
.\}
.PP
La signification de chaque champ est la suivante\ \&:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
sp_namp \- pointeur vers le nom d\*(Aqutilisateur termin\('e par un z\('ero binaire (\(Fo\ \&null\-terminated\ \&\(Fc)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
sp_pwdp \- pointeur vers le mot de passe termin\('e par un z\('ero binaire (\(Fo\ \&null\-terminated\ \&\(Fc)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
sp_lstchg \- nombre de jours, compt\('es \(`a partir du 1er\ \&janvier\ \&1970, depuis la derni\(`ere modification du mot de passe
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
sp_min \- nombre de jours pendant lesquels le mot de passe ne peut pas \(^etre chang\('e
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
sp_max \- nombre maximal de jours avant que le mot de passe doive \(^etre chang\('e
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
sp_warn \- nombre de jours avant que le mot de passe n\*(Aqarrive en fin de validit\('e pendant lesquels l\*(Aqutilisateur est averti de la fin prochaine de la validit\('e de son mot de passe
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
sp_inact \- nombre de jours apr\(`es la fin de validit\('e du mot de passe avant de consid\('erer que le compte est inactif et soit d\('esactiv\('e
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
sp_expire \- nombre de jours, compt\('es \(`a partir du 1er\ \&janvier\ \&1970, apr\(`es lesquels le compte sera d\('esactiv\('e
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
sp_flag \- r\('eserv\('e pour une utilisation future
.RE
.SH "DESCRIPTION"
.PP
\fIGetspent\fR,
\fIgetspname\fR,
\fIfgetspent\fR, et
\fIsgetspent\fR
renvoient tous un pointeur vers une structure
\fIstruct spwd\fR\&.
\fIGetspent\fR
renvoie l\*(Aqentr\('ee suivante du fichier, et
\fIfgetspent\fR
renvoie l\*(Aqentr\('ee suivante du flux qui est consid\('er\('e comme \('etant un fichier au format correct\&.
\fISgetspent\fR
renvoie un pointeur vers une structure
\fIstruct spwd\fR
en utilisant la cha\(^ine de caract\(`ere fournie en entr\('ee\&.
\fIGetspnam\fR
cherche \(`a partir de la position courante une entr\('ee correspondant \(`a
\fInom\fR
dans le fichier fourni en entr\('ee\&.
.PP
\fISetspent\fR
et
\fIendspent\fR
peuvent \(^etre utilis\('es pour d\('ebuter et terminer l\*(Aqacc\(`es au fichier de mots de passe cach\('es\&.
.PP
Les fonctions
\fIlckpwdf\fR
et
\fIulckpwdf\fR
doivent \(^etre utilis\('ees pour garantir un acc\(`es exclusif au fichier
/etc/shadow\&.
\fILckpwdf\fR
essaie de placer un verrou avec
\fIpw_lock\fR
pendant 15 secondes\&. Il essaie ensuite de placer un second verrou en utilisant
\fIspw_lock\fR
pendant le reste de ces 15 secondes\&. Si un de ces verrous ne peut \(^etre plac\('e,
\fIlckpwdf\fR
renvoie \-1\&. Quand les deux verrous peuvent \(^etre plac\('es, la valeur 0 est renvoy\('ee\&.
.SH "DIAGNOSTICS"
.PP
Les fonctions renvoient NULL si plus aucune entr\('ee n\*(Aqest disponible ou si une erreur est survenue lors du traitement\&. Les fonctions dont la valeur de retour est un
\fIint\fR
renvoient 0 en cas de succ\(`es et \-1 en cas d\*(Aq\('echec\&.
.SH "AVERTISSEMENTS"
.PP
Ces fonctions peuvent n\*(Aq\(^etre utilis\('ees que par le superutilisateur car l\*(Aqacc\(`es au fichier de mots de passe cach\('es est restreint\&.
.SH "FICHIERS"
.PP
/etc/shadow
.RS 4
Informations s\('ecuris\('ees sur les comptes utilisateurs\&.
.RE
.SH "VOIR AUSSI"
.PP
\fBgetpwent\fR(3),
\fBshadow\fR(5)\&.