Damit mehrere Anfragen parallel bedient werden können, wird sich der Serverprozeß teilen. Der eine bedient den Client, der andere wartet auf weitere Anfragen. Das Zusammenspiel von Client und Server kann auch am Source-Beispiel untersucht werden.
Ein solcher Prozeß, der im Hintergrund wartet, bis ein
bestimmtes Ereignis eintritt, wird auch Dämon genannt.
Dabei bedeuten
Der inet-Dämon
Für viele TCP-IP-Dienste wird nicht jeweils ein Dämon gestartet, sondern der inet-Dämon
überwacht als einziger Prozess alle zugehörigen Ports. Wird ein solcher überwachter Port angefragt,
startet inetd den zugehörigen Serverprozeß. Gesteuert wird inetd durch die Datei /etc/inetd.conf.
Hierin stehen die überwachten Dienste und die Dateinamen der zugehörigen Dienste. Jede Zeile hat
den folgenden Aufbau:
<name> <type> <protocol> <wait-status> <uid> <server> <arguments>
Das File Transfer Protocol (ftp)
Das Programm ftp kann mit Angabe der Internetnummer oder des Hostnamen gestartet. Es führt
zunächst einen normalen login aus. Der Anwender wird also aufgefordert, Benutzernamen und
Passwort einzugeben. Anschließend landet er auf dem fremden Rechner mit einer ftp-eigenen Shell.
Die wichtigsten Kommandos lauten:
Befehl | Bedeutung |
---|---|
get Datei Zieldatei | Hole eine Datei |
put Datei Zieldatei | Sende eine Datei |
pwd | Zeige aktuelles Verzeichnis auf Zielrechner an |
cd Verzeichnis | Wechsle Verzeichnis auf Zielrechner |
ls oder dir | Zeige die Dateien auf dem Zielrechner |
quit | Verlasse ftp |
image oder binary | Übertrage ohne Änderung |
ascii | Korrigiere Zeilenvorschübe bei Übertragung |
Durch eine Datei .netrc im Homeverzeichnis kann der ftp-Dienst mit geringeren Eingaben gestartet werden. Dabei enthält diese Datei in jeder Zeile die Einträge:
<host> <user> <passwort>Der Eintrag des Passworts ist optional. Ist ein Passwort eingetragen, muß die Datei mit chmod auf 600 gestellt werden. Sie darf also von niemandem gelesen werden können.
Wird nur dem root der Zugriff verweigert: in der /etc/ftpusers stehen alle
User, die KEINEN ftp-Zutritt haben.
Wie fast immer stehen gerade hier Bequemlichkeit und Sicherheit
umgekehrt proportional zueinander.
Terminaldienst (telnet)
Mit dem Befehl
telnet <Internetadresse>
kann man sich in einen beliebigen erreichbaren Host
einloggen. Dabei wird zunächst die Verbindung hergestellt und anschließend wird der Anwender
nach Benutzername und Passwort gefragt. Nach dem Einloggen kann der Benutzer so arbeiten, als
hätte er eine Terminalsitzung auf der fremden Maschine eröffnet.
Die r-Kommandos
Da das ständige Authentifizieren beim Anmelden in der Praxis sehr störend
ist, gibt es die Möglichkeit, mit bestimmten Kommandos direkt
auf die ferne Maschine zuzugreifen. Die Berechtigung wird einmal festgelegt,
indem angegeben wird, welche Benutzer welcher Maschinen berechtigt sind,
auf der lokalen Maschine zu operieren.
Ein ganz enormer Vorteil liegt bei der Verwendung solcher Programme in
Skripten oder Programmen.
Remote Copy (rcp)
Im Gegensatz zu ftp eignet sich rcp besonders dazu, in Scripten verwendet zu werden, da der Befehl
im Idealfall ohne Rückfragen an den Benutzer erfolgt. Dazu müssen allerdings die Rechte des
Benutzers für den Zugriff vorher eingestellt sein.
rcp [<Host>:]<Quelle> [<Host>:]<Ziel>
Beispiel:
rcp idefix:/etc/hosts* ./test
test muß ein Verzeichnis sein. Die Dateien auf dem fremden Rechner müssen mit vollständigem
Verzeichnis angegeben werden.
Der rcp gelingt natürlich, wenn der eigene Rechner auf dem fernen Rechner in der Datei
/etc/hosts.equiv eingetragen ist. Zusätzlich muß der ferne Rechner in der /etc/hosts angegeben sein,
da rcp den Hostnamen und nicht eine Internetnummer verlangt.
Im Normalfall wird der rcp allerdings für einzelne Benutzer zugelassen. Dazu sind folgende
Voraussetzungen erforderlich:
rlogin
Per rlogin eröffnet man eine Terminalsitzung auf dem fremden Rechner unter seiner eigenen
Benutzer-ID. Voraussetzung ist hier, daß der einloggende Benutzer auf der fremden Maschine
ebenfalls eine Benutzerkennung besitzt.
Befehlsausführung (rsh, rcmd und rexec)
Das Ausführen einer Zeile auf einem fremden Rechner wird je nach System mit unterschiedlichen
Aufrufen durchgeführt. Alle diese Befehle basieren auf der Bibliotheks-Funktion rexec.
Entsprechend ist der Name rexec als Befehl ebenfalls vorhanden. Um Ablaufen zu können,
Das ftp-PCTCP für OS/2 nennt den Befehl rsh (remote shell).
rsh <host> [-l <user>] <Befehl>
SCO nennt den Befehl rcmd (remote command). Der Name rsh ist hier für die restricted shell, einer
lokalen Shell mit eingeschränkten Rechten vergeben.
rcmd <host< [-l <user>] [-n] <Befehl>
Drucken im TCP/IP
BSD-Unix: lpd, lpr, lpq und lprm
Das Drucken per TCP/IP erfolgt nach einer an BSD-UNIX angelehnten Methode. Im Zentrum steht
der Lineprinter-Dämon (lpd). Der lpd liest beim Start die Datei /etc/printcap aus. Darin findet er die
definierten Drucker und deren Spoolverzeichnisse. Findet er darin eine Daten- und eine
Kontrolldatei für einen Ausdruckswunsch, druckt er ihn aus indem er sich an die eingetragene
Schnittstelle (Parameter lp) wendet. Ist dieser Eintrag leer und stattdessen ein fremder Host
(Parameter rm) eingetragen, sendet er beide Dateien an den lpd des entsprechenden Rechners. Er
sendet diesem auch den Druckereintrag, über den dieser ausdrucken soll.
Empfängt ein lpd einen Druckauftrag über TCP/IP, sieht er in der Datei /etc/hosts.lpd nach, ob der
Sender überhaupt berechtigt ist, auf diesem Rechner zu drucken. Die Datei hosts.lpd darf kein
öffentliches Schreibrecht haben. Auch alle Rechner, die in der /etc/hosts.equiv stehen, haben
Druckrecht. Beim Eintrag des Hostnamen ist darauf zu achten, daß der erste Name des Rechners aus
der /etc/hosts verwendet wird, da er sonst nicht erkannt wird.
Um die Dateien in das Spoolverzeichnis des lpd zu schreiben, wird das Frontend lpr verwendet. Der
Aufruf lautet:
Unter Linux:
lpr -P<printer> <Dateiname>
Unter SCO:
lpr -d<printer> <Dateiname>
Die Druckerbeschreibung befindet sich auf UNIX-Systemen
in der /etc/printcap.
Unter OS/2 (PCTCP):
lpr -S<hostname> -P<printername> <Dateiname>
mkdev rlp
minstart lpdEin detach hat zu erheblichen Performance-Einbrüchen geführt. Weitere Verbesserungen der Performance erreicht man, wenn in der Datei \pctcp\etc\pctcp.ini bei Angabe der Schnittstelle der Zusatz /redirected angehängt wird. So werden die Daten block- und nicht buchstabenweise verarbeitet. Beispiel:
[Epson] device = LPT1/redirected
/usr/src # das Verzeichnis ist für alle frei zugreifbarNach Änderungen an der /etc/exports muß ein kill -1 auf den mountd-Prozeß abgesetzt werden. Unter Linux wird der NFS-Dienst gestoppt und gestartet mit:
/sbin/init.d/nfsserver stop /sbin/init.d/nfsserver start
mount -t nfs <Hostname:><Pfadname> <Mountpoint>Beispiel:
mount -t nfs idefix:/home/ingres /mntDadurch wird das Verzeichnis /home/ingres auf dem Host idefix auf dem eigenen Host über den Pfadnamen /mnt erreichbar. Ein Befehl wie ``ls /mnt'' listet also den Inhalt des Verzeichnisses /home/ingres auf dem Host idefix. Bei SCO wird statt der Option -t, die ansonsten in der UNIX-Welt üblich ist, die Flag -f verwendet. Zusätzlich werden dort die Filesystem-Bezeichnungen in Großbuchstaben angegeben. So würde dort der obige Aufruf so lauten:
mount -f NFS idefix:/home/ingres /mntMan kann auch NFS-Laufwerke vom Client automatisch beim Booten mounten lassen. Dies erfolgt bei Linux durch Eintrag in der /etc/fstab. Dabei wird als Filesystem-Typ nfs angegeben. Unter SCO wird dazu die Datei /etc/default/filesys verwandt, in der ebenfalls die zur Bootzeit gemounteten Dateisysteme stehen. Um zu ermitteln, welche Verzeichnisse ein NFS-Server anbietet, wird der folgende Befehl verwendet:
showmount -e scosrv
detach nfsdmon -iangegeben. Dieser Startet den NFS-Client-Dämon des TCPs. Die Beschreibungen der Laufwerke werden in der Datei \verb|\PCTCP\ETC\IDDRIVE.INI| abgelegt. Der Dateiname kann in der Datei \verb|\PCTCP\ETC\PCTCP.INI| umkonfiguriert werden. Um die Datei zu verändern und die Veränderungen wirksam werden zu lassen, muß der NFS-Dämon zunächst beendet und neu gestartet werden. Das beenden des Dämons erfolgt durch den Befehl
nfsdmon -kDie in der IDDRIVE-Datei benannten Filesysteme können über den Befehl
idmntgemountet werden. Wird statt des Dateisystems -a angegeben, werden alle in der IDRIVE.INI angegebenen Systeme gemountet.
sendmail -qDer Zeitabstand wird mit 1h für eine Stunde oder 15m für 15 Minuten angegeben. Man sollte diesen Abstand nicht unter 15 Minuten senken. Die Option -bd bewirkt, daß der Dämon den Port abfragt. Für das Versenden von Nachrichten wird die alias-Datei /etc/aliases verwendet. Hier stehen Adressaten und ihre tatsächlichen Zielorte. Beispiel:-bd
aw: awillemer@os2aw us: usander@os2us all: aw, meier@marian.mymail.de, us owner-all: awEntsteht beim Senden an all ein Problem wird mit owner-all der Teilnehmer angegeben, an den die Fehlernachricht gesendet werden soll. Werden Einträge in /etc/aliases geändert, werden diese mit dem Befehl newaliases oder sendmail -bi an den sendmail-Dämon weitergeleitet. Jeder Benutzer kann seine lokale Mail an einen anderen Rechner weiterleiten, indem er im Benutzerverzeichnis eine Datei .forward anlegt und hier die Zieladresse z. B. uwe@myserver ablegt Die Konfiguration des sendmails erfolgt in der Datei /etc/sendmail.cf Eine Beschreibung des SMTP (Simple Mail Transfer Protocol), das sendmail verwendet, findet sich in Comer S. 399.
Homepage | (C) Copyright 1999 Arnold Willemer |