%
% pure-tftpd.tex
% Last Update: $Id$
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kapitel Pure-FTPd %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Das Pure-FTPd Paket}
\index{FTP Pure-FTPd}

\section{Einleitung}

    Mit diesem Paket wird der Filetransfer Dienst, im folgenden auch Service
    genannt, auf dem Rechner installiert. Dieser Service bieten die M"oglichkeit
    Dateien vom Server oder auf den Server zu transferieren.


\section{Funktionen}

    Das Pure-FTPd Paket stellt folgende Basis-Funktionalit"at zur Verf"ugung:

\sloppy
\begin{itemize}
  \item FTP-Server.\\
        Als Software wird der (\link{https://www.pureftpd.org}{Pure-FTPd}) verwendet.
        Dieser FTP-Server ist sehr sicher, bietet sehr viele Features und wird aktiv weiterentwickelt.
\end{itemize}

\section{Voraussetzungen}

    Es ist abh"angig davon, dass eine aktuelle Version des Basissystems
    installiert ist.

\section{Installation}

    Das Pure-FTPd Paket wird "uber das Setup-Men"u im Untermen"u
    \glqq{}Package administration\grqq{} installiert.

\section{Das Men"u im Setup-Program}

    Das Men"u im Setup-Programm ist wie folgt aufgebaut:


    \mbox {}

    \begin{tabular}{llll}
    & x. &  Service administration \\
    \end{tabular}
\eline
    \begin{tabular}{p{1cm}llll}
    & x. &  Pure-FTPd Service \\
    \end{tabular}
\eline
    \begin{tabular}{p{2cm}rllll}
    & 1. &  View documentaion \\
    & 3. &  Edit main configuration \\
    & 4. &  Advanced main configuration file handling \\
    & 5. &  Edit virtual user configuration \\
    & 6. &  Advanced virtual user configuration file handling \\
    & 7. &  Show status \\
    & 8. &  Stop service \\
    & 9. &  Start servcice \\
    & 10. &  Pure-FTPd tools \\
    \end{tabular}
\eline
    \begin{tabular}{p{3cm}llll}
    & 1. &  List Pure-FTPd local users \\
    & 2. &  List Pure-FTPd virtual users \\
    & 3. &  Show info about a Pure-FTPd virtual user \\
    & 4. &  Check Pure-FTPd virtual users \\
    & 5. &  Report current FTP sessions \\
    \end{tabular}


    \mbox{}

\section{"Anderung der Konfiguration}


    Die Konfiguration kann "uber den Men"upunkt \glqq{}Edit main Configuration\grqq{}
    ge"andert werden.

    Nachdem der Editor beendet wurde wird die Konfiguration mit dem
    eischk-Programm automatisch auf syntaktische und teilweise auch auf
    semantische Fehler gepr"uft. Werden Fehler festgestellt, so werden
    diese gemeldet und der Benutzer zur Korrektur aufgefordert. Wird eine
    solche Korrektur nicht durchgef"uhrt, so kann es zu unvorhersehbaren
    Fehlfunktionen bei dem Dienst kommen.

    Es wird zus"atzlich gefragt, ob die Konfiguration angewendet
    (aktiviert) werden soll. Wird dieses verneint, so unterbleibt die
    Aktivierung.\\\\

    \achtung{Beim n"achsten Boot-Vorgang kann es in diesem
             Fall zu unvorhersehbaren Fehlern kommen.}

    Wird die Aktivierung best"atigt, werden "uber ein Skript die
    durchgef"uhrten "Anderungen wirksam gemacht. Dazu wird der Pure-FTPd
    gestoppt und neu gestartet.

    "Uber den Men"upunkt \glqq{}Edit virtual user configuration\grqq{} kann
    die Konfiguration der virtuellen User ver"andert werden.
    Die Konfiguration der virtuellen User wurde in einen extra Men"upunkt
    ausgelagert, da "Anderungen an den virtuellen Usern keinen Restart
    des gesamten Services notwendig machen.

    Nur wenn PURE\_FTPD\_ENABLE\_VIRTUAL\_USERS ver"andert, also z.B.
    von 'no' auf 'yes' ge"andert wird, ist ein Restart notwendig.

    F"ur die Konfiguration der virtuellen User existiert eine spezielle
    Konfigurationsdatei \texttt{(/etc/config.d/pure-ftpd-vuser)}


\section{Die Haupt-Konfigurationsdatei}

    Die Konfigurationsdatei \texttt{(/etc/config.d/pure-ftpd)}
    enth"alt in einer Reihe von Abschnitten die Parameter, die den
    Dienst parametrisieren bzw. festlegen, ob der Dienst "uberhaupt
    zur Verf"ugung gestellt wird oder nicht.


\subsection{Pure-FTPd (general settings)}


\begin{description}

\config{START\_PURE\_FTPD}
{START\_PURE\_FTPD}
{STARTPUREFTPD}
{
    Legt fest, ob der Pure-FTPd-Server gestartet wird.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{START\_PURE\_FTPD='no'}
}


\config{PURE\_FTPD\_VIRTUALCHROOT}
{PURE\_FTPD\_VIRTUALCHROOT}
{PUREFTPDVIRTUALCHROOT}
{
    Legt fest, welche Variante des Pure-FTPd-Servers gestartet wird.

    PURE\_FTPD\_VIRTUALCHROOT='yes'\\
    Ein User, der mit FTP nicht "uber sein Homeverzeichnis herauskommt
    kann "uber speziell angelegte symbolische Links auf andere Verzeichnisse
    doch Verzeichnisse ausserhalb seines Homeverzeichnis erreichen.
    Dies macht z.B. ein gemeinsammes download Verzeichnis auf /srv/download
    m"oglich. Diese Variante birgt aber auch Sicherheitsrisiken.

    PURE\_FTPD\_VIRTUALCHROOT='no'\\
    Die User k"onnen nicht "uber ihre Homeverzeichnisse herauskommen.

    Siehe aber auch PURE\_FTPD\_DONT\_CHROOT\_GROUP.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUALCHROOT='yes'}
}


\config{PURE\_FTPD\_START\_METHOD}
{PURE\_FTPD\_START\_METHOD}
{PUREFTPDSTARTMETHOD}
{
    Legt fest, wie der Pure-FTPd-Server gestartet werden soll.

    Bei Angabe von 'st' wird der Pure-FTPd-Server als sogenannter
    Standalone Server gestartet.

    Bei Angabe von 'xi' erfolgt der Start "uber socket activation,
    analog dem fr"uheren xinetd.

    Einzelne Parameter sind nur in der einen oder anderen Variante m"oglich
    und m"ussen entsprechend an- oder abgeschaltet werden.

    G"ultige Werte: st, xi

    Standardeinstellung: \texttt{PURE\_FTPD\_START\_METHOD='st'}
}


\config{PURE\_FTPD\_IPADDR}
{PURE\_FTPD\_IPADDR}
{PUREFTPDIPADDR}
{
    Die Angabe einer IP-Adresse auf der der Pure-FTPd-Server
    'lauschen' soll. \\
    Hier wird keine echte IP Adresse angegeben sondern der Index der
    Angabe \texttt{IP\_ETH\_x\_IP\_x\_IPADDR} aus der
    Base Konfiguration in \texttt{/etc/config.d/base}.

    Ist PURE\_FTPD\_IPADDR leer, so wird auf allen konfigurierten
    IP-Adressen 'gelauscht'.

    Beispiel: \texttt{PURE\_FTPD\_IPADDR='2:1'}
    zeigt auf \texttt{IP\_ETH\_2\_IP\_1\_IPADDR} in
    \texttt{/etc/config.d/base}.

    Der Wert vor dem '2:' ist der Index der Netzwerkkkarte \\
    der Wert hinter dem ':1' ist der Index der IPADDR.

    Der Index kann, wenn der Editor \glqq{}\ece\grqq{} eingestellt ist,
    auch aus dem Dialog eingef"ugt werden.

    G"ultige Werte: 1:1, 1:2, 2:1 etc.. oder leer.

    Standardeinstellung: \texttt{PURE\_FTPD\_IPADDR='{}'}
}


\config{PURE\_FTPD\_PORT}
{PURE\_FTPD\_PORT}
{PUREFTPDPORT}
{
    Definiert den Port, auf dem der Pure-FTPd-Server 'lauschen' soll.

    G"ultige Werte: Port Nummer, Standard=21

    Standardeinstellung: \texttt{PURE\_FTPD\_PORT='21'}
}


\config{PURE\_FTPD\_LISTEN}
{PURE\_FTPD\_LISTEN}
{PUREFTPDLISTEN}
{
    Definiert auf welchen Adressen der Pure-FTPd-Server 'lauschen' soll.

    G"ultige Werte: ipv4only, ipv6only oder leer.

    \begin{tabular}{lll}
    & ipv4only & lausche nur auf IPv4 Adressen \\
    & ipv6only & lausche nur auf IPv6 Adressen \\
    & leer     & lausche auf allen konfigurierte Adressen des Systems. \\
    \end{tabular}

    Standardeinstellung: \texttt{PURE\_FTPD\_LISTEN='ipv4only'}
}


\config{PURE\_FTPD\_PASV\_PORTRANGE}
{PURE\_FTPD\_PASV\_PORTRANGE}
{PUREFTPDPASVPORTRANGE}
{
    Portbereich der beim passive Mode genutzt werden soll.
    Format \textless first port\textgreater \textless last port\textgreater . \\
    Der Portbereich wird durch ein Leerzeichen getrennt.

    Wird keine Angabe gemacht (PURE\_FTPD\_PASV\_PORTRANGE ist leer), so nutzt
    der Pure-FTPd-Server die Ports 1024 bis 65535.

    G"ultige Werte: Portnummer Portnummer oder leer

    Standardeinstellung: \texttt{PURE\_FTPD\_PASV\_PORTRANGE='{}'}
}


\config{PURE\_FTPD\_PASV\_IP}
{PURE\_FTPD\_PASV\_IP}
{PUREFTPDPASVIP}
{
    Auf ein PASV/EPSV/SPSV Kommando des FTP-Clients antwortet der
    FTP-Server mit der Angabe aus PURE\_FTPD\_PASV\_IP.

    G"ultige Werte: leer, IP-Adresse, Hostname oder fully qualified domain name (FQDN)

    Standardeinstellung: \texttt{PURE\_FTPD\_PASV\_IP='{}'}
}


\config{PURE\_FTPD\_NAT\_MODE}
{PURE\_FTPD\_NAT\_MODE}
{PUREFTPDNATMODE}
{
    Ein Schalter, mit dem man spielen kann, wenn FTP "uber
    einen masquerading Router (beispielsweise fli4l) nicht
    funktioniert.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_NAT\_MODE='no'}
}


\config{PURE\_FTPD\_WELCOMEFILE}
{PURE\_FTPD\_WELCOMEFILE}
{PUREFTPDWELCOMEFILE}
{
    Datei, die die sog. Welcome Message enth"alt.
    Der Inhalt der Datei wird statt der Meldung \\
    ---------- Welcome to Pure-FTPd ---------- \\
    ausgegeben.
    Die Datei muss existieren und die Zugriffsrechte 644 haben.
    Eine "Anderung der Datei nachdem der Pure-FTPd gestartet wurde
    ist m"oglich. Wird die Datei nachtr"aglich gel"oscht, so wird
    die Standardmeldung ausgegeben.

    G"ultige Werte: Absoluter Pfad

    Standardeinstellung: \texttt{PURE\_FTPD\_WELCOMEFILE='{}'}
}


%\config{PURE\_FTPD\_FSCHARSET}
%{PURE\_FTPD\_FSCHARSET}
%{PUREFTPDFSCHARSET}
%{
%      Auswahl des Zeichensatzes f"ur das Filesystem.
%      Der Pure-FTPd konvertiert ggf. die Dateinamen NICHT aber
%      die Dateinhalte.
%      Ist der Zeichensatz des Filesystem ISO-8859-15, der des Clients
%      aber UTF-8, so k"onnen einige Clients die Konvertierung
%      "uber einen internen Befehl \texttt{('OPTS UTF8 ON')} anfordern.
%      Umlaute werden dann trotz der unterschiedlichen Zeichens"atze
%      korrekt angezeigt.
%      Bei 'auto' wird die notwendige Option f"ur die Konvertierung
%      automatische ausgew"ahlt. Dabei wird die Environmentvariable
%      LC\_CTYPE aus /etc/config.d/environment genutzt.
%
%      G"ultige Werte: ISO-8859-15, UTF-8 oder auto
%
%      Standardeinstellung: \texttt{PURE\_FTPD\_FSCHARSET='auto'}
%}

\end{description}


\subsection{Pure-FTPd (file related settings)}


\begin{description}

\config{PURE\_FTPD\_UMASKS}
{PURE\_FTPD\_UMASKS}
{PUREFTPDUMAKS}
{
    Format \textless umask f"ur Dateien\textgreater:\textless umask f"ur Verzeichnisse\textgreater.
    Beim Erstellen von Dateien bzw. Verzeichnissen zu nutzende
    umask Angabe.
    Der von Pure-FTPd benutzte Standardwert ist 133:022.
    Siehe umask Kommando.

    G"ultige Werte: Zahl:Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_UMASKS='{}'}
}


\config{PURE\_FTPD\_LIST\_DOT\_FILES}
{PURE\_FTPD\_LIST\_DOT\_FILES}
{PUREFTPDLISTDOTFILES}
{
    Bei Angabe von 'yes' werden Dateien, die mit einem Punkt ('.')
    beginnen auch dann angezeigt, wenn der benutzte FTP-Client
    das list-Kommando nicht mit der Option \texttt{'-a'} verwendet.
    Diese Option ist eine Umgehungsl"osung f"ur schlecht konfigurierte
    FTP-Clienten.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_LIST\_DOT\_FILES='no'}
}


\config{PURE\_FTPD\_DISALLOW\_RENAMING}
{PURE\_FTPD\_DISALLOW\_RENAMING}
{PUREFTPDDISALLOWRENAMING}
{
    Bei Angabe von 'yes' ist das Umbenennen von Dateien verboten.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_DISALLOW\_RENAMING='no'}
}


\config{PURE\_FTPD\_DISALLOW\_ANONYMOUS\_UPLOAD}
{PURE\_FTPD\_DISALLOW\_ANONYMOUS\_UPLOAD}
{PUREFTPDDISALLOWANONYMOUSUPLOAD}
{
    Bei Angabe von 'yes' ist es anonymen Zug"angen verboten
    Dateien auf dem FTP-Server abzulegen (kein Upload).

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_DISALLOW\_ANONYMOUS\_UPLOAD='no'}
}


\config{PURE\_FTPD\_NO\_TRUNCATE}
{PURE\_FTPD\_NO\_TRUNCATE}
{PUREFTPDNOTRUNCATE}
{
    Bei Angabe von 'yes' wird eine Datei, wenn sie beim Upload
    ersetzt wird, nicht vorab gel"oscht bzw. trunkiert.
    Der Upload findet zun"achst in eine tempor"are Datei
    (z.B. .pureftpd-upload.599d35aa.15.1a27.23b90451) statt.
    Erst beim Abschluss des Uploads wird die Datei in einer
    atomaren Operation umbenannt und ersetzt damit die bisherige
    Datei.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_NO\_TRUNCATE='no'}
}

\end{description}


\subsection{Pure-FTPd (timeout settings)}


\begin{description}

\config{PURE\_FTPD\_HANGUP\_TIME}
{PURE\_FTPD\_HANGUP\_TIME}
{PUREFTPDHANGUPTIME}
{
    Anzahl der Minuten, nach der eine FTP-Verbindung wegen
    Inaktivit"at getrennt wird.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_HANGUP\_TIME='15'}
}

\end{description}


\subsection{Pure-FTPd (access settings)}


\begin{description}

\config{PURE\_FTPD\_USE\_PAM}
{PURE\_FTPD\_USE\_PAM}
{PUREFTPDUSEPAM}
{

    "Uber diese Konfigurationsvariable kann festgelegt werden, ob die
    Authentifizierung "uber das sog. Pluggable Authentication Module
    (PAM) erfolgen soll.\\
    Bei PURE\_FTPD\_USE\_PAM='no' wird anstelle von PAM die Unix authentication
    (die traditionalle /etc/passwd Datei) genutzt.\\
    Siehe Abschnitt 'Nur FTP User' in der Dokumentation.

    ACHTUNG: bei PURE\_FTPD\_USE\_PAM='no' werden die "uber die Konfiguration
    von PURE\_FTPD\_ENABLE\_DENY\_USERS konfigurierten sog. Deny User nicht mehr beachtet.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_USE\_PAM='yes'}
}


\config{PURE\_FTPD\_ALLOW\_ROOT\_ACCESS}
{PURE\_FTPD\_ALLOW\_ROOT\_ACCESS}
{PUREFTPDALLOWROOTACCESS}
{
    Legt fest, ob sich root per FTP einloggen darf (yes) oder ob es
    ihm  verboten wird (no). Standardm"a"sig ist 'no' voreingestellt,
    weil ansonsten das root-Passwort unverschl"usselt "uber die
    Leitung geht.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_ALLOW\_ROOT\_ACCESS='no'}
}

\config{PURE\_FTPD\_ONLY\_USERS}
{PURE\_FTPD\_ONLY\_USERS}
{PUREFTPDONLYUSERS}
{
    Beeinflusst den Zugang als anonymer User. Verbietet den Zugang
    (yes) oder auch anonyme User d"urfen sich einloggen (no).

    Es ist erforderlich diesen Wert bei Benutzung von
    \texttt{PURE\_FTPD\_NONANONYMOUS\_IP} auf (yes) zu setzten. Damit wird
    dann ein Mischbetrieb mit angemeldeten Usern in ihren jeweiligen home
    Verzeichninssen erm"oglicht und der anonymen User in /srv/ftp.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_ONLY\_USERS='yes'}
}


\config{PURE\_FTPD\_ONLY\_ANONYMOUS}
{PURE\_FTPD\_ONLY\_ANONYMOUS}
{PUREFTPDONLYANONYMOUS}
{
    Bei Angabe von 'yes' sind ausschliesslich anonyme Zug"ange
    erlaubt auf /srv/ftp.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_ONLY\_ANONYMOUS='no'}
}


\config{PURE\_FTPD\_DONT\_CHROOT\_GROUP}
{PURE\_FTPD\_DONT\_CHROOT\_GROUP}
{PUREFTPDDONTCHROOTGROUP}
{
    Standardm"a"sig kann jeder User (au"ser root) via FTP nicht "uber
    sein  Homeverzeichnis  herauskommen.
    D.h. der FTP-User 'sieht' nur sein eigenes Homeverzeichnis
    inkl. darunter liegender Verzeichnisse und Dateien, nicht aber
    Verzeichnisse oberhalb des Homeverzeichnisses.
    Hier kann eine  Gruppe (numerische  GID) angeben werden, deren
    Mitglieder nicht auf ihre Homeverzeichnisse beschr"ankt sind.
    Wenn du nicht wei"st, was du damit anstellst, bitte leer lassen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_DONT\_CHROOT\_GROUP='{}'}
}


\config{PURE\_FTPD\_TLS}
{PURE\_FTPD\_TLS}
{PUREFTPDTLS}
{
    \begin{tabular}{lll}
    & 0  &  Unterst"utzung f"ur SSL/TLS ist ausgeschaltet. \\
    & 1  &  Verbindungen "uber den normalen Weg und "uber \\
    &    &  SSL/TLS sind m"oglich. \\
    & 2  &  Klartext Verbindungen werden nicht akzeptiert, \\
    &    &  es sind nur Verbindungen "uber SSL/TLS m"oglich. \\
    & 3  &  Klartext Verbindungen werden nicht akzeptiert, \\
    &    &  es sind nur Verbindungen "uber SSL/TLS m"oglich. \\
    &    &  Auch Klartext-Datenverbindungen werden abgelehnt. \\
    \end{tabular}

    \achtung{Wird PURE\_FTPD\_TLS auf einen Wert ungleich 0
             gesetzt, so wird das notwendige Zertifikat gepr"uft.
             Existiert kein Zertifikat oder enth"alt das Zertifikat
             keine DH PARAMETERS Sektion, so wird PURE\_FTPD\_TLS
             ignoriert.}

    G"ultige Werte: 0, 1, 2, 3

    Standardeinstellung: \texttt{PURE\_FTPD\_TLS='0'}
}


\config{PURE\_FTPD\_CERTIFICATE}
{PURE\_FTPD\_CERTIFICATE}
{PUREFTPCERTIFICATE}
{
    Name des Zertifikates, welches genutzt werden soll.
    Wird ein Zertifikat ausgew"ahlt, so wird ggf. ein
    symbolischer Link mit dem Namen pure-ftpd.pem
    erstellt, der auf das ausgew"ahlte Zertifikat zeigt.

    Das gew"ahlte Zertifikat muss eine DH PARAMETERS Sektion
    enthalten. Dies ist bei den "uber das Certs Paket erstellten
    Zertifikaten der Fall.

    G"ultige Werte: Dateiname (.pem-Datei in /etc/ssl/certs)

    Standardeinstellung: \texttt{PURE\_FTPD\_CERTIFICATE='pure-ftpd.pem'}
}


\config{PURE\_FTPD\_NONANONYMOUS\_IPADDR}
{PURE\_FTPD\_NONANONYMOUS\_IPADDR}
{PUREFTPDNONANONYMOUSIPADDR}
{
    Die Angabe einer IP-Adresse in \texttt{PURE\_FTPD\_NONANONYMOUS\_IPADDR}
    erlaubt f"ur diese IP-Adresse eines Servers mit mehreren IP-Adressen
    dass sich User mit Usernamen anmelden k"onnen. "Uber alle anderen
    IP-Adressen ist nur eine Anmeldung als User anonymous m"oglich.

    Der Wert \texttt{PURE\_FTPD\_ONLY\_USERS} muss hierbei auf (yes) gesetzt
    werden damit ein anmeldem erfolgen kann.

    \achtung{Bei der 'st' Methode muss der Parameter \texttt{PURE\_FTPD\_IPADDR}
             leer bleiben.}

    \achtung{Bei der 'xi' Methode muss der Parameter \texttt{PURE\_FTPD\_IPADDR}
             gesetzt werden.}

    Hier wird keine echte IP Adresse angegeben sondern der Index der Angabe
    \texttt{IP\_ETH\_x\_IP\_x\_IPADDR} aus der Base Konfiguration in
    \texttt{/etc/config.d/base}.

    Beispiel: \texttt{PURE\_FTPD\_NONANONYMOUS\_IPADDR='2:1'}
    zeigt auf \texttt{IP\_ETH\_2\_IP\_1\_IPADDR} in
    \texttt{/etc/config.d/base}.

    Der Wert vor dem '2:' ist der Index der Netzwerkkkarte \\
    der Wert hinter dem ':1' ist der Index der IPADDR.

    Der Index kann, wenn der Editor \glqq{}\ece\grqq{} eingestellt ist,
    auch aus dem Dialog eingef"ugt werden.

    G"ultige Werte: 1:1, 1:2, 2:1 etc.. oder leer.

    Standardeinstellung: \texttt{PURE\_FTPD\_NONANONYMOUS\_IPADDR='{}'}
}

\end{description}


\subsection{Pure-FTPd (limit settings)}


\begin{description}

\config{PURE\_FTPD\_MAX\_USER}
{PURE\_FTPD\_MAX\_USER}
{PUREFTPDMAXUSER}
{
    Maximale Anzahl der User, die gleichzeitig auf dem FTP-Server eingeloggt
    sein d"urfen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_MAX\_USER='20'}
}


\config{PURE\_FTPD\_PARTITION\_FILL\_LIMIT}
{PURE\_FTPD\_PARTITION\_FILL\_LIMIT}
{PUREFTPDPARTITIONFILLLIMIT}
{
    Erlaube keine FTP Uploads wenn die Ziel-Partition zu mehr als
    PURE\_FTPD\_PARTITION\_FILL\_LIMIT Prozent gef"ullt ist.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_PARTITION\_FILL\_LIMIT='95'}
}


\config{PURE\_FTPD\_MAXCON\_PER\_IP}
{PURE\_FTPD\_MAXCON\_PER\_IP}
{PUREFTPDMAXCONPERIP}
{
    Maximale zul"assige Anzahl von FTP-Verbindungen pro IP-Adresse.
    Diese Option ist nur bei \texttt{PURE\_FTPD\_START\_METHOD='st'} m"oglich.
    Jeder weitere Versuch einer FTP-Verbindung "uber die in
    \texttt{PURE\_FTPD\_MAXCON\_PER\_IP} angegebene Zahl herzustellen wird abgelehnt.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_MAXCON\_PER\_IP='{}'}
}


