# Fun with FUP and root.

Zachary DeAquila (zachary@zachs.place.org)
Thu, 27 Feb 1997 09:15:36 PST

- Messages sorted by:[ date ][ thread ][ subject ][ author ]

    On Thursday, Feb 27, 1997, Brandon Gillespie writes:
    >
    >Cold essentially does as suggested, and more.  You can specify a 'prebind'
    >option when you run cold which tells it what port/address/protocol
    >(TCP/UDP) to bind to--and you can specify it multiple times.  Furthermore,
    >you can also tell it what user/group to setuid to after it binds what it
    >needs.  Basically running cold as:
    >
    >    genesis -p x.x.x.x:80 -p y.y.y.y:-30 -p :25 -u cold -g cold
    >
    >Will prebind (TCP) port '80' on address x.x.x.x, prebind (UDP) port '30'
    >on address y.y.y.y (negative ports specify udp vs tcp to Cold) and will
    >prebind all addresses on port 25.  It'll then setuid to the user/group
    >'cold' and later, when the database calls bind_port() it'll simply use the
    >prebound ports.  The implementation is simple enough, and since it
    >setuid's before forking it also clears up any problems where the driver
    >may be able to setuid back to root (ohyeah--cold always forks off like a
    >standard daemon, unless you tell it not too).
    >
    >Pick one of two options:
    >
    >   1. use cold--its faster, more powerful and generally better 8)

    You forgot to add 'less stable' and 'generally buggier'.

    >   2. steal the stuff I did for cold and put it into MOO

    You forgot

        3. come up with a solution better than the one cold has.

     --Zachary