NAME
initgroups —
initialize supplementary
group IDs
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <unistd.h>
int
initgroups(
const
char *name,
gid_t
basegid);
DESCRIPTION
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.
RETURN VALUES
The
initgroups() function returns -1 if it was not invoked by
the super-user.
SEE ALSO
setgroups(2),
getgrouplist(3)
HISTORY
The
initgroups() function appeared in
4.2BSD.
BUGS
The
getgrouplist() 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().