summaryrefslogtreecommitdiffstats
path: root/man2/setresuid.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/setresuid.2')
-rw-r--r--man2/setresuid.287
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)