'\" t .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 01/04/2024 .\" Manual: Library Calls .\" Source: shadow-utils 4.15.1 .\" Language: French .\" .TH "SHADOW" "3" "01/04/2024" "shadow\-utils 4\&.15\&.1" "Library Calls" .\" ----------------------------------------------------------------- .\" * 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*name\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 \fIFILE\fR \fI*fp\fR\fI);\fR .PP \fIint lckpwdf();\fR .PP \fIint ulckpwdf();\fR .SH "DESCRIPTION" .PP \fIshadow\fR manipulates the contents of the shadow password file, /etc/shadow\&. The structure in the \fI#include\fR file is: .sp .if n \{\ .RS 4 .\} .nf struct spwd { char *sp_namp; /* user login name */ char *sp_pwdp; /* encrypted password */ long int sp_lstchg; /* last password change */ long int sp_min; /* days until change allowed\&. */ long int sp_max; /* days before change required */ long int sp_warn; /* days warning for expiration */ long int sp_inact; /* days before account inactive */ long int sp_expire; /* date when account expires */ unsigned long int sp_flag; /* reserved for future use */ } .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, and \fIsgetspent\fR each return a pointer to a \fIstruct spwd\fR\&. \fIgetspent\fR returns the next entry from the file, and \fIfgetspent\fR returns the next entry from the given stream, which is assumed to be a file of the proper format\&. \fIsgetspent\fR returns a pointer to a \fIstruct spwd\fR using the provided string as input\&. \fIgetspnam\fR searches from the current position in the file for an entry matching \fIname\fR\&. .PP \fIsetspent\fR and \fIendspent\fR may be used to begin and end, respectively, access to the shadow password file\&. .PP The \fIlckpwdf\fR and \fIulckpwdf\fR routines should be used to insure exclusive access to the /etc/shadow file\&. \fIlckpwdf\fR attempts to acquire a lock using \fIpw_lock\fR for up to 15 seconds\&. It continues by attempting to acquire a second lock using \fIspw_lock\fR for the remainder of the initial 15 seconds\&. Should either attempt fail after a total of 15 seconds, \fIlckpwdf\fR returns \-1\&. When both locks are acquired 0 is returned\&. .SH "DIAGNOSTICS" .PP Routines return NULL if no more entries are available or if an error occurs during processing\&. Routines which have \fIint\fR as the return value return 0 for success and \-1 for failure\&. .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)\&.