Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getgroups(2)

initgroups(3X)

SETGROUPS(2)                         SysV                         SETGROUPS(2)



NAME
     setgroups - set group access list

SYNOPSIS
     #include <sys/param.h>

     setgroups(ngroups, gidset)
     int ngroups, *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 No more than
     NGROUPS_MAX (8), as defined in <limits.h>.

     Only the super-user can set new groups.

NOTES
     At login time, a supplementary group list is unconditionally established.
     The user's native group is automatically added to the front of this list.
     Since this list only holds 8 entries, this implies that a maximum of 7
     supplementary groups (taken from the registry) will be set for the user
     at login time.  Following login, a user can use setgroups to set the full
     supplementary list.

ERRORS
     The setgroups call will fail if any of the following are true:

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

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

SEE ALSO
     getgroups(2), initgroups(3X)

DIAGNOSTICS
     A 0 value is returned on success, -1 on error, with a error code stored
     in errno.

BUGS
     The gidset array should be of type gid_t, but remains integer for
     compatibility with earlier systems.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026