setgroups

Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services

NAME

       getgroups, setgroups - get/set group access list


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  supplemental  groups  are returned in
              list.  If size is zero, list is not  modified,  but
              the  total  number  of  supplemental groups for the
              process is returned.

       setgroups
              Sets the supplemental groups for the process.  Only
              the super-user may use this function.


RETURN VALUE

       getgroups
              On  success, the number of groups stored in list is
              returned (if size is zero, however, the  number  of
              supplemental  group IDs associated with the process
              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, gidsetsize is greater  than  NGROUPS
              (32 for Linux 0.99.11).


CONFORMING TO

       getgroups conforms to POSIX.1 (and is present in BSD 4.3).
       Since setgroups requires  privilege,  it  is  not  covered
       under POSIX.1.


BUGS

       The __USE_BSD flag probably shouldn't be required for set-
       groups.


SEE ALSO

       initgroups(3),
Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services
Copyright (C) 1998 Hurricane Electric. All Rights Reserved.