Sets the supplementary group ID of the current process.
Standard C Library (libc.a)
#include <grp.h>
int setgroups ( NumberGroups, GroupIDSet)
int NumberGroups;
gid_t *GroupIDSet;
The setgroups subroutine sets the supplementary group ID of the process. The setgroups subroutine cannot set more than NGROUPS_MAX groups in the group set. (NGROUPS_MAX is a constant defined in the limits.h file.)
Item | Description |
---|---|
GroupIDSet | Pointer to the array of group IDs to be established. |
NumberGroups | Indicates the number of entries in the GroupIDSet parameter. |
Upon successful completion, the setgroups subroutine returns a value of 0. Otherwise, a value of -1 is returned and the errno global variable is set to indicate the error.
The setgroups subroutine fails if any of the following are true:
Item | Description |
---|---|
EFAULT | The NumberGroups and GroupIDSet parameters specify an array that is partially or completely outside of the process' allocated address space. |
EINVAL | The NumberGroups parameter is greater than the NGROUPS_MAX value. |
EPERM | A group ID in the GroupIDSet parameter is not presently in the supplementary group ID, and the invoker does not have root user authority. |
Auditing Events:
Event | Information |
---|---|
PROC_SetGroups | NumberGroups, GroupIDSet |