\config{PURE\_FTPD\_MAX\_CPU\_LOAD}
{PURE\_FTPD\_MAX\_CPU\_LOAD}
{PUREFTPDMAXCPULOAD}
{
    Ist die CPU Auslastung h"oher als der hier angegeben Wert,
    so wird der Download von Dateien f"ur anonyme Zug"ange
    verboten.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_MAX\_CPU\_LOAD='{}'}
}


\config{PURE\_FTPD\_MAX\_LOGINS}
{PURE\_FTPD\_MAX\_LOGINS}
{PUREFTPDMAXLOGINS}
{
    Format \textless max user logins\textgreater:\textless max
    anonymous logins\textgreater.
    Maximale Anzahl von normalen Benutzern bzw. anonymen
    Benutzern, die mit dem FTP-Server verbunden sein d"urfen.
    Weitere Verbindungsw"unsche werden abgelehnt.
    Der Wert 0 bedeutet unlimitierte Anzahl von Logins.

    G"ultige Werte: Zahl:Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_MAX\_LOGINS='{}'}
}

\end{description}


\subsection{Pure-FTPd (quota/bandwidth/ratio settings)}


\begin{description}

\config{PURE\_FTPD\_FILE\_QUOTA}
{PURE\_FTPD\_FILE\_QUOTA}
{PUREFTPDFILEQUOTA}
{
    Format \textless max Dateien\textgreater:\textless max
    Gr"osse\textgreater.
    Beschr"ankung der Anzahl der Dateien bzw. der Summe der
    Dateigr"osse, die ein Benutzer auf dem FTP-Server ablegen
    darf. Die Angabe max Gr"osse ist in Megabytes.
    Diese Beschr"ankung ist nur wirksam f"ur Aktionen, die
    "uber den FTP-Server durchgef"uhrt werden (virtual Quota).
    Die Beschr"ankung gilt nicht f"ur Benutzer, die speziellen
    Gruppen (siehe \texttt{PURE\_FTPD\_DONT\_CHROOT\_GROUP)} angeh"oren.
    Diese Option ben"otigt .ftpquota-Dateien im jeweiligen
    Home-Verzeichnis des Users.
    Siehe Kommando pure-quotacheck und Beispielskript
    \texttt{/usr/share/doc/pure-ftp/examples/create\_dot\_ftpquota.sh}.

    G"ultige Werte: Zahl:Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_FILE\_QUOTA='{}'}
}


\config{PURE\_FTPD\_USER\_BANDWIDTH}
{PURE\_FTPD\_USER\_BANDWIDTH}
{PUREFTPDUSERBANDWIDTH}
{
    Format [\textless upload\textgreater]:[\textless download\textgreater].
    Beschr"ankung der zul"assigen Bandbreite bei normalen Unix Usern, dem
    User anonymous und virtuelle User (wenn f"ur diese nicht
    manuell "uber pure-pw usermod spezielle Einstellungen gemacht
    werden).
    Angabe in Kilobyte pro Sekunde.

    Beispiele:\\
    256:64 256 KB/s f"ur Uploads, 64 KB/s f"ur Downloads\\
    256:~~ 256 KB/s f"ur Uploads, keine Grenze f"ur Downloads\\
    :64~~~ keine Grenze  f"ur Uploads, 64 KB/s f"ur Downloads

    G"ultige Werte: Zahl:Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_USER\_BANDWIDTH='{}'}
}


\config{PURE\_FTPD\_ANONYMOUS\_BANDWIDTH}
{PURE\_FTPD\_ANONYMOUS\_BANDWIDTH}
{PUREFTPDANONYMOUSBANDWIDTH}
{
    Wie \texttt{PURE\_FTPD\_USER\_BANDWIDTH}, aber nur f"ur den User anonymous.

    G"ultige Werte: Zahl:Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_ANONYMOUS\_BANDWIDTH='{}'}
}

\end{description}


\achtung{Es darf nur PURE\_FTPD\_USER\_BANDWIDTH oder \\
         PURE\_FTPD\_ANONYMOUS\_BANDWIDTH gesetzt werden.}


\begin{description}

\config{PURE\_FTPD\_ANONYMOUS\_RATIO}
{PURE\_FTPD\_ANONYMOUS\_RATIO}
{PUREFTPDANONYMOUSRATIO}
{
    Angabe einer sogenannten Ratios f"ur anonyme Zug"ange.
    Format \textless upload ratio\textgreater \textless download
    ratio\textgreater. \\
    Die Werte werden durch ein Leerzeichen getrennt. \\
    Angabe jeweils in MByte.
    Eine Angabe von 2 5 bedeutet, dass ein Benutzer zun"achst
    2 MByte Daten auf den Server ablegen muss, um dann bis
    zu 5 MByte herunterladen zu d"urfen.

    G"ultige Werte: Zahl Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_ANONYMOUS\_RATIO='{}'}
}


\config{PURE\_FTPD\_ALL\_USER\_RATIO}
{PURE\_FTPD\_ALL\_USER\_RATIO}
{PUREFTPDALLUSERRATIO}
{
    Ratio f"ur normale und anonyme Zug"ange.
    Siehe \texttt{PURE\_FTPD\_ANONYMOUS\_RATIO}.

    G"ultige Werte: Zahl Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_ALL\_USER\_RATIO='{}'}
}

\end{description}


\subsection{Pure-FTPd (log settings)}


\begin{description}

\config{PURE\_FTPD\_LOG}
{PURE\_FTPD\_LOG}
{PUREFTPDLOG}
{
    Legt fest, ob ein Protokoll der Up- und Downloads in einem
    speziellen Format (siehe \texttt{PURE\_FTPD\_LOG\_FORMAT}) erfolgen soll.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_LOG='no'}
}


\config{PURE\_FTPD\_LOG\_FORMAT}
{PURE\_FTPD\_LOG\_FORMAT}
{PUREFTPDLOGFORMAT}
{
    Format des Protokolls der Up- und Downloads.

    G"ultige Werte: CLF, Stats, W3C, Xferlog

    Standardeinstellung: \texttt{PURE\_FTPD\_LOG\_FORMAT='CLF'}
}


\config{PURE\_FTPD\_LOG\_PATH}
{PURE\_FTPD\_LOG\_PATH}
{PUREFTPDLOGPATH}
{
    Pfad f"ur die Protokolldatei

    G"ultige Werte: Absoluter Pfad

    Standardeinstellung: \texttt{PURE\_FTPD\_LOG\_PATH='/var/log/pure-ftpd.log'}
}


