man-pages/man3/setnetgrent.3

106 lines
2.8 KiB
Groff
Raw Normal View History

2004-11-03 13:51:07 +00:00
.\" Copyright 2002 walter harms (walter.harms@informatik.uni-oldenburg.de)
.\" Distributed under GPL
.\" based on glibc infopages
.\" polished - aeb
.TH SETNETGRENT 3 2007-07-26 "GNU" "Linux Programmer's Manual"
.SH NAME
2004-11-03 13:51:07 +00:00
setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr \-
handle network group entries
.SH SYNOPSIS
.nf
2004-11-03 13:51:07 +00:00
.B #include <netdb.h>
2004-11-03 13:51:07 +00:00
.BI "int setnetgrent(const char *" netgroup );
2007-09-20 16:26:31 +00:00
.B "void endnetgrent(void);"
2004-11-03 13:51:07 +00:00
.BI "int getnetgrent(char **" host ", char **" user ", char **" domain );
2004-11-03 13:51:07 +00:00
.BI "int getnetgrent_r(char **" host ", char **" user ","
.BI " char **" domain ", char *" buf ", int " buflen );
2004-11-03 13:51:07 +00:00
.BI "int innetgr(const char *" netgroup ", const char *" host ","
.BI " const char *" user ", const char *" domain );
.fi
.sp
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
.sp
.ad l
.BR setnetgrent (),
.BR endnetgrent (),
.BR getnetgrent (),
.BR getnetgrent_r (),
.BR innetgr ():
_BSD_SOURCE || _SVID_SOURCE
.ad b
.SH DESCRIPTION
The
2007-06-23 07:56:56 +00:00
.I netgroup
is a SunOS invention.
A netgroup database is a list of string triples
2007-08-27 08:36:21 +00:00
.RI ( hostname ", " username ", " domainname )
or other netgroup names.
Any of the elements in a triple can be empty,
2004-11-03 13:51:07 +00:00
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.
.PP
The
.BR setnetgrent ()
2004-11-03 13:51:07 +00:00
call defines the netgroup that will be searched by subsequent
.BR getnetgrent ()
calls.
The
.BR getnetgrent ()
2004-11-03 13:51:07 +00:00
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
2007-06-02 05:49:27 +00:00
netgroup-related functions.
2004-11-03 13:51:07 +00:00
To avoid this problem you can use the GNU function
.BR getnetgrent_r ()
2004-11-03 13:51:07 +00:00
that stores the strings in the supplied buffer.
To free all allocated buffers use
.BR endnetgrent ().
2004-11-03 13:51:07 +00:00
.PP
In most cases you only want to check if the triplet
2007-08-27 08:36:21 +00:00
.RI ( hostname ", " username ", " domainname )
is a member of a netgroup.
The function
.BR innetgr ()
2004-11-03 13:51:07 +00:00
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.
2004-11-03 13:51:07 +00:00
.SH FILES
.I /etc/netgroup
.br
.I /etc/nsswitch.conf
2007-06-16 07:59:31 +00:00
.SH CONFORMING TO
These functions are not in POSIX.1-2001, but
.BR setnetgrent (),
.BR endnetgrent (),
.BR getnetgrent (),
and
.BR innetgr ()
2007-08-27 08:36:21 +00:00
are available on most Unix systems.
2007-06-16 07:59:31 +00:00
.BR getnetgrent_r ()
is not widely available on other systems.
.\" getnetgrent_r() is on Solaris 8 and AIX 5.1, but not the BSDs.
2004-11-03 13:51:07 +00:00
.SH NOTES
In the BSD implementation,
.BR setnetgrent ()
2004-11-03 13:51:07 +00:00
returns void.
.SH "SEE ALSO"
.BR sethostent (3),
.BR setprotoent (3),
.BR setservent (3)