getpwent
Section: C Library Functions (3)
Updated: 5 février 2023
Index
Return to Main Contents
NOM
getpwent, setpwent, endpwent - Lire un enregistrement du fichier des mots de
passe
BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)
SYNOPSIS
#include <sys/types.h>
#include <pwd.h>
struct passwd *getpwent(void);
void setpwent(void);
void endpwent(void);
Exigences de macros de test de fonctionnalités pour la glibc (consulter
feature_test_macros(7)) :
getpwent(), setpwent(), endpwent() :
_XOPEN_SOURCE >= 500
|| /* glibc >= 2.19 : */ _DEFAULT_SOURCE
|| /* glibc <= 2.19 : */ _BSD_SOURCE || _SVID_SOURCE
DESCRIPTION
La fonction getpwent() renvoie un pointeur sur une structure contenant
les divers champs d'un enregistrement de la base de données des mots de
passe (par exemple, le fichier de mots de passe local /etc/passwd, NIS ou
LDAP). Au premier appel, getpwent() renvoie le premier enregistrement,
puis les enregistrements suivants lors des appels ultérieurs.
La fonction setpwent() ramène la position dans le fichier au début de la
base de données des mots de passe.
La fonction endpwent() est utilisée pour fermer la base de données des
mots de passe après que toutes les actions ont été réalisées.
La structure passwd est définie dans <pwd.h> comme ceci :
struct passwd {
char *pw_name; /* Nom d'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; /* Information utilisateur */
char *pw_dir; /* Répertoire personnel */
char *pw_shell; /* Interpréteur de commande */
};
Lorsque les mots de passe shadow(5) sont activés (ils le sont par défaut
sur de nombreuses installations GNU/Linux), le contenu de pw_passwd n'est
pas très utile en général. Dans ce cas, la plupart des mots de passe sont
stockés dans un fichier séparé.
La variable pw_shell peut être vide, auquel cas le système exécutera
l'interpréteur par défaut (/bin/sh) pour l'utilisateur.
Pour plus d'informations à propos des champs de cette structure, consultez
passwd(5).
VALEUR RENVOYÉE
La fonction getpwent() renvoie un pointeur sur une structure passwd,
ou NULL si une erreur s'est produite ou s'il n'y a plus d'enregistrement. En
cas d'erreur, errno est défini pour indiquer l'erreur. Si vous souhaitez
vérifier errno après l'appel, sa valeur doit ê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(3) ou getpwuid(3)
(ne pas passer le pointeur renvoyé à free(3)).
ERREURS
- EINTR
-
Un signal a été intercepté ; consultez signal(7).
- EIO
-
Erreur d'entrée-sortie.
- EMFILE
-
La limite du nombre de descripteurs de fichiers par processus a été
atteinte.
- ENFILE
-
La limite du nombre total de fichiers ouverts pour le système entier a été
atteinte.
- ENOMEM
-
Pas assez de mémoire pour allouer la structure passwd.
- ERANGE
-
L'espace tampon fourni est insuffisant.
FICHIERS
- /etc/passwd
-
Base de données des mots de passe locaux
ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface | Attribut | Valeur
|
getpwent()
| Sécurité des threads |
MT-Unsafe race:pwent
race:pwentbuf locale
|
setpwent(),
endpwent()
| Sécurité des threads |
MT-Unsafe race:pwent locale
|
Dans la table ci-dessus, pwent dans race:pwent signifie que si une des
fonctions setpwent(), getpwent() ou endpwent() est utilisée en
parallèle dans différents threads d'un programme, des situations de
compétition de données peuvent se produire.
STANDARDS
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD. Le champ pw_gecos n'est pas
spécifié dans POSIX, mais il est présent sur la plupart des implémentations.
VOIR AUSSI
fgetpwent(3), getpw(3), getpwent_r(3), getpwnam(3),
getpwuid(3), putpwent(3), shadow(5), passwd(5)
TRADUCTION
La traduction française de cette page de manuel a été créée par
Christophe Blaess <https://www.blaess.fr/christophe/>,
Stéphan Rafin <stephan.rafin@laposte.net>,
Thierry Vignaud <tvignaud@mandriva.com>,
François Micaux,
Alain Portal <aportal@univ-montp2.fr>,
Jean-Philippe Guérard <fevrier@tigreraye.org>,
Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>,
Julien Cristau <jcristau@debian.org>,
Thomas Huriaux <thomas.huriaux@gmail.com>,
Nicolas François <nicolas.francois@centraliens.net>,
Florentin Duneau <fduneau@gmail.com>,
Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
Denis Barbier <barbier@debian.org>,
David Prévot <david@tilapin.org>
et
Lucien Gentis <lucien.gentis@waika9.com>
Cette traduction est une documentation libre ; veuillez vous reporter à la
GNU General Public License version 3
concernant les conditions de copie et
de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- FICHIERS
-
- ATTRIBUTS
-
- STANDARDS
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 20:25:19 GMT, May 22, 2024