
This is currently a fairly undocumented hack that allows
applications such as xterm, rxvt, kvt etc to run without
setuid root privilege.

The basic idea is that instead of opening the pty pair and modifying
utmp ourselves, we invoke a small setuid program instead which is by far
easier to audit than the full, say, xterm source code including libX11
and friends. The tricky part is passing the open file descriptors for
the pty pair back to the invoking application (i.e. xterm). This 
is achieved by using a UNIX socketpair.

The package consists of two components; the setuid application
called utmpenvoy (for lack of a better name), and a couple of
functions for the client that will be used in order to
communicate with the envoy program (ptsession.c). Documentation on the
client-side functions can be found in ptesession.h

Note that this code will most likely compile only on Linux at the
moment. I plan to write some documentation and add a configure
script whenever I find the time for it.

In the meantime, you're welcome to play around with it. I very much
appreciate any feedback/security auditing.

Recent versions can be found at

ftp://linux.mathematik.tu-darmstadt.de/pub/linux/people/okir/dontuse

Cheers
Olaf
