manpages.info - online man pages   

Linux man pages : setresgid (2)
SETRESUID(2)		   Linux Programmer's Manual		  SETRESUID(2)

NAME

setresuid, setresgid - set real, effective and saved user or group ID

SYNOPSIS

#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 current process. Unprivileged user processes (i.e., processes with each of real, effec- tive and saved user ID nonzero) may change the real, effective and saved user ID, each to one of: the current uid, the current effective uid or the current saved uid. The super-user may set real, effective and saved user ID to arbitrary values. If one of the parameters equals -1, the corresponding value is not changed. Completely analogously, setresgid sets the real, effective and saved group ID's of the current process, with the same restrictions for pro- cesses with each of real, effective and saved user ID nonzero.

RETURN VALUE

On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

ERRORS

EPERM The current process was not privileged and tried to change the IDs is a not allowed way.

CONFORMING TO

This call is nonstandard.

HISTORY

This system call was first introduced in HP-UX. It is available under Linux since Linux 2.1.44. These days it is also found in FreeBSD (for emulation of Linux binaries).

NOTES

Under HP-UX and FreeBSD the prototype is found in <unistd.h>. Under Linux there is so far no include file giving the prototype - this is a glibc bug. Programs using this system call must add the prototype them- selves.

SEE ALSO

getuid(2), setuid(2), setreuid(2), getresuid(2) Linux 2.1.44 2001-11-15 SETRESUID(2)