diff options
Diffstat (limited to 'man2/setresuid.2')
-rw-r--r-- | man2/setresuid.2 | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/man2/setresuid.2 b/man2/setresuid.2 new file mode 100644 index 000000000..443bc3266 --- /dev/null +++ b/man2/setresuid.2 @@ -0,0 +1,87 @@ +.\" Hey Emacs! This file is -*- nroff -*- source. +.\" +.\" Copyright (C) 1997 Andries Brouwer (aeb@cwi.nl) +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" +.\" Modified, 2003-05-26, Michael Kerrisk, <mtk16@ext,canterbury.ac.nz> +.TH SETRESUID 2 2003-05-26 "Linux 2.4" "Linux Programmer's Manual" +.SH NAME +setresuid, setresgid \- set real, effective and saved user or group ID +.SH SYNOPSIS +.B #define _GNU_SOURCE +.br +.B #include <unistd.h> +.sp +.BI "int setresuid(uid_t " ruid ", uid_t " euid ", uid_t " suid ); +.br +.BI "int setresgid(gid_t " rgid ", gid_t " egid ", gid_t " sgid ); +.SH DESCRIPTION +.B setresuid +sets the real user ID, the effective user ID, and the saved +(effective) user ID of the current process. + +Unprivileged user processes (i.e., processes with each of +real, effective 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, +.B setresgid +sets the real, effective and saved group ID's of the current process, +with the same restrictions for processes with each of +real, effective and saved user ID nonzero. + +.SH "RETURN VALUE" +On success, zero is returned. On error, \-1 is returned, and +.I errno +is set appropriately. +.SH ERRORS +.TP +.B EAGAIN +.I uid +does not match the current uid and this call would +bring that userID over its NPROC rlimit. +.TP +.B EPERM +The current process was not privileged (did not have the CAP_SETUID +capability) and tried to change the IDs is a not allowed way. +.SH "CONFORMING TO" +This call is nonstandard. +.SH 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). +.SH NOTES +Under HP-UX and FreeBSD the prototype is found in +.IR <unistd.h> . +Under Linux the prototype is given by glibc since version 2.3.2 +provided _GNU_SOURCE is defined. +.SH "SEE ALSO" +.BR getresuid (2), +.BR getuid (2), +.BR setreuid (2), +.BR setuid (2), +.BR capabilities (7) |