Subject: Re: those annoying "set*uid is deprecated" messages
To: None <cgd@alpha.bostic.com>
From: John Kohl <jtk@atria.com>
List: current-users
Date: 07/19/1994 21:36:57
Sadly, it's not possible to do what I want to do with the existing
syscalls.
The process in question starts out running as root. Thus r=e=svuid=0
The ruid can only be set to an unprivileged user if we drop all
privileges with setuid(x). Here's the comment from kern_prot.c:
/*
* we assume that the intent of setting ruid is to be able to get
* back ruid priviledge. So we make sure that we will be able to
* do so, but do not actually set the ruid.
*/
The net result is that if you start out with ruid=x, euid=y, then
setreuid(y,x) ends up with ruid=euid=x, which seems not quite ideal.
The failure to set ruid is the crux of the problems I've seen.
==John
------------------------------------------------------------------------------