Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ftpd(1M) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ftp(1)

inetd(1M)

getsockopt(3N)

group(4)

netconfig(4)

passwd(4)

services(4)

ftpd(1M)                                                           ftpd(1M)

NAME
     ftpd, in.ftpd - Server für Dateiübertragungsprotokolle

SYNTAX
     in.ftpd [-B|-S] [-bdl] [-u maske] [-t zeitlimit] [-T maxzeitlimit]
             [-F wert] [-N wert] [-W wert] rechner.port

BESCHREIBUNG
     ftpd ist der Serverprozeß für das Internet File Transfer Protocol (FTP
     - Internet-Dateiübertragungsprotokoll). Der Server wird von dem
     Internet-Dämon inetd(1M) immer dann aufgerufen, wenn ein Verbindungs-
     wunsch zum FTP-Dienst [siehe services(4)] empfangen wird. Dabei steht
     als Verbindung Deskriptor 0 zur Verfügung. rechner.port sind Rechner-
     name und Portnummer des anfordernden Prozesses.

OPTIONEN
     -B   Mit der Option -B wird die Umgebungsvariable LIBSOCKETBSD=YES
          für das ftpd-Kommando gesetzt. Das heißt, es werden BSD-Sockets
          benutzt.

     -S   Mit der Option -S wird die Umgebungsvariable LIBSOCKETBSD=NO für
          das ftpd-Kommando gesetzt. Das heißt, es werden STREAMS-Sockets
          benutzt.

          Hinweis:

          Die Option -B oder -S überlagert den aktuellen Wert von
          LIBSOCKETBSD in der Shell-Umgebung. Ist weder -B noch -S
          gesetzt, so wird das Verhalten durch die Einstellung von
          LIBSOCKETBSD beim Start bestimmt.

     -b   Die Änderung der IP-Adresse des FTP-Clients mit dem PORT-Kommando
          ist nicht mehr möglich. Dadurch kann die "ftp bounce attack" ver-
          hindert werden. ftpd verhält sich dann aber nicht mehr RFC-kon-
          form. Die Änderung des Ports auf dem Client ist nach wie vor mög-
          lich.

     -d   Schaltet den Debug-Modus ein. Die Debug-Information wird an den
          syslog-Dämon geschickt [siehe syslog(3C)].

     -l   Protokolliert jede FTP-Sitzung durch den syslog-Dämon.

     -u maske
          Setzt die Schutzbit-Maske für die Zugriffsrechte auf Dateien auf
          maske. Die Schutzbit-Maske ist eine dreistellige Oktalzahl. Mit
          ihr bestimmen Sie, welche Zugriffsrechte nicht vergeben werden
          sollen [vgl. umask(1)]. Die Standardeinstellung für maske ist
          027, also rw-r-----.







Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

ftpd(1M)                                                           ftpd(1M)

     -t zeitlimit
          Setzt das Zeitlimit bei Inaktivität auf den Wert zeitlimit in
          Sekunden. Standardmäßig bricht der FTP-Server eine inaktive Sit-
          zung nach einer Wartezeit von 15 Minuten ab.

     -T maxzeitlimit
          Setzt das maximale Zeitlimit bei Inaktivität, das von einem
          Client gefordert werden kann, auf den Wert maxzeitlimit (in
          Sekunden). Standardmäßig ist ein Wert von 2 Stunden festgelegt.

     -F wert
          wert bestimmt die Blockgröße für die Dateiübertragung. Das heißt,
          die zu übertragende Datei wird in solchen Blöcken gelesen bzw.
          geschrieben.

          Es werden Werte zwischen 1 KB und 16 MB akzeptiert. Voreinstel-
          lung ist 32 KB.

     -N wert
          wert bestimmt die Größe des ftp-internen Sende-/Empfangspuffers.

          Es werden Werte zwischen 1 KB und 16 MB akzeptiert. Voreinstel-
          lung ist 32 KB.

     -W wert
          wert wird als Socket-Option SOSNDBUF bzw. SORCVBUF für die
          Datenübertragung verwendet.

          Es werden Werte zwischen 4 KB und 384 MB akzeptiert. Voreinstel-
          lung ist 24 KB.

          Bei allen drei Optionen -F, -N und -W kann wert folgendermaßen
          spezifiziert werden:

          nk oder nK      Der Wert wird als n Kilobyte interpretiert.

          nm oder nM      Der Wert wird als n Megabyte interpretiert.

          n (nur Zahl)    Der Wert wird als n Byte interpretiert.

   Anforderungen

     Der FTP-Server unterstützt aktuell die folgenden FTP-Kommandos; es
     wird nicht nach Groß- und Kleinschreibung unterschieden.

     ABOR      vorheriges Kommando abbrechen

     ACCT      Konto angeben (ignoriert)

     ALLO      Speicher zuweisen (willkürlich)

     APPE      an eine Datei anhängen


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

