NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | VERSIONS | CONFORMING TO | NOTES | SEE ALSO | COLOPHON
SETRESUID(2) Linux Programmer's Manual SETRESUID(2)
setresuid, setresgid - set real, effective and saved user or group ID
#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);
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.
On success, zero is returned. On error, -1 is returned, and errno is set
appropriately.
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.
These calls are available under Linux since Linux 2.1.44.
These calls are non-standard; they also appear on HP-UX and some of the BSDs.
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.
getresuid(2), getuid(2), setfsgid(2), setfsuid(2), setreuid(2), setuid(2),
capabilities(7), credentials(7), feature_test_macros(7)
This page is part of release 3.23 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/.
Linux 2007-07-26 SETRESUID(2)