\config{PURE\_FTPD\_LOG\_PID}
{PURE\_FTPD\_LOG\_PID}
{PUREFTPDLOGPID}
{
    Bei Angabe von 'yes' wird die PID im Log protokolliert.\\
    Beispiel: 'pure-ftpd[5396]:' statt 'pure-ftpd:'.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_LOG\_PID='no'}
}


\config{PURE\_FTPD\_SYSLOG\_FACILITY}
{PURE\_FTPD\_SYSLOG\_FACILITY}
{PUREFTPDSYSLOGFACILITY}
{
    Die angegebene Facility wird f"ur das Logging benutzt.

    G"ultige Werte: none,auth,authpriv,cron,daemon,ftp,kern,lpr,mail,mark,\\
                    news,security,syslog,user,uucp,local0,local1,local2,\\
                    local3,local4,local5,local6,local7 oder leer

    leer bedeutet ftp \\
    none bedeutet Logging ausschalten. Dies betrifft aber nur das Logging
    von ftp.* Meldungen, nicht die von authpriv.* erzeugten Meldungen.

    Standardeinstellung: \texttt{PURE\_FTPD\_SYSLOG\_FACILITY='{}'}
}


\config{PURE\_FTPD\_DONT\_RESOLVE}
{PURE\_FTPD\_DONT\_RESOLVE}
{PUREFTPDONTRESOLVE}
{
    Bei Angabe von 'yes' werden IP-Adressen nicht in Hostnamen
    umgesetzt, es werden also die IP-Adressen protokolliert.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_DONT\_RESOLVE='no'}
}

\end{description}


\subsection{Pure-FTPd (upload settings)}


\begin{description}

\config{PURE\_FTPD\_UPLOADSCRIPT\_ARGS}
{PURE\_FTPD\_UPLOADSCRIPT\_ARGS}
{PUREFTPDUPLOADSCRIPTARGS}
{
    "Uber das Programm pure-uploadscript kann nach jedem Upload
    einer Datei ein Programm/Shell-Skript (z.B. ein Virenscanner)
    gestartet werden.
    Bei \texttt{PURE\_FTPD\_UPLOADSCRIPT\_ARGS} sind die Argumente f"ur
    den Aufruf von pure-uploadscript, z.B. '-r /tmp/scanner.sh' anzugeben.
    Hinter -r ist der Name des Programms/Shell-Skript anzugeben.
    Unter \texttt{/usr/share/doc/pure-ftp/examples} findet sich als scanner.sh
    ein unvollst"andiges Beispielskript.

    Dokumentation siehe:\
    \link{http://linux.die.net/man/8/pure-uploadscript} {pure-uploadscript}

    Standardeinstellung: \texttt{PURE\_FTPD\_UPLOADSCRIPT\_ARGS='{}'}
}

\end{description}


\subsection{Pure-FTPd (virtual server settings)}

    Virtuelle Server sind sinnvoll, wenn ein Server mehrere
    IP-Adressen hat. "Uber virtuelle Server kann eine Trennung
    des Verzeichnisses f"ur den User anonymous erreicht werden.
    Ohne diese Konfiguration nutzen alle User anonymous auf
    allen IP-Adressen das Verzeichnis /srv/ftp.


\begin{description}

\config{PURE\_FTPD\_ENABLE\_VIRTUAL\_SERVER}
{PURE\_FTPD\_ENABLE\_VIRTUAL\_SERVER}
{PUREFTPDENABLEVIRTUALSERVER}
{
    Virtuelle Server werden konfiguriert, wenn
    \texttt{PURE\_FTPD\_ENABLE\_VIRTUAL\_SERVER='yes'} gesetzt wird.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_ENABLE\_VIRTUAL\_SERVER='no'}
}


\config{PURE\_FTPD\_VIRTUAL\_SERVER\_N}
{PURE\_FTPD\_VIRTUAL\_SERVER\_N}
{PUREFTPDVIRTUALSERVERN}
{
    Anzahl der zu konfigurierenden virtuellen Server.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUAL\_SERVER\_N='2'}
}


\config{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_NAME}
{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_NAME}
{PUREFTPDVIRTUALSERVERxNAME}
{
    Name des virtuellen Servers.

    G"ultige Werte: Text

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_NAME='{}'}
}


\config{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_ACTIVE}
{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_ACTIVE}
{PUREFTPDVIRTUALSERVERxACTIVE}
{
    Virtuellen Server aktivieren 'yes' oder 'no'

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_ACTIVE='no'}
}


\config{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_IPADDR}
{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_IPADDR}
{PUREFTPDVIRTUALSERVERxIPADDR}
{
    IP-Adresse des virtuellen Servers.\\
    Hier wird keine echte IP Adresse angegeben
    sondern der Index der Angabe \texttt{IP\_ETH\_x\_IP\_x\_IPADDR} aus der
    Base  Konfiguration in \texttt{/etc/config.d/base}.

    Beispiel: \texttt{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_IPADDR='2:1'}
    zeigt auf \texttt{IP\_ETH\_2\_IP\_1\_IPADDR} in
    \texttt{/etc/config.d/base}.

    Der Wert vor dem '2:' ist der Index der Netzwerkkkarte \\
    der Wert hinter dem ':1' ist der Index der IPADDR.

    Der Index kann, wenn der Editor \glqq{}\ece\grqq{} eingestellt ist,
    auch aus dem Dialog eingef"ugt werden.

    G"ultige Werte: 1:1, 1:2, 2:1 etc.. oder leer.

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_IPADDR='2:1'}
}

\config{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_DIR}
{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_DIR}
{PUREFTPDVIRTUALSERVERxDIR}
{
    Verzeichnis f"ur den User anonymous bei Nutzung
    der IP-Adresse des virtuellen Servers.

    G"ultige Werte: Verzeichnis

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUAL\_SERVER\_x\_DIR='/ftpdata/extern'}
}

\end{description}



