NAME
initgroups
—
initialize supplementary group
IDs
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_MAX
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 superuser.
SEE ALSO
HISTORY
The initgroups
() function appeared in
4.2BSD.
BUGS
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
().