Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,
fgetspent, fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf,
ulckpwdf - Obtenir un enregistrement du fichier des mots de passe
caches
SYNOPSIS
/* API du fichier des mots de passe caches */
#include <shadow.h>
struct spwd *getspnam(const char *name);
struct spwd *getspent(void);
void setspent(void);
void endspent(void);
struct spwd *fgetspent(FILE *fp);
struct spwd *sgetspent(const char *s);
int putspent(struct spwd *p, FILE *fp);
int lckpwdf(void);
int ulckpwdf(void);
/* Extension GNU */
#include <shadow.h>
int getspent_r(struct spwd *spbuf,
char *buf, size_t buflen, struct spwd **spbufp);
int getspnam_r(const char *name, struct spwd *spbuf,
char *buf, size_t buflen, struct spwd **spbufp);
int fgetspent_r(FILE *fp, struct spwd *spbuf,
char *buf, size_t buflen, struct spwd **spbufp);
int sgetspent_r(const char *s, struct spwd *spbuf,
char *buf, size_t buflen, struct spwd **spbufp);
Exigences de macros de test de fonctionnalites pour la glibc (consultez
feature_test_macros(7)) :
getspent_r(), getspnam_r(), fgetspent_r(), sgetspent_r() :
_BSD_SOURCE || _SVID_SOURCE
DESCRIPTION
Il a longtemps ete considere comme sur d'avoir des mots de passe
chiffres ouvertement visibles dans le fichier des mots de passe.
Lorsque les ordinateurs sont devenus plus rapides et que les gens sont
devenus plus conscients des problemes de securite, cela n'etait plus
acceptable. Julianne Frances Haugh a implemente la suite d'utilitaires
<< shadow >> qui conserve les mots de passe chiffres dans la base de
donnees des mots de passe caches << shadow >> (par exemple, le fichier
local des mots de passe caches /etc/shadow, NIS ou LDAP), lisible
seulement par le superutilisateur.
Les fonctions decrites ci-dessous ressemblent aux fonctions
traditionnelles de la base de donnees des mots de passe (par exemple,
consultez getpwnam(3) et getpwent(3)).
La fonction getspnam() renvoie un pointeur vers une structure contenant
les champs d'un enregistrement extrait de la base de donnees
<< shadow >> de l'entree correspondant a l'utilisateur de nom name.
La fonction getspent() renvoie un pointeur sur l'entree suivante de la
base de donnees << shadow >>. La position dans le flux d'entree est
initialisee par setspent(). Lorsque la lecture est finie, le programme
devrait appeler endspent() pour desallouer les ressources.
La fonction fgetspent() est similaire a getspent() mais utilise le flux
fourni plutot que celui implicitement ouvert par setspent().
La fonction sgetspent() analyse la chaine s fournie dans la structure
spwd.
La fonction putspent() ecrit le contenu de la structure spwd *p fournie
sous forme d'une ligne de texte au format du fichier des mots de passe
caches dans le flux fp. Les entrees chaines de valeur NULL et les
entrees numeriques de valeur -1 sont ecrites comme des chaines vides.
La fonction lckpwdf() a pour but de proteger la base de donnees des
mots de passe caches contre les acces simultanes. Elle tente d'obtenir
un verrou, renvoie 0 si elle y arrive ou -1 si elle echoue (le verrou
n'a pas pu etre obtenu dans les 15 secondes). La fonction ulckpwdf()
libere le verrou. Veuillez noter qu'il n'y a pas de protection contre
l'acces direct au fichier des mots de passe caches. Seuls les
programmes qui utilisent lckpwdf() remarqueront le verrou.
C'etaient les routines qui composaient l'API originale shadow. Elles
sont largement disponibles.
Versions r'eentrantes
De maniere analogue aux routines reentrantes pour la base de donnees
des mots de passe, la glibc possede aussi des versions reentrantes pour
la base de donnees des mots de passe caches. La fonction getspnam_r()
est equivalente a la fonction getspnam() mais enregistre la structure
des mots de passe caches trouvee dans l'espace pointe par spbuf. Cette
structure des mots de passe caches contient des pointeurs vers des
chaines qui sont stockees dans le tampon buf de taille buflen. Un
pointeur vers le resultat (en cas de reussite) ou NULL (au cas ou
aucune entree n'ait ete trouvee ou qu'une erreur soit survenue) est
stocke dans *spbufp.
Les fonctions getspent_r(), fgetspent_r() et sgetspent_r() sont
analogues a leurs homologues non reentrantes.
Certains systemes non glibc ont egalement des fonctions portant ces
noms, souvent avec des prototypes differents.
Structure
La structure des mots de passe caches est definie dans <shadow.h> de la
maniere suivante :
struct spwd {
char *sp_namp; /* Identifiant de connexion */
char *sp_pwdp; /* Mot de passe chiffre */
long sp_lstchg; /* Date de derniere modification,
mesuree en jours depuis l'epoque,
1er janvier 1970 a 00:00:00 (UTC) */
long sp_min; /* Nombre de jours minimum entre
deux modifications */
long sp_max; /* Nombre de jours maximum entre
deux modifications */
long sp_warn; /* Nombre de jours avant l'expiration
du mot de passe pour avertir
l'utilisateur de le modifier */
long sp_inact; /* Nombre de jours apres l'expiration
du mot de passe pour la desactivation
du compte */
long sp_expire; /* Date a laquelle le compte expirera,
mesuree en jours depuis l'epoque,
1er janvier 1970 a 00:00:00 (UTC) */
unsigned long sp_flag; /* Reserve */
};
VALEUR RENVOY'EE
Ces routines qui renvoient un pointeur renvoient NULL s'il n'y a plus
d'entree disponible ou si une erreur est survenue pendant le
traitement. Les routines qui ont un int comme valeur de retour
renvoient 0 en cas de reussite et -1 en cas d'echec.
Pour les fonctions non reentrantes, la valeur de retour peut pointer
sur une zone statique et peut etre ecrasee par des appels consecutifs
de ces fonctions.
Les fonctions reentrantes renvoient zero si elles reussissent. Si elles
echouent, une valeur d'erreur est renvoyee.
ERREURS
ERANGE Le tampon fourni est trop petit.
FICHIERS
/etc/shadow
fichier base de donnees des mots de passe caches
/etc/.pwd.lock
fichier verrou
Le fichier d'inclusion <paths.h> definit la constante _PATH_SHADOW
comme etant le chemin du fichier des mots de passe caches.
CONFORMIT'E
La base de donnees shadow et son API ne sont pas specifiees dans
POSIX.1-2001. Cependant, beaucoup de systemes fournissent une API
similaire.
VOIR AUSSI
getgrnam(3), getpwnam(3), getpwnam_r(3), shadow(5)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Alain Portal <URL:http://manpagesfr.free.fr/> (2004-2006). Florentin
Duneau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.
GNU 25 fevrier 2010 GETSPNAM(3)