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
().