REXEC

Gustav Ivanovic

 # Tcl implementation of rexec client
 namespace eval remote { 
    proc Open {host user password} {
        # Record user authentification information for remote computer
        variable Host $host
        variable User $user
        variable Password $password
    }
    proc Read {channel} {
        # Channel read handle
        if {[gets $channel line] < 0} {
            if {[eof $channel]} {
                close $channel
                set ::remote::Flag EOF
            }
        } else {
            lappend ::remote::Output $line
        }
    }
    proc Command {commandString} {
        # Remote execute a command using rexecd
        catch {unset ::remote::Flag}
        set ::remote::Output {}
        set socketId [socket $::remote::Host 512]
        fconfigure $socketId -blocking 0 -buffering line
        puts $socketId \000$::remote::User\000$::remote::Password\000$commandString\000
        fileevent $socketId readable [list ::remote::Read $socketId]
        vwait ::remote::Flag
        catch {close $socketId}
        return $::remote::Output
    }
 }
 #  End of rexec client

kroc - 10 Jul 2003 - Remote execution: allow to launch a command on a remote computer. It needs two parts: a REXEC client to send the command and a REXEC daemon (server) running on the target computer.

 Usage: rexec [ -abcdhns ] -l username -p password  host command
     -l username: Sets the login name for the remote host.
     -p password: Sets the password for the remote host.
     -n: Explicitly prompt for name and password.
     -a: Do not set up an auxiliary channel for standard error.
     -b: Use BSD-rsh type signal handling.
     -c: Do not close remote standard in when local input closes.
     -d: Turn on debugging information.
     -h: Print this usage message.
     -s: Do not echo signals to the remote process.

REXEC must be use very carefully because it could give an unsecured access to a network.


sdx provides a REXEC compatible server (see http://www.equi4.com/204 for details).

I've done a REXECD starkit using it, available here: http://web.archive.org/web/https://www.zolli.fr/fichiers/rexecd.zip

It's pure tcl so it shall runs on all tcl supported platforms.


REXEC for linux:

most linux distributions provides rexec client and rexecd.


REXEC for windows (commercial):

http://www.denicomp.com (quite slow) - http://www.cursor-ri.com (faster but XP / 2K problems) - http://www.hummingbird.com (expensive and complex but powerfull).

Remote process execution for windows (free) http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx