rshd(1M) rshd(1M)
NAME
rshd, in.rshd - Ferner Shell-Server
SYNTAX
in.rshd rechner.portnummer
BESCHREIBUNG
rshd ist der Server für das Programm rsh(1). Der Server bietet Ein-
richtungen zur entfernten Kommando-Ausführung mit einer auf privile-
gierten Portnummern basierenden Berechtigungsprüfung.
rshd wird von inetd(1M) immer dann aufgerufen, wenn ein Shell-Dienst
angefordert wird und führt folgende Schritte aus:
1) Der Server prüft die Portnummer des Clients. Liegt sie nicht im
Bereich zwischen 0 und 1023, bricht der Server die Verbindung ab.
Die Rechneradresse des Clients (hexadezimal) und die Portnummer
(dezimal) werden als Argument an rshd übergeben.
2) Der Server liest einen Zeichenstrom vom Socket, bis ein Null-Byte
erkannt wird (\0). Die sich daraus ergebende Zeichenkette wird als
ASCII-Zahl, Basis 10, interpretiert.
3) Ist die in Schritt 1 empfangene Zahl nicht Null, wird sie als Port-
nummer einer zweiten Verbindung interpretiert, die für die Stan-
dardfehlerausgabe stderr verwendet werden soll. Daraufhin wird eine
zweite Verbindung zu dem angegebenen Port auf dem Rechner des
Clients hergestellt. Die Portnummer dieser zweiten Verbindung liegt
ebenfalls im Bereich zwischen 0 und 1023.
4) Der Server prüft die Rechneradresse des Clients. Gehört die Adresse
zu einem Rechner, für den in der Rechnernamen-Datenbasis kein Ein-
trag vorhanden ist [siehe hosts(4)], bricht der Server die Verbin-
dung ab.
5) Auf der ersten Verbindung wird ein mit Null abschließender Benut-
zername mit maximal 16 Zeichen ermittelt. Dieser wird als Benutzer-
kennung für das Server-System verwendet.
6) Auf der ersten Verbindung wird ein mit Null endender Benutzername
mit maximal 16 Zeichen ermittelt. Dieser wird als Benutzerkennung
für das Client-System interpretiert.
7) Auf der ersten Verbindung wird ein auf Null endendes Kommando
ermittelt, das an eine Shell übergeben werden soll. Die Länge des
Kommandos wird durch die Obergrenze für die Länge der Argumentliste
auf dem System bestimmt.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
rshd(1M) rshd(1M)
8) Anschließend prüft rshd die Gültigkeit des Benutzers mit den fol-
genden Schritten. Der Name des fernen Benutzers wird in der Paß-
wortdatei gesucht, und in sein Home-Verzeichnis wird mit chdir ver-
zweigt. Schlägt die Suche fehl, wird die Verbindung abgebrochen.
Schlägt chdir fehl, wird die Prüfung für / (root) wiederholt. Han-
delt es sich bei dem Benutzer nicht um den Systemverwalter root
(Benutzernummer 0), wird in der Datei /etc/hosts.equiv nach einer
Liste von berechtigten Rechnern gesucht. Befindet sich der Rechner-
name des Clients in dieser Datei, gilt die Berechtigungsprüfung als
erfolgreich. Schlägt die Suche fehl oder ist der Benutzer der
Systemverwalter, wird anhand der Datei .rhosts im Home-Verzeichnis
des fernen Benutzers der Name des Rechners und die Kennung des
Benutzers auf dem Rechner des Clients überprüft. Schlägt diese
Suche fehl, wird die Verbindung abgebrochen.
9) Auf der zu stderr gehörenden Verbindung wird ein Null-Byte zurück-
gegeben, und die Kommandozeile wird an die normale Login-Shell des
Benutzers übergeben. Die Shell übernimmt die Ein- und Ausgaben von
der von rshd aufgebauten Netzverbindung.
DIAGNOSE
Die folgenden Diagnosemeldungen werden auf der zu stderr gehörenden
Verbindung zurückgegeben, danach werden alle Netzwerkverbindungen
abgebrochen. Ein Fehler wird durch ein führendes Byte mit dem Wert 1
angezeigt (0 wird in Schritt 9 bei erfolgreicher Ausführung aller
Schritte vor der Ausführung des Kommandos ausgegeben).
locuser too long
(lokaler Benutzername zu lang) Der Name des Benutzers auf dem
Rechner des Clients ist mehr als 16 Zeichen lang.
remuser too long
(ferner Benutzername zu lang) Der Name des Benutzers auf dem fer-
nen Rechner ist mehr als 16 Zeichen lang.
command too long
(Kommando zu lang) Die übergebene Kommandozeile ist länger als
die zulässige Argumentliste (wie im System konfiguriert).
Hostname for your address unknown.
(Rechnername für Ihre Adresse unbekannt) Für den Rechner des
Clients existiert in der Rechnernamen-Datenbasis kein Eintrag.
Login incorrect.
(Anmeldung nicht korrekt) Für den Benutzernamen existiert kein
Eintrag in der Paßwortdatei.
Permission denied.
(Zugriffsberechtigung verweigert) Die oben beschriebene Berechti-
gungsprüfung ist fehlgeschlagen.
Can't make pipe.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
rshd(1M) rshd(1M)
(Pipe kann nicht erstellt werden) Die für die Standardausgabe
stderr benötigte Pipe wurde nicht erstellt.
Try again.
(Versuch wiederholen) Ein vom Server abgesetztes Kommando fork
ist fehlgeschlagen.
DATEIEN
/etc/hosts.equiv
SIEHE AUCH
rsh(1), inetd(1M).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98