Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


SETGROUPS(2)                  System Calls Manual                 SETGROUPS(2)

NAME
     setgroups - set group access list

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <sys/param.h>
     #include <unistd.h>

     int
     setgroups(int ngroups, const gid_t *gidset);

DESCRIPTION
     setgroups() sets the group access list of the current user process
     according to the array gidset.  The parameter ngroups indicates the
     number of entries in the array and must be no more than {NGROUPS_MAX}.

     Only the super-user may set new groups.

     This system call affects only secondary groups.

RETURN VALUES
     A 0 value is returned on success, -1 on error, with an error code stored
     in errno.

ERRORS
     The setgroups() call will fail if:

     [EINVAL]           The value of ngroups is greater than {NGROUPS_MAX}.

     [EPERM]            The caller is not the super-user.

     [EFAULT]           The address specified for gidset is outside the
                        process address space.

SEE ALSO
     getgroups(2), setegid(2), setgid(2), setregid(2), initgroups(3)

HISTORY
     The setgroups() function call appeared in 4.2BSD.

NetBSD 10.99                    October 7, 2006                   NetBSD 10.99