GETNETGRENT(3) | Library Functions Manual | GETNETGRENT(3)

# NAME

`getnetgrent`, `innetgr`, `setnetgrent`, `endnetgrent` — netgroup database operations

# SYNOPSIS

`#include <netgroup.h>`

int
`getnetgrent`(const char **host, const char **user, const char **domain);

int
`innetgr`(const char *netgroup, const char *host, const char *user, const char *domain);

void
`setnetgrent`(const char *netgroup);

void
`endnetgrent`(void);

# DESCRIPTION

These functions operate on the netgroup database file /etc/netgroup.db which is described in netgroup(5). If that file does not exist, and the system supports YP, then the netgroup YP databases are used instead. The database defines a set of netgroups, each made up of one or more triples:

    (host, user, domain)

that defines a combination of host, user, and domain. Any of the three fields may be specified as “wildcards” that match any string.

The function `getnetgrent`() sets the three pointer arguments to the strings of the next member of the current netgroup. If any of the string pointers are `NULL`, those fields are considered wildcards.

The functions `setnetgrent`() and `endnetgrent`() set the current netgroup and terminate the current netgroup respectively. If `setnetgrent`() is called with a different netgroup than the previous call, an implicit `endnetgrent`() is implied. `setnetgrent`() also sets the offset to the first member of the netgroup.

The function `innetgr`() searches for a match of all fields within the specified group. If any of the host, user, or domain arguments are `NULL`, those fields will match any string value in the netgroup member.

# RETURN VALUES

The function `getnetgrent`() returns 0 for “no more netgroup members” or 1 otherwise. The function `innetgr`() returns 1 for a successful match or 0 otherwise. The functions `setnetgrent`() and `endnetgrent`() have no return value.

# FILES

/etc/netgroup.db
  netgroup database file

# SEE ALSO

netgroup(5)

# BUGS

The function `getnetgrent`() returns pointers to dynamically allocated data areas that are free(3)'d when the function `endnetgrent`() is called.

June 5, 2013 | Debian