NAME
setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr -
handle network group entries
SYNOPSIS
#include <netdb.h>
I int setnetgrent(const char * netgroup );
I void endnetgrent(void);
I int getnetgrent(char ** host , char ** user , char ** domain );
I int getnetgrent_r(char ** host , char ** user ,
I char ** domain , char * buf , int buflen );
I int innetgr(const char * netgroup , const char * host ,
I const char * user , const char * domain );
DESCRIPTION
The
netgroup
is a SunOS invention.
A netgroup database is a list of string triples
R (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
/etc/nsswitch.conf
defines what database is searched.
The
R setnetgrent ()
call defines the netgroup that will be searched by subsequent
R getnetgrent ()
calls.
The
R getnetgrent ()
function retrieves the next netgroup entry, and returns pointers in
R host ,
R user ,
R 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
R getnetgrent_r ()
that stores the strings in the supplied buffer.
To free all allocated buffers use
R endnetgrent ().
In most cases you only want to check if the triplet
R (hostname , username , domainname)
is a member of a netgroup.
The function
R 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.
RETURN VALUE
These functions return 1 on success and 0 for failure.
FILES
/etc/netgroup
/etc/nsswitch.conf
CONFORMING TO
These functions are not in POSIX.1-2001, but
R setnetgrent (),
R endnetgrent (),
R getnetgrent (),
and
R innetgr ()
are avilable on most Unix systems.
R getnetgrent_r ()
is not widely available on other systems.
NOTES
In the BSD implementation,
R setnetgrent ()
returns void.
SEE ALSO