1.\" Copyright (c) 1980, 1991 The Regents of the University of California. 2.\" All rights reserved. 3.\" 4.\" %sccs.include.redist.man% 5.\" 6.\" @(#)setreuid.2 6.7 (Berkeley) 03/04/93 7.\" 8.Dd 9.Dt SETREUID 2 10.Os BSD 4 11.Sh NAME 12.Nm setreuid 13.Nd set real and effective user ID's 14.Sh SYNOPSIS 15.Fd #include <unistd.h> 16.Ft int 17.Fn setreuid "int ruid" "int euid" 18.Sh DESCRIPTION 19The real and effective user IDs of the 20current process are set according to the arguments. 21If 22.Fa ruid 23or 24.Fa euid 25is -1, the current uid is filled in by the system. 26Unprivileged users may change the real user 27ID to the effective user ID and vice-versa; only the super-user may 28make other changes. 29.Pp 30The 31.Fn setreuid 32function has been used to swap the real and effective user IDs 33in set-user-ID programs to temporarily relinquish the set-user-ID value. 34This purpose is now better served by the use of the 35.Fn seteuid 36function (see 37.Xr setuid 2 ) . 38.Pp 39When setting the real and effective user IDs to the same value, 40the standard 41.Fn setuid 42function is preferred. 43.Sh RETURN VALUES 44Upon successful completion, a value of 0 is returned. Otherwise, 45a value of -1 is returned and 46.Va errno 47is set to indicate the error. 48.Sh ERRORS 49.Bl -tag -width [EPERM] 50.It Bq Er EPERM 51The current process is not the super-user and a change 52other than changing the effective user-id to the real user-id 53was specified. 54.El 55.Sh SEE ALSO 56.Xr getuid 2 , 57.Xr seteuid 2 , 58.Xr setuid 2 59.Sh HISTORY 60The 61.Nm 62function call appeared in 63.Bx 4.2 64and was dropped in 65.Bx 4.4 . 66