setnetgrent(3) Library Functions Manual setnetgrent(3)

setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr - Gérer les entrées du groupe réseau

Bibliothèque C standard (libc, -lc)

#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);
Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

setnetgrent(), endnetgrent(), getnetgrent(), getnetgrent_r(), innetgr():

    Depuis la glibc 2.19 :
        _DEFAULT_SOURCE
    glibc 2.19 et antérieures :
        _BSD_SOURCE || _SVID_SOURCE

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.

Ces fonctions renvoient 1 si elles réussissent et 0 si elles échouent.

/etc/netgroup
/etc/nsswitch.conf

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.

Dans l'implémentation BSD, setnetgrent() renvoie void.

Aucun.

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.

sethostent(3), setprotoent(3), setservent(3)

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.

30 juillet 2023 Pages du manuel de Linux 6.05.01