\subsection{Pure-FTPd (deny users)}

   Deny user sind schon l"anger Bestandteil der Funktionalit"at des Pure-FTPd.
   Bisher mussten diese User h"andisch in der Datei /etc/ftpusers konfiguriert
   werden.

   "Uber die deny users kann normalen Unix Users verboten werden sich
   via FTP am Server anzumelden. D.h. ein User kann sich zwar per SSH oder
   direkt am Server anmelden, eine FTP Session zum Server unter Nutzung
   des entsprechenden Usernamens kann aber nicht aufgebaut werden.

   Existiert noch keine Konfiguration der deny user in der Konfigurationsdatei
   des Pure-FTPd, so wird eine ggf. vorhandene Datei /etc/ftpusers gelesen
   und die entsprechenden Variablen belegt.


\begin{description}

\config{PURE\_FTPD\_ENABLE\_DENY\_USERS}
{PURE\_FTPD\_ENABLE\_DENY\_USERS}
{PUREFTPDENABLEDENYUSERS}
{
    Eine Angabe 'yes' sorgt daf"ur, dass die Funktionalit"at genutzt wird
    und dass die Datei /etc/ftpusers mit den Usernamen gef"ullt wird.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_ENABLE\_DENY\_USERS='yes'}
}


\config{PURE\_FTPD\_DENY\_USERS\_N}
{PURE\_FTPD\_DENY\_USERS\_N}
{PUREFTPDDENYUSERSN}
{
    Anzahl der zu konfigurierenden deny User.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_DENY\_USERS\_N='1'}
}


\config{PURE\_FTPD\_DENY\_USERS\_x\_USERNAME}
{PURE\_FTPD\_DENY\_USERS\_x\_USERNAME}
{PUREFTPDDENYUSERSxUSERNAME}
{
    Username des deny Users.

    G"ultige Werte: Username

    Standardeinstellung: \texttt{PURE\_FTPD\_DENY\_USERS\_x\_USERNAME='bill'}
}

\end{description}



\subsection{Pure-FTPd (additional settings)}

    Zus"atzliche Argumente beim Start des Pure-FTPd.
    Hier sollten nur erfahrene Anwender Angaben machen.

    Zus"atzliche Argumente werden in der Form

    \begin{verbatim}
    # Schlüssel         Wert
    \end{verbatim}

    in der Datei '/etc/pure-ftpd/pure-ftpd-extra.conf' eingetragen, wenn sie
    nicht vorhanden ist, muss sie angelegt werden. Diese Datei ist dann
    updatefest.

    Einer der h"aufigsten Anwendungsf"alle in diesem Fall ist wohl
    eine Angabe der Verzeichnistiefe, also z.B. 5000 10. Der Pure-FTPd
    listet standardm"a"sig nur 2000 Dateien mit einer Verzeichnistiefe von 5.

    \begin{verbatim}
    LimitRecursion           5000 10
    \end{verbatim}


\section{Die virtual User Konfigurationsdatei}


    Die Konfigurationsdatei \texttt{(/etc/config.d/pure-ftpd-vuser)}
    enth"alt die Konfiguration der virtuellen User.


\subsection{Pure-FTPd (virtual Users)}


\begin{description}

\config{PURE\_FTPD\_ENABLE\_VIRTUAL\_USERS}
{PURE\_FTPD\_ENABLE\_VIRTUAL\_USERS}
{PUREFTPDENABLEVIRTUALUSERS}
{
    Unterst"utzung  f"ur die virtuellen FTP-User einschalten (yes) oder
    abschalten (no).

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_ENABLE\_VIRTUAL\_USERS='no'}
}


\config{PURE\_FTPD\_VIRTUAL\_USERS\_DELETE}
{PURE\_FTPD\_VIRTUAL\_USERS\_DELETE}
{PUREFTPDVIRTUALUSERSDELETE}
{
    Diese Variable legt fest, ob virtuelle FTP-User die nicht
    mehr in einer \texttt{PURE\_FTPD\_VIRTUAL\_USERS\_x\_USERNAME} Variablen
    definiert sind gel"oscht werden oder, wie in den "alteren Versionen des
    Pure-FTPd-Paketes, bestehen bleiben.

    Wird \texttt{PURE\_FTPD\_VIRTUAL\_USERS\_DELETE='yes'} gesetzt, so sind nach
    Aktivierung der Konfiguration nur die aktuellen virtuellen
    FTP-User verf"ugbar. Alle anderen werden gel"oscht, wobei
    allerdings die Homeverzeichnisse bestehen bleiben.\\

    \achtung{Wird die Variable auf dem Standardwert 'no' belassen,
             so kann es zu folgendem Effekt kommen. Ein virtueller
             FTP-User ist nicht mehr in der Konfigurationsdatei durch
             eine PURE\_FTPD\_VIRTUAL\_USERS\_x\_USERNAME Variablen
             beschrieben, er ist aber in den internen Konfigurationsdateien des
             Pure-FTPd Servers weiterhin vorhanden und kann sich auch
             weiterhin anmelden.}


    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUAL\_USERS\_DELETE='no'}
}


\config{PURE\_FTPD\_VIRTUAL\_USERS\_N}
{PURE\_FTPD\_VIRTUAL\_USERS\_N}
{PUREFTPDVIRTUALUSERSN}
{
    Anzahl der definierten virtuellen User.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUAL\_USERS\_N='1'}
}


\config{PURE\_FTPD\_VIRTUAL\_USERS\_x\_USERNAME}
{PURE\_FTPD\_VIRTUAL\_USERS\_x\_USERNAME}
{PUREFTPDVIRTUALUSERSxUSERNAME}
{
    Definiert f"ur den virtuellen User~x den Benutzernamen.

    G"ultige Werte: Username

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUAL\_USERS\_x\_USERNAME='testuser'}
}


\config{PURE\_FTPD\_VIRTUAL\_USERS\_x\_ACTIVE}
{PURE\_FTPD\_VIRTUAL\_USERS\_x\_ACTIVE}
{PUREFTPDVIRTUALUSERSxACTIVE}
{
    Virtuellen User aktivieren 'yes' oder 'no'

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUAL\_USERS\_x\_ACTIVE='no'}
}


\config{PURE\_FTPD\_VIRTUAL\_USERS\_x\_HOME}
{PURE\_FTPD\_VIRTUAL\_USERS\_x\_HOME}
{PUREFTPDVIRTUALUSERSxHOME}
{
    Definiert  das  Homeverzeichnis  f"ur den virtuellen User~x.

    G"ultige Werte: absoluter Verzeichnisname

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUAL\_USERS\_x\_HOME='/srv/vftp/testuser'}
}


