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
|
2007-07-08 12:11:40 +00:00
|
|
|
.TH SETNETGRENT 3 2007-07-26 "GNU" "Linux Programmer's Manual"
|
2007-04-12 22:42:49 +00:00
|
|
|
.SH NAME
|
2004-11-03 13:51:07 +00:00
|
|
|
setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr \-
|
|
|
|
handle network group entries
|
|
|
|
.SH SYNOPSIS
|
2007-12-19 06:57:44 +00:00
|
|
|
.nf
|
2004-11-03 13:51:07 +00:00
|
|
|
.B #include <netdb.h>
|
2007-12-19 06:57:44 +00:00
|
|
|
|
2004-11-03 13:51:07 +00:00
|
|
|
.BI "int setnetgrent(const char *" netgroup );
|
2007-12-19 06:57:44 +00:00
|
|
|
|
2007-09-20 16:26:31 +00:00
|
|
|
.B "void endnetgrent(void);"
|
2007-12-19 06:57:44 +00:00
|
|
|
|
2004-11-03 13:51:07 +00:00
|
|
|
.BI "int getnetgrent(char **" host ", char **" user ", char **" domain );
|
2007-12-19 06:57:44 +00:00
|
|
|
|
2004-11-03 13:51:07 +00:00
|
|
|
.BI "int getnetgrent_r(char **" host ", char **" user ","
|
2007-12-19 06:57:44 +00:00
|
|
|
.BI " char **" domain ", char *" buf ", int " buflen );
|
|
|
|
|
2004-11-03 13:51:07 +00:00
|
|
|
.BI "int innetgr(const char *" netgroup ", const char *" host ","
|
2007-12-19 06:57:44 +00:00
|
|
|
.BI " const char *" user ", const char *" domain );
|
|
|
|
.fi
|
2007-07-08 12:11:40 +00:00
|
|
|
.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
|
2007-04-12 22:42:49 +00:00
|
|
|
.SH DESCRIPTION
|
|
|
|
The
|
2007-06-23 07:56:56 +00:00
|
|
|
.I netgroup
|
2007-04-12 22:42:49 +00:00
|
|
|
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 )
|
2007-04-12 22:42:49 +00:00
|
|
|
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
|
2005-10-19 07:07:02 +00:00
|
|
|
.BR setnetgrent ()
|
2004-11-03 13:51:07 +00:00
|
|
|
call defines the netgroup that will be searched by subsequent
|
2005-10-19 07:07:02 +00:00
|
|
|
.BR getnetgrent ()
|
2007-04-12 22:42:49 +00:00
|
|
|
calls.
|
|
|
|
The
|
2005-10-19 07:07:02 +00:00
|
|
|
.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
|
2005-10-19 07:07:02 +00:00
|
|
|
.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
|
2005-10-19 07:07:02 +00:00
|
|
|
.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 )
|
2007-04-12 22:42:49 +00:00
|
|
|
is a member of a netgroup.
|
|
|
|
The function
|
2005-10-19 07:07:02 +00:00
|
|
|
.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.
|
2007-05-19 04:30:20 +00:00
|
|
|
.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,
|
2005-10-19 07:07:02 +00:00
|
|
|
.BR setnetgrent ()
|
2004-11-03 13:51:07 +00:00
|
|
|
returns void.
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR sethostent (3),
|
|
|
|
.BR setservent (3),
|
|
|
|
.BR setprotoent (3)
|