August 10, 2002 INITGROUPS 3

### NAME

initgroups - initialize supplementary group IDs

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

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