summaryrefslogtreecommitdiffstats
path: root/man/man3/setnetgrent.3
diff options
context:
space:
mode:
Diffstat (limited to 'man/man3/setnetgrent.3')
-rw-r--r--man/man3/setnetgrent.3170
1 files changed, 170 insertions, 0 deletions
diff --git a/man/man3/setnetgrent.3 b/man/man3/setnetgrent.3
new file mode 100644
index 0000000..b47d4d7
--- /dev/null
+++ b/man/man3/setnetgrent.3
@@ -0,0 +1,170 @@
+'\" t
+.\" Copyright 2002 walter harms (walter.harms@informatik.uni-oldenburg.de)
+.\"
+.\" SPDX-License-Identifier: GPL-1.0-or-later
+.\"
+.\" based on glibc infopages
+.\" polished - aeb
+.\"
+.TH setnetgrent 3 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr \-
+handle network group entries
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <netdb.h>
+.P
+.BI "int setnetgrent(const char *" netgroup );
+.B "void endnetgrent(void);"
+.P
+.BI "int getnetgrent(char **restrict " host ,
+.BI " char **restrict " user ", char **restrict " domain );
+.BI "int getnetgrent_r(char **restrict " host ,
+.BI " char **restrict " user ", char **restrict " domain ,
+.BI " char " buf "[restrict ." buflen "], size_t " buflen );
+.P
+.BI "int innetgr(const char *" netgroup ", const char *" host ,
+.BI " const char *" user ", const char *" domain );
+.fi
+.P
+.RS -4
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.RE
+.P
+.BR \%setnetgrent (),
+.BR \%endnetgrent (),
+.BR \%getnetgrent (),
+.BR \%getnetgrent_r (),
+.BR \%innetgr ():
+.nf
+ Since glibc 2.19:
+ _DEFAULT_SOURCE
+ glibc 2.19 and earlier:
+ _BSD_SOURCE || _SVID_SOURCE
+.fi
+.SH DESCRIPTION
+The
+.I netgroup
+is a SunOS invention.
+A netgroup database is a list of string triples
+.RI ( hostname ", " username ", " domainname )
+or other netgroup names.
+Any of the elements in a triple can be empty,
+which means that anything matches.
+The functions described here allow access to the netgroup databases.
+The file
+.I /etc/nsswitch.conf
+defines what database is searched.
+.P
+The
+.BR setnetgrent ()
+call defines the netgroup that will be searched by subsequent
+.BR getnetgrent ()
+calls.
+The
+.BR getnetgrent ()
+function retrieves the next netgroup entry, and returns pointers in
+.IR host ,
+.IR user ,
+.IR domain .
+A null pointer means that the corresponding entry matches any string.
+The pointers are valid only as long as there is no call to other
+netgroup-related functions.
+To avoid this problem you can use the GNU function
+.BR getnetgrent_r ()
+that stores the strings in the supplied buffer.
+To free all allocated buffers use
+.BR endnetgrent ().
+.P
+In most cases you want to check only if the triplet
+.RI ( hostname ", " username ", " domainname )
+is a member of a netgroup.
+The function
+.BR innetgr ()
+can be used for this without calling the above three functions.
+Again, a null pointer is a wildcard and matches any string.
+The function is thread-safe.
+.SH RETURN VALUE
+These functions return 1 on success and 0 for failure.
+.SH FILES
+.I /etc/netgroup
+.br
+.I /etc/nsswitch.conf
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lb lb lbx
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR setnetgrent (),
+.BR getnetgrent_r (),
+.BR innetgr ()
+T} Thread safety T{
+.na
+.nh
+MT-Unsafe race:netgrent
+locale
+T}
+T{
+.na
+.nh
+.BR endnetgrent ()
+T} Thread safety T{
+.na
+.nh
+MT-Unsafe race:netgrent
+T}
+T{
+.na
+.nh
+.BR getnetgrent ()
+T} Thread safety T{
+.na
+.nh
+MT-Unsafe race:netgrent
+race:netgrentbuf locale
+T}
+.TE
+.P
+In the above table,
+.I netgrent
+in
+.I race:netgrent
+signifies that if any of the functions
+.BR setnetgrent (),
+.BR getnetgrent_r (),
+.BR innetgr (),
+.BR getnetgrent (),
+or
+.BR endnetgrent ()
+are used in parallel in different threads of a program,
+then data races could occur.
+.SH VERSIONS
+In the BSD implementation,
+.BR setnetgrent ()
+returns void.
+.SH STANDARDS
+None.
+.SH HISTORY
+.BR setnetgrent (),
+.BR endnetgrent (),
+.BR getnetgrent (),
+and
+.BR innetgr ()
+are available on most UNIX systems.
+.BR getnetgrent_r ()
+is not widely available on other systems.
+.\" getnetgrent_r() is on Solaris 8 and AIX 5.1, but not the BSDs.
+.SH SEE ALSO
+.BR sethostent (3),
+.BR setprotoent (3),
+.BR setservent (3)