ftpd(1M)                                                           ftpd(1M)

     CDUP      ins Vaterverzeichnis des aktuellen Arbeitsverzeichnisses
               wechseln

     CWD       Arbeitsverzeichnis wechseln

     DELE      eine Datei löschen

     HELP      Hilfeinformationen anzeigen

     LIST      Listendateien in einem Verzeichnis anzeigen (ls -lg)

     MKD       Verzeichnis anlegen

     MODE      modus für Datenübertragung definieren

     NLST      Namensliste der Dateien in einem Verzeichnis anzeigen (ls)

     NOOP      keine Operation

     PASS      Paßwort angeben

     PASV      Server-zu-Server-Übertragung vorbereiten

     PORT      Datenverbindungsanschluß definieren

     PWD       aktuelles Arbeitsverzeichnis ausgeben

     QUIT      Sitzung beenden

     RETR      Datei abrufen

     RMD       Verzeichnis entfernen

     RNFR      alten Dateinamen zum Umbenennen angeben

     RNTO      neuen Dateinamen zum Umbenennen angeben

     SITE      Nicht-Standard-Kommandos ausführen

     STOR      Datei speichern

     STOU      Datei mit einem eindeutigen Namen speichern

     STRU      structure für Datenübertragung angeben

     TYPE      type für Datenübertragung angeben

     USER      Benutzernamen angeben

     XCUP      zum Vaterverzeichnis des aktuellen Arbeitsverzeichnisses
               wechseln



Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

ftpd(1M)                                                           ftpd(1M)

     XCWD      Arbeitsverzeichnis wechseln

     XMKD      Verzeichnis anlegen

     XPWD      aktuelles Arbeitsverzeichnis ausgeben

     XRMD      Verzeichnis entfernen

     Die folgenden Nicht-Standard-Kommandos werden von SITE unterstützt:

     UMASK     Abfragen und Ändern der Schutzbit-Maske. Abfrage: SITE
               UMASK. Ändern mit Angabe der neuen Schutzbit-Maske, z. B.
               SITE UMASK 077.

     IDLE      Abfragen und Ändern des Zeitlimits bei Inaktivität, z. B.
               SITE IDLE 60.

     CHMOD     Ändern der Zugriffsrechte einer Datei, z. B. SITE CHMOD 755
               datei.

     HELP      Hilfeinformationen des SITE-Kommandos anzeigen, z. B. SITE
               HELP.

     Die übrigen FTP-Anforderungen, die in RFC 959 angegeben sind, werden
     erkannt, sind aber nicht implementiert.

     Der FTP-Server bricht eine aktive Dateiübertragung nur dann ab, wenn
     dem Kommando ABOR ein Telnet-"Interrupt Process"-(IP)-Signal und ein
     Telnet-"Synch"-Signal im Telnet-Datenstrom des Kommandos vorausgehen,
     wie in RFC 959 beschrieben.

     ftpd interpretiert Dateinamen entsprechend den Konventionen von sh(1).
     Daher können Benutzer die folgenden Metazeichen verwenden: *, ?, [, ],
     {, } und ~.

     ftpd überprüft Benutzer nach vier Regeln:

     1) Der Benutzername muß in der Paßwortdatenbank /etc/passwd enthalten
        sein, und das Paßwort darf nicht Null sein. Ist dies der Fall, muß
        der Client ein Paßwort angeben, ehe Datei-Operationen durchgeführt
        werden können.

     2) Erscheint der Benutzername in der Datei /etc/ftpusers, wird der
        ftp-Zugriff verweigert.

     3) Der ftp-Zugriff wird nur dann gewährt, wenn die Shell des Benutzers
        (aus /etc/passwd) in der Datei /etc/shells aufgeführt ist oder wenn
        die Benutzer-Shell zur folgenden Gruppe gehört:






Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

