The
setresuid()
system call sets the real,
effective and saved user IDs of the current process.
The analogous
setresgid()
sets the real, effective and saved group IDs.
Privileged processes may set these IDs
to arbitrary values.
Unprivileged processes are restricted
in that each of the new IDs must match one of the current IDs.
Passing -1 as an argument causes the corresponding value
to remain unchanged.
The
getresgid()
and
getresuid()
calls retrieve the real, effective, and saved group and user IDs of
the current process, respectively.