Subject: Re: bind-capability
To: Ted Lemon <mellon@nominum.com>
From: Simon J. Gerraty <sjg@quick.com.au>
List: tech-kern
Date: 06/21/2000 10:29:43
>> How can we raise the bind capability of a process
>> so that we can bind on the privileged port and latter
>> lower the bind capabilty of the process.

>Unfortunately, the only way you can do this now is to make the
>executable setuid root, have the process acquire the port, and then
>relinquish the root privileges.

Or modify the kernel to not require euid==0 for this, 
or invoke a setuid binary to do the bind for you.

	ftp://ftp.quick.com.au/pub/security/bindport.c

provides a set of functions that will do the binding directly if the 
process euid==0 otherwise they invoke the bindport binary to do the
job for them.  The concept is straight out of Cheswick & Bellovin btw.

This still means that you have a setuid binary - but it is very limited
in what it does and its execute permissions can be such that only
certain users (eg ftp etc) can invoke it).

I've used in on several *nix versions.

--sjg