table of contents
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.25.0-1
setnetgrent(3) | Library Functions Manual | setnetgrent(3) |
NOM¶
setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr - Gérer les entrées du groupe réseau
BIBLIOTHÈQUE¶
Bibliothèque C standard (libc, -lc)
SYNOPSIS¶
#include <netdb.h>
int setnetgrent(const char *groupe_réseau); void endnetgrent(void);
int getnetgrent(char **restrict hôte, char **restrict utilisateur, char **restrict domaine); int getnetgrent_r(char **restrict hôte, char **restrict utilisateur, char **restrict domaine, char tampon[restrict .taille_tampon], size_t taille_tampon);
int innetgr(const char *groupe_réseau, const char *hôte, const char *utilisateur, const char *domaine);
setnetgrent(), endnetgrent(), getnetgrent(), getnetgrent_r(), innetgr() :
Depuis la glibc 2.19 :
_DEFAULT_SOURCE
glibc 2.19 et antérieures :
_BSD_SOURCE || _SVID_SOURCE
DESCRIPTION¶
Le groupe_réseau est une invention de SunOS. Une base de données « groupe_réseau » est une liste de triplets de chaînes (nom_hôte, nom_utilisateur, nom_domaine) ou d'autres noms « groupe_réseau ». Chacun des éléments dans un triplet peut être vide, ce qui signifie que toute valeur corrospond. Les fonctions décrites ici permettent d'accéder aux bases de données « groupe_réseau ». Le fichier /etc/nsswitch.conf indique la base dans laquelle les recherches sont effectuées.
L'appel setnetgrent() définit le « groupe_réseau » dans lequel un appel getnetgrent() ultérieur effectuera sa recherche. La fonction getnetgrent() récupère l'entrée « groupe_réseau » suivante et renvoie les pointeurs dans hôte, utilisateur et domaine. Un pointeur NULL signifie que l'entrée correspondante ne concorde avec aucune chaîne. Les pointeurs sont valables tant qu'il n'y a pas d'appel à d'autres fonctions relatives au « groupe_réseau ». Pour éviter ce problème, vous pouvez utiliser la fonction GNU getnetgrent_r() qui enregistre les chaînes dans le tampon fourni. Pour libérer tous les tampons alloués, utilisez endnetgrent().
Dans la plupart des cas, il vous suffira de vérifier si le triplet (nom_hôte, nom_utilisateur, nom_domaine) est membre d'un groupe réseau. Pour ce faire, la fonction innetgr() peut être utilisée sans faire appel aux trois fonctions précédentes. Rappelons encore qu'un pointeur NULL est un joker (Ndt : wildcard) et correspond à n'importe quelle chaîne. La fonction est sûre du point de vue des threads.
VALEUR RENVOYÉE¶
Ces fonctions renvoient 1 si elles réussissent et 0 si elles échouent.
FICHIERS¶
/etc/netgroup
/etc/nsswitch.conf
ATTRIBUTS¶
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface | Attribut | Valeur |
setnetgrent(), getnetgrent_r(), innetgr() | Sécurité des threads | MT-Unsafe race:netgrent locale |
endnetgrent() | Sécurité des threads | MT-Unsafe race:netgrent |
getnetgrent() | Sécurité des threads | MT-Unsafe race:netgrent race:netgrentbuf locale |
Dans le tableau ci-dessus, netgrent dans race:netgrent signifie que si une des fonctions setnetgrent(), getnetgrent_r(), innetgr(), getnetgrent() ou endnetgrent() est utilisée en parallèle dans différents threads d'un programme, des situations de compétition de données peuvent survenir.
STANDARDS¶
Ces fonctions ne sont pas dans POSIX.1, mais setnetgrent(), endnetgrent(), getnetgrent() et innetgr() sont disponibles sur la plupart des systèmes UNIX. getnetgrent_r() n'est pas très répandue sur les autres systèmes.
NOTES¶
Dans l'implémentation BSD, setnetgrent() renvoie void.
VOIR AUSSI¶
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 à debian-l10n-french@lists.debian.org.
5 février 2023 | Pages du manuel de Linux 6.03 |