HPUX remshd[1m]

remshd(1M) remshd(1M)
NAME
remshd - remote shell server
SYNOPSIS
/etc/remshd [-ln]
DESCRIPTION
remshd is the server for the rcp and remsh commands and the rcmd()
function (see rcp(1), remsh(1), and rcmd(3N)). The server provides
remote execution facilities with authentication based on privileged
port numbers.
inetd calls remshd when a service request is received at the port
indicated for the shell (or cmd) service specified in /etc/services
(see inetd(1M) and services(4)). inetd creates a connection to the
service on the client's host. To run remshd, the following line
should be present in /etc/inetd.conf:
shell stream tcp nowait root /etc/remshd remshd
When remshd receives a service request, it responds with the following
protocol:
1. The server checks the client's source port. If the port is
not in the range 512 through 1023, the server aborts the
connection.
2. The server reads characters from the connection up to a null
(\0) byte. It interprets the resulting string as an ASCII
number, base 10.
3. If the number is non-zero, it is interpreted as the port
number of a secondary stream to be used for standard error.
A second connection is then created to the specified port on
the client's host. The source port of this second connection
must be in the range 0 through 1023. If the first character
sent is a null (\0), no secondary connection is made, and
command standard error is sent to the primary stream. If the
secondary connection has been made, remshd interprets bytes
it receives on that socket as signal numbers and passes them
to the command as signals. See signal(2).
4. The server checks the client's source address and requests
the corresponding host name (see gethostbyaddr(3N), hosts(4),
and named(1M)). If it cannot determine the hostname, it uses
the dot-notation representation of the host address.
5. The server reads the client's host account name from the
first connection. This is a null-terminated sequence not
exceeding 16 characters.
Hewlett-Packard Company - 1 - HP-UX Release 9.0: August 1992
remshd(1M) remshd(1M)
6. The server reads the server's host account name from the
first connection. This is a null-terminated sequence not
exceeding 16 characters.
7. The server reads a command to be passed to the shell from the
first connection. The command length is limited by the
maximum size of the system's argument list.
8. remshd then validates the user as follows:
The user account name for the server's host (step 6) is
looked up in the password file and a chdir() is
performed to the user's home directory in the server's
host. If either the lookup or chdir() fails, the
connection is terminated (see chdir(2)). If the client
account is not equivalent to the server's host account,
the connection is terminated. For more information on
equivalent accounts see hosts.equiv(4).
9. A null byte is returned on the connection associated with
standard error and the command line is passed to the normal
login shell of the user with that shell's -c option. The
shell inherits the network connections established by remshd
and assumes the normal user and group permissions of the
user.
remshd uses the following path when executing the specified
command:
:/bin:/usr/bin:/usr/contrib/bin:/usr/local/bin
10. If a secondary socket has been set up, remshd normally exits
when command standard error and secondary socket standard
error have both been closed. If no secondary socket was set
up, remshd has execed the command and is no longer present
(see exec(2)).
The -l option prevents any authentication based on the user's .rhosts
file unless the user is the super-user.
Transport-level keep-alive messages are enabled unless the -n option
is present. The use of keep-alive messages allows sessions to be
timed out if the client crashes or becomes unreachable.
DIAGNOSTICS
All diagnostic messages are returned on the connection associated with
standard error after which any network connections are closed. An
error is indicated by a leading byte with a value of 1 (0 is returned
in step 9 above upon successful completion of all the steps before the
command execution).
Hewlett-Packard Company - 2 - HP-UX Release 9.0: August 1992
remshd(1M) remshd(1M)
Malformed from address
The first socket connection does not use a reserved port or
the client's host address is not an ARPA Internet address.
Can't get stderr port
Unable to complete the connection of the secondary socket
used for error communication.
Second port not reserved
The secondary socket connection does not use a reserved
port.
Locuser too long
The name of the user account on the client's host is longer
than 16 characters.
Remuser too long
The name of the user on the server's host is longer than 16
characters.
Command too long
The command line passed exceeds the size of the argument
list (as configured into the system).
Login incorrect
No password file entry existed for the user name on the
server's host, or the authentication procedure described
above in step 8 failed.
No remote directory
The chdir command to the home directory in the server's host
failed.
Can't make pipe
The pipe needed for the standard error output wasn't
created.
No more processes
The server was unable to fork a process to handle the
incoming connection.
Next step: Wait a period of time and try again. If this
message persists, the server's host may have runaway
processes that are using all the entries in the process
table.
system call: ...
Error in executing the named system call. Appended to this
error is a message specifying the cause of the failure.
Hewlett-Packard Company - 3 - HP-UX Release 9.0: August 1992
remshd(1M) remshd(1M)
shellname: ...
The user's login shell could not be started. This message
is returned on the connection associated with the standard
error, and is not preceded by a leading byte with a value of
1. Other messages can be returned by the remote command
when it executes.
WARNINGS
The ``privileged port'' authentication procedure used here assumes the
integrity of each host and the connecting medium. This is insecure,
but is useful in an ``open'' environment.
remshd ignores SIGHUP, SIGINT, SIGQUIT, and SIGTERM, so these signal
numbers can safely be sent to remote commands via remshd's secondary
socket. Other signal numbers may cause remshd to kill itself.
AUTHOR
remshd was developed by the University of California, Berkeley.
FILES
/etc/hosts.equiv list of equivalent hosts
$HOME/.rhosts user's private equivalence list
SEE ALSO
remsh(1), inetd(1M), named(1M), rcmd(3N), hosts(4), hosts.equiv(4),
inetd.conf(4), inetd.sec(4), services(4).
Hewlett-Packard Company - 4 - HP-UX Release 9.0: August 1992