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

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


SEE ALSO

     getgid(2), setgid(2)