Annotation of 43BSDTahoe/man/man8/rshd.8, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1983 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)rshd.8      6.4 (Berkeley) 10/25/87
                      6: .\"
                      7: .TH RSHD 8C "October 25, 1987"
                      8: .UC 5
                      9: .SH NAME
                     10: rshd \- remote shell server
                     11: .SH SYNOPSIS
                     12: .B /etc/rshd
                     13: .SH DESCRIPTION
                     14: .I Rshd
                     15: is the server for the 
                     16: .IR rcmd (3X)
                     17: routine and, consequently, for the
                     18: .IR rsh (1C)
                     19: program.  The server provides remote execution facilities
                     20: with authentication based on privileged port numbers from trusted hosts.
                     21: .PP
                     22: .I Rshd
                     23: listens for service requests at the port indicated in
                     24: the ``cmd'' service specification; see
                     25: .IR services (5).
                     26: When a service request is received the following protocol
                     27: is initiated:
                     28: .IP 1)
                     29: The server checks the client's source port.
                     30: If the port is not in the range 0-1023, the server
                     31: aborts the connection.
                     32: .IP 2)
                     33: The server reads characters from the socket up
                     34: to a null (`\e0') byte.  The resultant string is
                     35: interpreted as an ASCII number, base 10.
                     36: .IP 3)
                     37: If the number received in step 2 is non-zero,
                     38: it is interpreted as the port number of a secondary
                     39: stream to be used for the 
                     40: .BR stderr .
                     41: A second connection is then created to the specified
                     42: port on the client's machine.  The source port of this
                     43: second connection is also in the range 0-1023.
                     44: .IP 4)
                     45: The server checks the client's source address
                     46: and requests the corresponding host name (see
                     47: .IR gethostbyaddr (3N),
                     48: .IR hosts (5)
                     49: and
                     50: .IR named (8)).
                     51: If the hostname cannot be determined,
                     52: the dot-notation representation of the host address is used.
                     53: .IP 5)
                     54: A null terminated user name of at most 16 characters
                     55: is retrieved on the initial socket.  This user name
                     56: is interpreted as the user identity on the
                     57: .BR client 's
                     58: machine.
                     59: .IP 6)
                     60: A null terminated user name of at most 16 characters
                     61: is retrieved on the initial socket.  This user name
                     62: is interpreted as a user identity to use on the
                     63: .BR server 's
                     64: machine.
                     65: .IP 7)
                     66: A null terminated command to be passed to a
                     67: shell is retrieved on the initial socket.  The length of
                     68: the command is limited by the upper bound on the size of
                     69: the system's argument list.  
                     70: .IP 8)
                     71: .I Rshd
                     72: then validates the user according to the following steps.
                     73: The local (server-end) user name is looked up in the password file
                     74: and a
                     75: .I chdir
                     76: is performed to the user's home directory.  If either
                     77: the lookup or 
                     78: .I chdir
                     79: fail, the connection is terminated.
                     80: If the user is not the super-user, (user id 0), the file 
                     81: .I /etc/hosts.equiv
                     82: is consulted for a list of hosts considered ``equivalent''.
                     83: If the client's host name is present in this file, the
                     84: authentication is considered successful.  If the lookup
                     85: fails, or the user is the super-user, then the file
                     86: .I .rhosts
                     87: in the home directory of the remote user is checked for
                     88: the machine name and identity of the user on the client's
                     89: machine.  If this lookup fails, the connection is terminated.
                     90: .IP 9)
                     91: A null byte is returned on the initial socket
                     92: and the command line is passed to the normal login
                     93: shell of the user.  The
                     94: shell inherits the network connections established
                     95: by
                     96: .IR rshd .
                     97: .SH DIAGNOSTICS
                     98: Except for the last one listed below,
                     99: all diagnostic messages
                    100: are returned on the initial socket,
                    101: after which any network connections are closed.
                    102: An error is indicated by a leading byte with a value of
                    103: 1 (0 is returned in step 9 above upon successful completion
                    104: of all the steps prior to the execution of the login shell).
                    105: .PP
                    106: .B ``locuser too long''
                    107: .br
                    108: The name of the user on the client's machine is
                    109: longer than 16 characters.
                    110: .PP
                    111: .B ``remuser too long''
                    112: .br
                    113: The name of the user on the remote machine is
                    114: longer than 16 characters.
                    115: .PP
                    116: .B ``command too long ''
                    117: .br
                    118: The command line passed exceeds the size of the argument
                    119: list (as configured into the system).
                    120: .PP
                    121: .B ``Login incorrect.''
                    122: .br
                    123: No password file entry for the user name existed.
                    124: .PP
                    125: .B ``No remote directory.''
                    126: .br
                    127: The 
                    128: .I chdir
                    129: command to the home directory failed.
                    130: .PP
                    131: .B ``Permission denied.''
                    132: .br
                    133: The authentication procedure described above failed.
                    134: .PP
                    135: .B ``Can't make pipe.''
                    136: .br
                    137: The pipe needed for the 
                    138: .BR stderr ,
                    139: wasn't created.
                    140: .PP
                    141: .B ``Try again.''
                    142: .br
                    143: A
                    144: .I fork
                    145: by the server failed.
                    146: .PP
                    147: .B ``<shellname>: ...''
                    148: .br
                    149: The user's login shell could not be started.  This message is returned
                    150: on the connection associated with the
                    151: .BR stderr ,
                    152: and is not preceded by a flag byte.
                    153: .SH SEE ALSO
                    154: rsh(1C),
                    155: rcmd(3X)
                    156: .SH BUGS
                    157: The authentication procedure used here assumes the integrity
                    158: of each client machine and the connecting medium.  This is
                    159: insecure, but is useful in an ``open'' environment.
                    160: .PP
                    161: A facility to allow all data exchanges to be encrypted should be
                    162: present.
                    163: .PP
                    164: A more extensible protocol should be used.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.