diff options
Diffstat (limited to 'lib/libc/sys/setreuid.2')
-rw-r--r-- | lib/libc/sys/setreuid.2 | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/lib/libc/sys/setreuid.2 b/lib/libc/sys/setreuid.2 new file mode 100644 index 00000000000..60df37991a3 --- /dev/null +++ b/lib/libc/sys/setreuid.2 @@ -0,0 +1,123 @@ +.\" Copyright (c) 1980, 1991, 1993, 1994 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)setreuid.2 8.2 (Berkeley) 4/16/94 +.\" +.Dd January 29, 2003 +.Dt SETREUID 2 +.Os +.Sh NAME +.Nm setreuid +.Nd set real and effective user IDs +.Sh SYNOPSIS +.Fd #include <unistd.h> +.Ft int +.Fn setreuid "uid_t ruid" "uid_t euid" +.Sh DESCRIPTION +The real and effective user IDs of the +current process are set according to the arguments. +If the real user ID is changed, or the effective user ID is changed +to a value other than the real user ID, then the saved user ID will +be set to the effective user ID. +.Pp +Unprivileged users may change either user ID to the current value +of the real, effective, or saved user ID. +Only the superuser may make other changes. +.Pp +Supplying a value of -1 for either the real or effective +user ID forces the system to substitute the current +ID in place of the -1 parameter. +.Pp +The +.Fn setreuid +function was intended to allow swapping the real and +effective user IDs in set-user-ID programs to temporarily relinquish +the set-user-ID value. +This purpose is now better served by the use of the +.Fn seteuid +function (see +.Xr setuid 2 ) . +.Pp +When setting the real and effective user IDs to the same value, the +.Fn setuid +function is preferred. +.Sh RETURN VALUES +Upon successful completion, a value of 0 is returned. +Otherwise, a value of -1 is returned and +.Va errno +is set to indicate the error. +.Sh ERRORS +.Bl -tag -width Er +.It Bq Er EPERM +The current process is not the superuser and a change +other than changing the effective user ID to the real user ID +was specified. +.El +.Sh SEE ALSO +.Xr getuid 2 , +.Xr seteuid 2 , +.Xr setresuid 2 , +.Xr setuid 2 +.Sh STANDARDS +The +.Fn setreuid +function conforms to the +.St -p1003.1-01 +and +.St -xpg4.3 . +specifications. +.Pp +Note, however, that prior to +.St -p1003.1-01 , +the +.Fn setreuid +function was not a part of the +.St -p1003.1 +specification. +As a result, it may not be implemented on all systems. +.Sh HISTORY +The +.Fn setreuid +function call appeared in +.Bx 4.2 . +A semantically different version appeared in +.Bx 4.4 . +The current version, with the original semantics restored, appeared in +.Ox 3.3 . +.Sh CAVEATS +The +.Fn setreuid +function predates +.Tn POSIX +saved user IDs. +This implementation changes the saved user ID to the new value of +the effective user ID if the real user ID is changed. +Other implementations may behave differently. |