initgroups - initialize supplementary group IDs
#include <unistd.h>
int
initgroups(const char *name, gid_t basegid);
The initgroups() function uses the getgrouplist(3) function
to calculate
the supplementary group IDs for the user specified in name.
This group
list is then set up for the current process using setgroups(2). The
basegid is automatically included in the group list. Typically this value
is given as the group number from the password file.
If the groups database lists more than NGROUPS groups for
name (including
one for basegid), the later groups are ignored.
The initgroups() function returns -1 if it was not invoked
by the superuser.
setgroups(2), getgrouplist(3)
The initgroups() function appeared in 4.2BSD.
The getgrouplist(3) function called by initgroups() uses the
routines
based on getgrent(3). If the invoking program uses any of
these routines,
the group structure will be overwritten in the call
to
initgroups().
OpenBSD 3.6 June 4, 1993
[ Back ] |