|
|
1.1 ! root 1: .\" Copyright (c) 1983, 1989 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted provided ! 5: .\" that: (1) source distributions retain this entire copyright notice and ! 6: .\" comment, and (2) distributions including binaries display the following ! 7: .\" acknowledgement: ``This product includes software developed by the ! 8: .\" University of California, Berkeley and its contributors'' in the ! 9: .\" documentation or other materials provided with the distribution and in ! 10: .\" all advertising materials mentioning features or use of this software. ! 11: .\" Neither the name of the University nor the names of its contributors may ! 12: .\" be used to endorse or promote products derived from this software without ! 13: .\" specific prior written permission. ! 14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: .\" ! 18: .\" @(#)rshd.8 6.10 (Berkeley) 6/24/90 ! 19: .\" ! 20: .TH RSHD 8 "June 24, 1990" ! 21: .UC 5 ! 22: .SH NAME ! 23: rshd \- remote shell server ! 24: .SH SYNOPSIS ! 25: .B rshd [-aln] ! 26: .SH DESCRIPTION ! 27: .I Rshd ! 28: is the server for the ! 29: .IR rcmd (3) ! 30: routine and, consequently, for the ! 31: .IR rsh (1) ! 32: program. The server provides remote execution facilities ! 33: with authentication based on privileged port numbers from trusted hosts. ! 34: .PP ! 35: .I Rshd ! 36: listens for service requests at the port indicated in ! 37: the ``cmd'' service specification; see ! 38: .IR services (5). ! 39: When a service request is received the following protocol ! 40: is initiated: ! 41: .IP 1) ! 42: The server checks the client's source port. ! 43: If the port is not in the range 512-1023, the server ! 44: aborts the connection. ! 45: .IP 2) ! 46: The server reads characters from the socket up ! 47: to a null (`\e0') byte. The resultant string is ! 48: interpreted as an ASCII number, base 10. ! 49: .IP 3) ! 50: If the number received in step 2 is non-zero, ! 51: it is interpreted as the port number of a secondary ! 52: stream to be used for the ! 53: .BR stderr . ! 54: A second connection is then created to the specified ! 55: port on the client's machine. The source port of this ! 56: second connection is also in the range 512-1023. ! 57: .IP 4) ! 58: The server checks the client's source address ! 59: and requests the corresponding host name (see ! 60: .IR gethostbyaddr (3), ! 61: .IR hosts (5) ! 62: and ! 63: .IR named (8)). ! 64: If the hostname cannot be determined, ! 65: the dot-notation representation of the host address is used. ! 66: If the hostname is in the same domain as the server (according to ! 67: the last two components of the domain name), ! 68: or if the ! 69: .B \-a ! 70: option is given, ! 71: the addresses for the hostname are requested, ! 72: verifying that the name and address correspond. ! 73: If address verification fails, the connection is aborted ! 74: with the message, ``Host address mismatch.'' ! 75: .IP 5) ! 76: A null terminated user name of at most 16 characters ! 77: is retrieved on the initial socket. This user name ! 78: is interpreted as the user identity on the ! 79: .BR client 's ! 80: machine. ! 81: .IP 6) ! 82: A null terminated user name of at most 16 characters ! 83: is retrieved on the initial socket. This user name ! 84: is interpreted as a user identity to use on the ! 85: .BR server 's ! 86: machine. ! 87: .IP 7) ! 88: A null terminated command to be passed to a ! 89: shell is retrieved on the initial socket. The length of ! 90: the command is limited by the upper bound on the size of ! 91: the system's argument list. ! 92: .IP 8) ! 93: .I Rshd ! 94: then validates the user using ! 95: .IR ruserok (3), ! 96: which uses the file ``/etc/hosts.equiv'' and the ``.rhosts'' ! 97: file found in the user's home directory. The ! 98: .B \-l ! 99: option prevents ! 100: .IR ruserok (3) ! 101: from doing any validation based on the user's ``.rhosts'' file, ! 102: unless the user is the superuser. ! 103: .IP 9) ! 104: A null byte is returned on the initial socket ! 105: and the command line is passed to the normal login ! 106: shell of the user. The ! 107: shell inherits the network connections established ! 108: by ! 109: .IR rshd . ! 110: .PP ! 111: Transport-level keepalive messages are enabled unless the ! 112: .B \-n ! 113: option is present. ! 114: The use of keepalive messages allows sessions to be timed out ! 115: if the client crashes or becomes unreachable. ! 116: .SH DIAGNOSTICS ! 117: Except for the last one listed below, ! 118: all diagnostic messages ! 119: are returned on the initial socket, ! 120: after which any network connections are closed. ! 121: An error is indicated by a leading byte with a value of ! 122: 1 (0 is returned in step 9 above upon successful completion ! 123: of all the steps prior to the execution of the login shell). ! 124: .PP ! 125: .B ``locuser too long'' ! 126: .br ! 127: The name of the user on the client's machine is ! 128: longer than 16 characters. ! 129: .PP ! 130: .B ``remuser too long'' ! 131: .br ! 132: The name of the user on the remote machine is ! 133: longer than 16 characters. ! 134: .PP ! 135: .B ``command too long '' ! 136: .br ! 137: The command line passed exceeds the size of the argument ! 138: list (as configured into the system). ! 139: .PP ! 140: .B ``Login incorrect.'' ! 141: .br ! 142: No password file entry for the user name existed. ! 143: .PP ! 144: .B ``No remote directory.'' ! 145: .br ! 146: The ! 147: .I chdir ! 148: command to the home directory failed. ! 149: .PP ! 150: .B ``Permission denied.'' ! 151: .br ! 152: The authentication procedure described above failed. ! 153: .PP ! 154: .B ``Can't make pipe.'' ! 155: .br ! 156: The pipe needed for the ! 157: .BR stderr , ! 158: wasn't created. ! 159: .PP ! 160: .B ``Can't fork; try again.'' ! 161: .br ! 162: A ! 163: .I fork ! 164: by the server failed. ! 165: .PP ! 166: .B ``<shellname>: ...'' ! 167: .br ! 168: The user's login shell could not be started. This message is returned ! 169: on the connection associated with the ! 170: .BR stderr , ! 171: and is not preceded by a flag byte. ! 172: .SH SEE ALSO ! 173: rsh(1), rcmd(3), ruserok(3) ! 174: .SH BUGS ! 175: The authentication procedure used here assumes the integrity ! 176: of each client machine and the connecting medium. This is ! 177: insecure, but is useful in an ``open'' environment. ! 178: .PP ! 179: A facility to allow all data exchanges to be encrypted should be ! 180: present. ! 181: .PP ! 182: A more extensible protocol (such as Telnet) should be used.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.