Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chown(2)

getuid(2)

setuid(2)

appropriate_privilege(5)

cap_defaults(5)



getgroups(2)                   DG/UX R4.11MU05                  getgroups(2)


NAME
       getgroups, setgroups - get or set supplementary group access list IDs

SYNOPSIS
       #include <unistd.h>

       #include <sys/types.h>

       int getgroups(int gidsetsize, gid_t *grouplist)

       int setgroups(int ngroups, const gid_t *grouplist)

   where:
       gidsetsize  The number of entries currently in grouplist
       grouplist   An array of group IDs
       ngroups     The number of entries to be in grouplist

DESCRIPTION
       getgroups gets the current supplemental group access list of the
       calling process and stores the result in the array of group IDs
       specified by grouplist.  This array has gidsetsize entries and must
       be large enough to contain the entire list.  This list cannot be
       greater than {NGROUPS_MAX}.  If gidsetsize equals 0, getgroups will
       return the number of groups to which the calling process belongs
       without modifying the array pointed to by grouplist.

       setgroups sets the supplementary group access list of the calling
       process from the array of group IDs specified by grouplist.  The
       number of entries is specified by ngroups and can not be greater than
       {NGROUPS_MAX}.  The calling process must have appropriate privilege
       to successfully execute this function.  For systems supporting the
       DG/UX Capability Option, appropriate privilege is defined as having
       one or more specific capabilities enabled in the effective capability
       set of the calling process.  See cap_defaults(5) for the default
       capability for this system call.

       On systems without the DG/UX Capability Option, appropriate privilege
       means that the process has an effective UID of root.  See the
       appropriate_privilege(5) man page for more information.

RETURN VALUE
       Upon successful completion, getgroups returns the number of
       supplementary group IDs set for the calling process and setgroups
       returns the value 0.  Otherwise, a value of -1 is returned and errno
       is set to indicate the error.

DIAGNOSTICS
       getgroups will fail if:

       EINVAL         The value of gidsetsize is non-zero and less than the
                      number of supplementary group IDs set for the calling
                      process.

       setgroups will fail if:

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

       EPERM          The calling process does not have appropriate
                      privilege.

       Either call will fail if:

       EFAULT         A referenced part of the array pointed to by grouplist
                      is outside of the allocated address space of the
                      process.  See groups(1).

SEE ALSO
       chown(2), getuid(2), setuid(2), appropriate_privilege(5).
       cap_defaults(5).


Licensed material--property of copyright holder(s)

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