The rexecd(1) utility is the server for the rexec(5)
routine. The server provides remote execution facilities with
authentication based on user names and passwords.
The rexecd(1) utility listens for service requests at the
port indicated in the "exec" service specification. When a service
request is received, the following protocol is initiated:
The server reads characters from the socket up to a NUL (\0)
byte. The resultant string is interpreted as an ASCII number, base
If the number received in step 1 is non-zero, it is interpreted
as the port number of a secondary stream to be used for the
stderr. A second connection is then created to the specified
port on the client computer.
A NUL terminated user name of at most 128 characters is
retrieved on the initial socket (the value is 16 characters for
A NUL terminated, unencrypted password of at most 128
characters is retrieved on the initial socket (the value 16
characters for non-Interix systems).
A NUL terminated command to be passed to a shell is retrieved
on the initial socket. The length of the command is limited by the
upper bound on the size of the system's argument list.
The rexecd(1) utility then validates the user as is done
at login time and, if the authentication was successful, changes to
the user's home directory, and establishes the user and group
protections of the user. If any of these steps fails, the
connection is aborted with a diagnostic message returned.
A NUL byte is returned on the initial socket and the command
line is passed to the normal login shell of the user. The shell
inherits the network connections established by
Except for the last one listed below, all diagnostic messages
are returned on the initial socket, after which any network
connections are closed. An error is indicated by a leading byte
with a value of 1. A 0 is returned in step 7 discussed previously,
upon successful completion of all the steps prior to the command
username too long
The name is longer than 128 characters.
password too long
The password is longer than 128 characters.
command too long
The command line passed exceeds the size of the argument list
(as configured into the system).
No user database entry for the user name existed or the wrong
password was supplied.
No remote directory.
The chdir(1) command to the home directory failed.
A fork(1) by the server failed.
The user's login shell could not be started. This message is
returned on the connection associated with the stderr, and
is not preceded by a flag byte.