2004-10-04 23:09:28 +04:00
|
|
|
.\" $NetBSD: do_setresuid.9,v 1.3 2004/10/04 19:09:28 rumble Exp $
|
2003-09-28 13:09:55 +04:00
|
|
|
.\"
|
|
|
|
.\"-
|
|
|
|
.\" Copyright (c) 2003 The NetBSD Foundation, Inc.
|
|
|
|
.\" All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" This code is derived from software contributed to The NetBSD Foundation
|
|
|
|
.\" by David Laight.
|
|
|
|
.\"
|
|
|
|
.\" 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. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
|
|
|
|
.\"
|
|
|
|
.Dd September 28, 2003
|
|
|
|
.Dt DO_SETRESUID 9
|
|
|
|
.Os
|
|
|
|
.Sh NAME
|
|
|
|
.Nm do_setresuid ,
|
2003-09-28 14:23:22 +04:00
|
|
|
.Nm do_setresgid
|
2003-09-28 13:09:55 +04:00
|
|
|
.Nd set process uid and gid
|
|
|
|
.Sh SYNOPSIS
|
|
|
|
.In sys/ucred.h
|
|
|
|
.Ft int
|
|
|
|
.Fn do_setresuid "struct lwp *lwp" "uid_t ruid" "uid_t euid" "uid_t svuid" "u_int flags"
|
|
|
|
.Ft int
|
|
|
|
.Fn do_setresgid "struct lwp *lwp" "uid_t ruid" "uid_t euid" "uid_t svuid" "u_int flags"
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
The
|
2003-09-28 14:23:22 +04:00
|
|
|
.Nm do_setresuid
|
2003-09-28 13:09:55 +04:00
|
|
|
and
|
2003-09-28 14:23:22 +04:00
|
|
|
.Nm do_setresgid
|
2003-09-28 13:09:55 +04:00
|
|
|
functions are used to implement the various system calls that allow a
|
2003-09-28 14:23:22 +04:00
|
|
|
process to change its real, effective, and saved uid and gid values.
|
2003-09-28 13:09:55 +04:00
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Nm do_setresuid
|
|
|
|
function sets the specified processes real user ID to
|
|
|
|
.Ar ruid ,
|
|
|
|
its effective user ID to
|
|
|
|
.Ar euid ,
|
|
|
|
and its saved user ID to
|
|
|
|
.Ar svuid .
|
2003-09-28 14:23:22 +04:00
|
|
|
If any of the uid arguments are \-1 then that assignment is skipped.
|
2003-09-28 13:09:55 +04:00
|
|
|
.Pp
|
2003-09-28 14:23:22 +04:00
|
|
|
If
|
|
|
|
.Fn suser
|
|
|
|
is true, then any values may be assigned, otherwise the new uid
|
2003-09-28 13:09:55 +04:00
|
|
|
values must match one of the existing values and the caller must have
|
|
|
|
set the relevant bit in
|
|
|
|
.Ar flags .
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Ar flags
|
|
|
|
argument specifies which of the existing uid values the new value must match.
|
|
|
|
It should be set to a logical OR of ID_{R,E,S}_EQ_{R,E,S}, where ID_E_EQ_R
|
2004-10-04 23:09:28 +04:00
|
|
|
means that it is valid to set the effective ID to the current value of the
|
2003-09-28 13:09:55 +04:00
|
|
|
real ID.
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Nm do_setresgid
|
|
|
|
function sets the group IDs but otherwise behaves in the same manner as
|
2003-09-28 14:23:22 +04:00
|
|
|
.Nm .
|
|
|
|
The processes group list is neither examined nor effected.
|
2003-09-28 13:09:55 +04:00
|
|
|
.Sh SEE ALSO
|
2003-09-28 14:23:22 +04:00
|
|
|
.Xr setregid 2 ,
|
|
|
|
.Xr setreuid 2 ,
|
|
|
|
.Xr setuid 2 ,
|
2003-09-28 13:09:55 +04:00
|
|
|
.Xr suser 9
|
|
|
|
.Sh CODE REFERENCES
|
|
|
|
These functions are implemented in:
|
|
|
|
.Pa sys/kern/kern_prot.c .
|
|
|
|
.Sh HISTORY
|
2003-09-28 14:23:22 +04:00
|
|
|
Implemented for
|
|
|
|
.Nx 2.0
|
|
|
|
to replace ad-hoc code in each system call routine and in the
|
|
|
|
various compat modules.
|