ftpd(1M)                                                           ftpd(1M)

        /bin/sh
        /bin/ksh
        /bin/csh
        /usr/bin/sh
        /usr/bin/ksh
        /usr/bin/csh

     4) Ist der Benutzername "anonymous" oder "ftp", muß die Paßwortdatei
        (Benutzer "ftp") eine anonyme FTP-Benutzerkennung enthalten. In
        diesem Fall darf sich der Benutzer mit einem beliebigen Paßwort
        anmelden (dieses wird laut der Konvention als Name des Client-Rech-
        ners angegeben).

     Im letzten Fall ergreift ftpd besondere Maßnahmen, um die Zugriffs-
     rechte des zugreifenden Benutzers einzuschränken. Der Server führt ein
     Kommando chroot(1M) für das Home-Verzeichnis des Benutzers "ftp" aus.
     Um die Systemsicherheit zu wahren, muß der Teilbaum "ftp" mit besonde-
     rer Umsicht aufgebaut werden; dazu werden folgende Regeln empfohlen:

     $HOME
          Sollte ftp zum Eigentümer des Home-Verzeichnisses haben; niemand
          anders darf Schreibberechtigung dafür haben.

     $HOME/bin
          Sollte den Superuser zum Eigentümer dieses Verzeichnisses machen,
          für das dann niemand anders Schreibberechtigung hat. Das Kommando
          ls(1), das die Listenkommandos unterstützt, muß vorhanden sein.
          Es muß Zugriffsrecht 111 haben.

     $HOME/etc
          Sollte den Superuser zum Eigentümer dieses Verzeichnisses machen,
          für das niemand sonst Schreibberechtigung hat. Kopien der Dateien
          passwd(4), group(4) und netconfig(4) müssen vorhanden sein, damit
          das Kommando ls ordnungsgemäß ausgeführt werden kann. Diese
          Dateien müssen das Zugriffsrecht 444 haben.

     $HOME/pub
          Gibt diesem Verzeichnis das Zugriffsrecht 777 und macht ftp zum
          Eigentümer. Benutzer sollten Dateien, die über die anonyme Benut-
          zerkennung verfügbar sein sollen, in dieses Verzeichnis ablegen.

     $HOME/dev
          Macht den Superuser zum Eigentümer dieses Verzeichnisses, für das
          niemand sonst Schreibberechtigung hat. In dieses Verzeichnis
          wechseln und folgendes eingeben:

          FTP="`grep '^ftp:' /etc/passwd | cut -d: -f6`"
          MAJORMINOR="`ls -l /dev/tcp | awk '{ gsub(/,/, \" \"); \
          print $5, $6}'`"
          mknod $FTP/dev/tcp c $MAJORMINOR
          chmod 666 $FTP/dev/tcp



Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

ftpd(1M)                                                           ftpd(1M)

     $HOME/usr/lib
          Dieses Verzeichnis sollte den Systemverwalter (root) als Eigentü-
          mer haben und für niemand anderen schreibbar sein. Die Bibliothek
          libc.so.1 (aus /usr/lib) muß vorhanden sein, um die Kommandos zur
          Ausgabe von Listen zu unterstützen. Für dieses Programm sollten
          die Zugriffsrechte auf 555 (r-xr-xr-x) gesetzt sein.

     $HOME/dev/zero
          Dieses Verzeichnis sollte den Systemverwalter als Eigentümer
          haben und nicht für andere Benutzer schreibbar sein. Das Gerät
          zero muß vorhanden sein, um die Kommandos zur Ausgaben von Listen
          zu unterstützen. Auch dieses Gerät muß root als Eigentümer und
          die Zugriffsrechte 666 (rw-rw-rw-) haben. Seine Gerätetreibernum-
          mern können ermittelt werden mit ls -l /dev/zero.

HINWEISE
     Die anonyme FTP-Benutzerkennung birgt Gefahren in sich und sollte
     daher nach Möglichkeit nicht angelegt werden.

     Der Server muß als Superuser arbeiten, um Socket-Schnittstellen mit
     privilegierten Anschlußnummern erstellen zu können. Er behält eine
     effektive Benutzernummer des angemeldeten Benutzers bei und greift nur
     auf den Superuser zurück, um Adressen an Socket-Schnittstellen zu bin-
     den. Mögliche Sicherheitslücken wurden eingehend untersucht, können
     aber möglicherweise noch immer bestehen.

     /etc/ftpusers enthält eine Liste der Benutzer, die nicht auf das
     System zugreifen dürfen; die Datei gibt einen Benutzernamen pro Zeile
     an.

SIEHE AUCH
     ftp(1), inetd(1M), getsockopt(3N), group(4), netconfig(4), passwd(4),
     services(4).

     Postel, Jon und Joyce Reynolds, File Transfer Protocol (FTP), RFC 959,
     Network Information Center, SRI International, Menlo Park, Calif.,
     October 1985.

















Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026