setresuid, setresgid - set real, effective and saved user or group ID
SYNOPSIS
#define _GNU_SOURCE #include <unistd.h>
int setresuid(uid_t ruid , uid_t euid , uid_t suid ); int setresgid(gid_t rgid , gid_t egid , gid_t sgid );
DESCRIPTION
setresuid () sets the real user ID, the effective user ID, and the
saved set-user-ID of the calling process.
Unprivileged user processes
may change the real UID,
effective UID, and saved set-user-ID, each to one of:
the current real UID, the current effective UID or the
current saved set-user-ID.
Privileged processes (on Linux, those having the CAP_SETUID capability)
may set the real UID, effective UID, and
saved set-user-ID to arbitrary values.
If one of the arguments equals -1, the corresponding value is not changed.
Regardless of what changes are made to the real UID, effective UID,
and saved set-user-ID, the file system UID is always set to the same
value as the (possibly new) effective UID.
Completely analogously,
setresgid () sets the real GID, effective GID, and saved set-group-ID
of the calling process (and always modifies the file system GID
to be the same as the effective GID),
with the same restrictions for non-privileged processes.
RETURN VALUE
On success, zero is returned.
On error, -1 is returned, and
errno is set appropriately.
ERRORS
EAGAIN
uid does not match the current UID and this call would
bring that user ID over its
RLIMIT_NPROC resource limit.
EPERM
The calling process is not privileged (did not have the CAP_SETUID
capability) and tried to change the IDs to values that are not permitted.
VERSIONS
These calls are available under Linux since Linux 2.1.44.
CONFORMING TO
These calls are non-standard;
they also appear on HP-UX and some of the BSDs.
NOTES
Under HP-UX and FreeBSD the prototype is found in
<unistd.h> . Under Linux the prototype is provided by glibc since version 2.3.2.
This page is part of release 3.19 of the Linux
man-pages project.
A description of the project,
and information about reporting bugs,
can be found at
http://www.kernel.org/doc/man-pages/.