
GENERAL:

  setid is a small perl script I wrote to run on the remote machine and
control the setiathome process locally.  It can talk to setiherder over
the network.

  I wrote this mainly in order to allow you to exit the setiherder gui 
and leave the remote processes running.  If I'd done it this way to begin
with, it would have simplified the setiherder source quite a bit. :)

  Pros: 
    - previously mentioned 'detach' capability
    - easier initial setup

  Cons: 
    - it's new code, it listens on the network.  I have tried to keep it
      simple and reasonably secure, but you know how these things go.

Why I think setid is reasonably safe:

  - It's written in perl, so it should be immune to buffer overflows.
  - it only accepts one connection at a time, and you can restrict 
    connections by ip address.  This *could* be spoofed.
  - it does not take any configuration details over the network, so it will
    run the process however you told it to when you configured it, and no
    other way.
  - It only takes simple commands like "start", "stop", "detach" from the
    network.  All an attacker could directly do is run setiathome for you
    (or stop it.. :)
 
Someone could repeatedly connect/disconnect from it over and over in rapid
succession, keeping it busy..  but they can do that to any of your daemons,
so setid is not unique in that respect.

If you think of any other issues, do please let me know.
 
INSTALLING SETID:

  Copy it somewhere on your client system.  Run it, with optional args.  
Put it in /etc/inittab if you want to ensure that it keeps running.

  You can put it anywhere.  If you put it somewhere besides where your seti
client is, give it the -d <directory> switch to tell it where seti@home lives.

  -a <ip address> tells it to only accept connections from a specific host.
  All others will be dropped.

  -p <port> tells it to listen on a different port (7501 is the default).
   Note that if you use this, your setiherder options must match.

  -c <client> tells it the name of the seti binary. (defaults to 'setiathome')  

  -i tells it its running under inetd.  (not currently supported)
 
