SETREGID(2)         Linux Programmer's Manual         SETREGID(2)

NAME
       setregid, setegid - set real and / or effective group ID

SYNOPSIS
       #include <unistd.h>

       int setregid(gid_t rgid, gid_t egid);
       int setegid(gid_t egid);

DESCRIPTION
       setregid sets real and effective group ID's of the current
       process.  Un-privileged users may change the real group ID
       to the effective group ID and vice-versa.

       Prior  to  Linux  1.1.38, the saved ID paradigm, when used
       with setregid or setegid was broken.  Starting at  1.1.38,
       it is also possible to set the effective group ID from the
       saved group ID.

       Only the super-user may make other changes.

       Supplying a value of -1 for either the real  or  effective
       group ID forces the system to leave that ID unchanged.

       Currently   (libc-4.x.x),  setegid(egid)  is  functionally
       equivalent to setregid(-1, egid).

       If the real group ID is changed or the effective group  ID
       is set to a value not equal to the previous real group ID,
       the saved group ID will be set to the new effective  group
       ID.

RETURN VALUE
       On  success,  zero is returned.  On error, -1 is returned,
       and errno is set appropriately.

ERRORS
       EPERM   The current process  is  not  the  super-user  and
               changes  other  than  (i)  swapping  the effective
               group ID with the real group ID  or  (ii)  setting
               one to the value of the other or (iii) setting the
               effective group ID to the value of the saved group
               ID was specified.

CONFORMING TO
       BSD  4.3  (the  setregid  function  call first appeared in
       4.2BSD).

SEE ALSO
       getgid(2), setgid(2)

Linux 1.1.38             2nd August 1994                        1