HPlogo HP-UX Reference > S

setgroups(2)

HP-UX 11i Version 2: December 2007 Update
» 

Technical documentation

 » Table of Contents

 » Index

NAME

setgroups() — set group access list

SYNOPSIS

#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, as defined in <limits.h>.

Only a user with the CHSUBJIDENT privilege can set new groups by adding to the group access list of the current user process; any user can delete groups from it.

Security Restrictions

Some or all of the actions associated with this system call require the CHSUBJIDENT privilege. Processes owned by the superuser have this privilege. Processes owned by other users may have this privilege, depending on system configuration. See privileges(5) for more information about privileged access on systems that support fine-grained privileges.

RETURN VALUE

Upon successful completion, setgroups() returns 0. Otherwise, it returns -1 and sets errno to indicate the error.

ERRORS

setgroups() fails if any of the following conditions are encountered:

EPERM

The caller is not a user with the CHSUBJIDENT privilege and has attempted to set new groups.

EFAULT

The address specified for gidset is outside the process address space. The reliable detection of this error is implementation dependent.

EINVAL

ngroups is greater than NGROUPS_MAX or not positive.

EINVAL

An entry in gidset is not a valid group ID.

AUTHOR

setgroups() was developed by the University of California, Berkeley.

STANDARDS CONFORMANCE

setgroups(): AES, SVID3