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);

    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

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
sethostent(3), setprotoent(3), setservent(3)

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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.