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.