Subject: Re: setreuid semantics changed
To: Chris G. Demetriou <>
From: Keith Moore <>
List: current-users
Date: 04/08/1994 12:47:42
If I understand your description right, it sounds as if the POSIX model is
incompatible with both of the old ways of switching between two euid's:
either using setreuid() to swap uid<->euid, or using setuid() to switch from
uid=0 to some other uid and being able to switch back later because the
'saved' uid remembers that you are really root.  (Do I misunderstand?)

I can understand wanting to be POSIX compatible, but is it necessary to
break binary compatibility?  Especially on sparc or other "legacy" systems?
(Could there be a kernel option to allow the old behavior?)

As for the setreuid() routine, if it's not going to work as expected, I'd
rather see it removed entirely from libc.  That way, when porting code, you
find out a link time rather than at run time.