endspent

GETSPNAM(3)               Manuel du programmeur Linux              GETSPNAM(3)



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
       cachés

SYNOPSIS
       /* API du fichier des mots de passe cachés */
       #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 fonctionnalités pour la glibc (consultez
   feature_test_macros(7)) :

       getspent_r(), getspnam_r(), fgetspent_r(), sgetspent_r() :
           _BSD_SOURCE || _SVID_SOURCE

DESCRIPTION
       Il a longtemps été considéré comme sûr d'avoir des mots de passe
       chiffrés 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 problèmes de sécurité, cela n'était
       plus acceptable. Julianne Frances Haugh a implémenté la suite
       d'utilitaires « shadow » qui conserve les mots de passe chiffrés
       dans la base de données des mots de passe cachés « shadow » (par
       exemple, le fichier local des mots de passe cachés /etc/shadow, NIS ou
       LDAP), lisible seulement par le superutilisateur.

       Les fonctions décrites ci-dessous ressemblent aux fonctions
       traditionnelles de la base de données 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 données
       « shadow » de l'entrée correspondant à l'utilisateur de nom name.

       La fonction getspent() renvoie un pointeur sur l'entrée suivante de la
       base de données « shadow ». La position dans le flux d'entrée est
       initialisée par setspent(). Lorsque la lecture est finie, le programme
       devrait appeler endspent() pour désallouer les ressources.

       La fonction fgetspent() est similaire à getspent() mais utilise le
       flux fourni plutôt que celui implicitement ouvert par setspent().

       La fonction sgetspent() analyse la chaîne s fournie dans la structure
       spwd.

       La fonction putspent() écrit le contenu de la structure spwd *p
       fournie sous forme d'une ligne de texte au format du fichier des mots
       de passe cachés dans le flux fp. Les entrées chaînes de valeur NULL
       et les entrées numériques de valeur -1 sont écrites comme des
       chaînes vides.

       La fonction lckpwdf() a pour but de protéger la base de données des
       mots de passe cachés contre les accès simultanés. Elle tente
       d'obtenir un verrou, renvoie 0 si elle y arrive ou -1 si elle échoue
       (le verrou n'a pas pu être obtenu dans les 15 secondes). La fonction
       ulckpwdf() libère le verrou. Veuillez noter qu'il n'y a pas de
       protection contre l'accès direct au fichier des mots de passe cachés.
       Seuls les programmes qui utilisent lckpwdf() remarqueront le verrou.

       C'étaient les routines qui composaient l'API originale shadow. Elles
       sont largement disponibles.

   Versions réentrantes
       De manière analogue aux routines réentrantes pour la base de données
       des mots de passe, la glibc possède aussi des versions réentrantes
       pour la base de données des mots de passe cachés. La fonction
       getspnam_r() est équivalente à la fonction getspnam() mais enregistre
       la structure des mots de passe cachés trouvée dans l'espace pointé
       par spbuf. Cette structure des mots de passe cachés contient des
       pointeurs vers des chaînes qui sont stockées dans le tampon buf de
       taille buflen. Un pointeur vers le résultat (en cas de réussite) ou
       NULL (au cas où aucune entrée n'ait été trouvée ou qu'une erreur
       soit survenue) est stocké dans *spbufp.

       Les fonctions getspent_r(), fgetspent_r() et sgetspent_r() sont
       analogues à leurs homologues non réentrantes.

       Certains systèmes non glibc ont également des fonctions portant ces
       noms, souvent avec des prototypes différents.

   Structure
       La structure des mots de passe cachés est définie dans <shadow.h> de
       la manière suivante :

           struct spwd {
               char *sp_namp;     /* Identifiant de connexion */
               char *sp_pwdp;     /* Mot de passe chiffré */
               long sp_lstchg;    /* Date de dernière modification
                                     (mesurée en jours depuis l'époque,
                                     1er janvier 1970 Ã  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 après l'expiration
                                     du mot de passe pour la désactivation
                                     du compte */
               long sp_expire;    /* Date à laquelle le compte expirera,
                                     (mesurée en jours depuis l'époque,
                                     1er janvier 1970 Ã  00:00:00 (UTC)) */
               unsigned long sp_flag; /* Réservé */
           };

VALEUR RENVOYÃE
       Ces routines qui renvoient un pointeur renvoient NULL s'il n'y a plus
       d'entrée 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 réussite. En cas d'erreur, -1 est renvoyé et
       errno contient le code d'erreur.

       Pour les fonctions non réentrantes, la valeur de retour peut pointer
       sur une zone statique et peut être écrasée par des appels
       consécutifs de ces fonctions.

       Les fonctions réentrantes renvoient zéro si elles réussissent. Si
       elles échouent, une valeur d'erreur est renvoyée.

ERREURS
       EACCES L'appelant n'a pas le droit d'accéder au fichier de mots de
              passe cachés.

       ERANGE Le tampon fourni est trop petit.

FICHIERS
       /etc/shadow
              fichier base de données des mots de passe cachés

       /etc/.pwd.lock
              fichier verrou

       Le fichier d'inclusion <paths.h> définit la constante _PATH_SHADOW
       comme étant le chemin du fichier des mots de passe cachés.

CONFORMITÃ
       La base de données shadow et son API ne sont pas spécifiées dans
       POSIX.1-2001. Cependant, beaucoup de systèmes fournissent une API
       similaire.

VOIR AUSSI
       getgrnam(3), getpwnam(3), getpwnam_r(3), shadow(5)

COLOPHON
       Cette page fait partie de la publication 3.65 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler des
       anomalies peuvent être trouvées à l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION
       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction
       francophone au sein du projet perkamon
       <http://perkamon.alioth.debian.org/>.

       Alain Portal <http://manpagesfr.free.fr/> (2004-2006).  Florentin
       Duneau et l'équipe francophone de traduction de Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant Ã
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».



GNU                              19 avril 2013                     GETSPNAM(3)