GETGROUPS (2)
get/set list of supplementary group IDs
SYNOPSIS
#include <unistd.h>
int getgroups(int size , gid_t list []);
#define __USE_BSD
#include <grp.h>
int setgroups(size_t size , const gid_t * list );
DESCRIPTION
getgroups
Up to
size
supplementary groups are returned in
list .
If
size
is zero,
list
is not modified, but the total number of supplementary groups for the
process is returned.
setgroups
Sets the supplementary groups for the process. Only the super-user may use
this function.
RETURN VALUE
getgroups
On success, the number of supplementary group IDs is returned.
On error, -1 is returned, and
errno
is set appropriately.
setgroups
On success, zero is returned. On error, -1 is returned, and
errno
is set appropriately.
ERRORS
EFAULT
list
has an invalid address.
EPERM
For
setgroups ,
the user is not the super-user.
EINVAL
For
setgroups ,
size
is greater than
NGROUPS
(32 for Linux 2.0.32).
For
getgroups ,
size
is less than the number of supplementary group IDs, but is not zero.
CONFORMING TO
SVr4, SVID (issue 4 only; these calls were not present in SVr3),
X/OPEN, 4.3BSD. The
getgroups
function is in POSIX.1. Since
setgroups
requires privilege, it is not covered by POSIX.1.
BUGS
The
__USE_BSD
flag probably shouldn't be required for
setgroups .
SEE ALSO
|
|