\config{PURE\_FTPD\_VIRTUAL\_USERS\_x\_PASSWD}
{PURE\_FTPD\_VIRTUAL\_USERS\_x\_PASSWD}
{PUREFTPDVIRTUALUSERSxPASSWD}
{
    Definiert das Passwort f"ur den virtuellen User~x.
    Wird ein Passwort leer gelassen (also ''), so wird beim
    Anlegen des Users nach dem Passwort gefragt. Wird ein Passwort
    angegeben, so bekommt der User dieses Passwort. Um die Sicherheit
    des Users nicht zu gef"ahrden, wird das Passwort nach der
    Anlage des Users hier in der Konfiguration auf '******' umgesetzt.

    Standardeinstellung: \texttt{PURE\_FTPD\_VIRTUAL\_USERS\_x\_PASSWD='{}'}
}

\end{description}


\section{FTP: Virtuelle User}

    Virtuelle User sind nur auf den Pure-FTPd beschr"ankt, der Login
    und das Passwort gelten nur f"ur FTP, nicht f"ur SSH oder andere
    Dienste.

    Virtuelle User sind dann sehr n"utzlich, wenn bestimmte User nur
    FTP-Zugriff haben sollen und keine anderen Rechte haben sollen.
    In Verbindung mit dem Apache Webserver lassen sich damit z.B.
    einfach sehr grosse Mengen von virtuellen Hosts aufsetzen, denen
    jeweils ein virtueller FTP-User zugeordnet ist.
    Damit bleibt die "Ubersicht im System trotz der grossen Menge an
    FTP-Usern "ubersichtlich.

    Die Homeverzeichnisse (Standardverzeichnisse) der virtuellen User
    liegen standardm"a"sig unter /srv/vftp/. Wichtig: die Verzeichnisse
    der einzelnen virtuellen User werden, wenn sie nicht bereits existieren,
    erst beim ersten Login als virtueller User eingerichtet.


\section{Nur FTP User}

    Normale Unix User können so konfiguriert werden, dass sie ausschließlich
    FTP-Zugriff haben und nicht die Shell Ebene benutzen können.

    Dazu muss der Eintrag des entsprechenden Users in der Datei /etc/passwd
    modifiziert werden. Beispiel:

    Die Zeile:\\
    ~~~onlyftp:x:2011:100:Only FTP:/home/onlyftp:/bin/bash\\
    wird in\\
    ~~~onlyftp:x:2011:100:Only FTP:/home/onlyftp:ftp\\
    geändert.\\

    Der Unix-User onlyftp hat jetzt keine gültige Shell mehr.
    Normalerweise weist der Pure-FTPd solche User auch beim Versuch
    eines FTP-Zugriffs ab, da die PAM Konfiguration eine gültige
    Shell voraussetzt.

    Wird nun über\\
    ~~PURE\_FTPD\_USE\_PAM='no'\\
    die Authentifizierung über das sog. Pluggable Authentication Module
    interface (PAM) ausgeschaltet, so nutzt der Pure-FTPd die Datei
    /etc/passwd direkt. Der Pure-FTPd erkennt den Eintrag ftp als Shell
    an und ermöglicht den FTP-Zugriff.

    ACHTUNG:\\
    bei PURE\_FTPD\_USE\_PAM='no' werden die "uber die Konfiguration von\\
    PURE\_FTPD\_ENABLE\_DENY\_USERS konfigurierten sog. Deny User
    nicht mehr beachtet. Die Datei /etc/ftpusers, diese wird aus den Angaben
    den erstellt wird, wird "uber die PAM Konfiguration ausgewertet.\\
    Siehe /usr/lib/pam.d/pure-ftpd Zeile\\
    auth required pam\_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed\\
    Da bei \\
    ~~PURE\_FTPD\_USE\_PAM='no'\\
    PAM nicht mehr genutzt wird, wird daher auch diese Datei / Zeile
    nicht mehr genutzt.


\section{Informationen zu Verzeichnissen}

    Eine Reihe von Verzeichnissen spielen beim Paket pure-ftpd
    wichtige Rollen.

    a.) normale Unix User

    Meldet man sich beim pure-ftpd Server als normaler Unix User
    an, so hat man zun"achst Zugriff auf das Home-Verzeichnis des
    Unix-Users.

    Nur User mit der Group-ID 0, also z.B. der User root hat
    das Recht sein Home-Verzeichnis nach ''unten'' also in Richtung
    des sog. Wurzelverzeichnisses / zu verlassen.

    "Uber die Angabe in PURE\_FTPD\_DONT\_CHROOT\_GROUP kann einer
    Gruppe ("uber die Group-ID) und damit allen Gruppenmitgliedern
    die Erlaubnis gegeben werden ebenfalls das Home-Verzeichnis
    nach 'unten' zu verlassen.
    Wird hier die Gruppe users ("uber deren Group-ID) angegeben,
    so ist die Sicherheit des Servers u.U. stark gef"ahrdet.

    Es gibt spezielle, sehr besondere und komplexe Konfigurationen:
    Siehe dazu
    https://download.pureftpd.org/pub/pure-ftpd/doc/README
    unter dem Stichpunkt chroot.

    b.) virtuelle User

    Virtuelle User haben Home-Verzeichnisse im Verzeichnis
    /srv/vftp. Der Name des Home-Verzeichnisses sollte dem
    Usernamen entsprechen, kann aber innerhalb des Verzeichnisses
    /srv/vftp frei gew"ahlt werden.

    Obwohl der gesamte Verzeichnisbaum, also auch /srv/vftp w"ahlbar
    ist sollten nur erfahrene Administratoren den Basis-Pfad /srv/vftp
    "andern.

    c.) anonymous User

    Hier h"angt das genutzte Verzeichnis davon ab, ob virtuelle Server
    definiert sind.

    Ist kein virtueller Server definiert, so sieht der anonymous User
    nach dem Anmelden das Verzeichnis /srv/ftp.

    Sind virtuelle Server definiert, so ist das Verzeichnis abh"angig
    von der genutzten IP-Adresse (PURE\_FTPD\_VIRTUAL\_SERVER\_x\_IPADDR)
    und dem dazu geh"origen Verzeichnis (PURE\_FTPD\_VIRTUAL\_SERVER\_x\_DIR).

