Provided by: manpages-fr-dev_2.45.1-1_all bug
 

NOM

        getpwnam,  getpwnam_r, getpwuid, getpwuid_r - Lire un enregistrement du
        fichier des mots de passe.
 

SYNOPSIS

        #include <sys/types.h>
        #include <pwd.h>
 
        struct passwd *getpwnam (const char * name);
 
        struct passwd *getpwuid (uid_t uid);
 
        int getpwnam_r(const char *name, struct passwd *pwbuf,
         char *buf, size_t buflen, struct passwd **pwbufp);
 
        int getpwuid_r(uid_t uid, struct passwd *pwbuf,
         char *buf, size_t buflen, struct passwd **pwbufp);
 

DESCRIPTION

        La fonction getpwnam() renvoie un pointeur sur une structure  contenant
        les divers champs de l’enregistrement de la base de données des mots de
        passe (par exemple, la base de données locale /etc/passwd, NIS ou LDAP)
        correspondant au nom d’utilisateur name.
 
        La  fonction getpwuid() renvoie un pointeur sur une structure contenant
        les divers champs de l’enregistrement de la base de données des mots de
        passe correspondant à l’ID utilisateur uid.
 
        Les  fonctions getpwnam_r() et getpwuid_r() obtiennent les mêmes infor‐
        mations mais enregistrent la structure  passwd  trouvée  dans  l’espace
        pointé  par  pwbuf.  Cette structure passwd contient des pointeurs vers
        des chaînes, et ces chaînes sont enregistrées dans  le  tampon  buf  de
        taille  buflen. Un pointeur vers le résultat (en cas de succès) ou NULL
        (au cas où aucune entrée n’ait été trouvée ou  qu’une  erreur  ne  soit
        survenue) est enregistré dans *pwbufp.
 
        La structure passwd est définie dans <pwd.h> ainsi :
 
           struct passwd {
               char   *pw_name;       /* nom de l’utilisateur */
               char   *pw_passwd;     /* mot de passe de l’utilisateur */
               uid_t   pw_uid;        /* ID de l’utilisateur */
               gid_t   pw_gid;        /* ID du groupe */
               char   *pw_gecos;      /* nom réel */
               char   *pw_dir;        /* répertoire personnel */
               char   *pw_shell;      /* shell */
           };
 
        La  taille maximum nécessaire pour buf peut être récupérée en utilisant
        sysconf(3) avec le paramètre _SC_GETPW_R_SIZE_MAX.
        Les fonctions getpwnam() et getpwuid() renvoient un  pointeur  sur  une
        structure  passwd,  ou  NULL  si  une erreur se produit, ou si l’enreg‐
        istrement correspondant n’est pas trouvé. En cas  d’erreur,  errno  est
        positionnée  en  conséquence.  Si  on  souhaite  vérifier  errno  après
        l’appel, celle-ci devrait être positionnée à zéro avant l’appel.
 
        La valeur de retour peut pointer vers une zone statique  et  donc  être
        écrasée  par  des  appels  successifs à getpwent(), getpwnam() ou getp     
        wuid().
 
        Les fonctions getpwnam_r() et  getpwuid_r()  renvoient  zéro  si  elles
        réussissent. En cas d’erreur, une valeur d’erreur est renvoyée.
 

ERREURS

        0 ou ENOENT ou ESRCH ou EBADF ou EPERM ou ...
               Le nom name ou l’identifiant uid n’ont pas été trouvés.
 
        EINTR  Un signal a été capturé.
 
        EIO    Erreur d’entrée-sortie.
 
        EMFILE Le nombre maximal (OPEN_MAX) de fichiers ouverts pour le proces‐
               sus est atteint.
 
        ENFILE Le nombre  maximal  de  fichiers  ouverts  sur  le  système  est
               atteint.
 
        ENOMEM Pas assez de mémoire pour allouer la structure passwd.
 
        ERANGE L’espace tampon fourni est insuffisant.
 

NOTE

        La  base  de  données  des  mots de passe utilisateur est la plupart du
        temps /etc/passwd. Cependant, sur les systèmes récents, elle peut faire
        référence à une base de données réseau NIS, LDAP et les autres fichiers
        locaux sont configurés dans /etc/nsswitch.conf.
 

FICHIERS

        /etc/passwd
               Base de données des mots de passe locaux
 
        /etc/nsswitch.conf
               Fichier de configuration des base  de  données  système  et  des
               options des noms de services
        SVr4, BSD 4.3, POSIX.1-2001
 

NOTES

        La  description "VALEUR RENVOYÉE" ci-dessus vient de POSIX.1-2001. Elle
        ne considère pas le cas « non trouvé » comme une erreur, et ne spécifie
        pas  errno  dans ce cas. Cela rend la détection d’erreur impossible. On
        peut dire que, d’après POSIX, errno est inchangée dans le cas où aucune
        entrée n’est trouvée. Des essais sur de nombreux systèmes Unix ont fait
        apparaître différentes valeurs dans ce cas : 0, ENOENT,  EBADF,  ESRCH,
        EWOULDBLOCK, EPERM et probablement d’autres.
 
        Le  champ  pw_dir  contient  le nom du répertoire de travail initial de
        l’utilisateur. Les programmes de  connexion  (« login »)  utilisent  ce
        champ  pour  initialiser  la variable d’environnement « HOME » pour les
        interpréteurs de  commandes  initiaux.  Une  application  qui  souhaite
        déterminer  le  répertoire  personnel  des utilisateurs devrait lire la
        valeur de « HOME » (au lieu de la valeur de getpwuid(getuid())->pw_dir)
        puisque  que  ceci  permet à l’utilisateur de modifier « son répertoire
        personnel » lorsqu’il est connecté. Pour déterminer le répertoire  per‐
        sonnel « initial » d’un autre utilisateur, il est nécessaire d’utiliser
        getpwnam("utilisateur")->pw_dir ou un équivalent.
        endpwent(3), fgetpwent(3), getgrnam(3),  getpw(3),  getpwent(3),  putp     
        went(3), setpwent(3), nsswitch.conf(5), passwd(5)
 

TRADUCTION

        Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
        Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
        Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
        disposition sur http://manpagesfr.free.fr/.
 
        Les mises à jour et corrections de la version présente dans Debian sont
        directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
        francophone de traduction de Debian.
 
        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> ».