05.
April
2008
Es gibt auf x-fish.org bereits eine Anleitung für pure-ftpd als FTP-Server unter Linux. Die Anleitung welche schon einige Jahre alt ist, ist noch immer recht aktuell. Allerdings haben unterschiedliche Distributionen inzwischen andere Varianten zur Konfiguration gefunden.
Das von mir derzeit verwendete Ubuntu 7.10 nutzt keinen von Hand geschriebenen Eintrag als Aufruf, sondern stellt sich diesen anhand eines Konfigurationsverzeichnisses zusammen.
Da Ubuntu standardmäßig ohne FTP-Server installiert wird, beginne ich meine Anleitung für die Virtuellen Benutzer mit pure-ftpd unter Ubuntu (7.10) mit dem Aufruf für die Installation des entsprechenden Pakets:
sudo apt-get install pure-ftpd
Mit der Installation des Pakets wird automatisch das Konfigurationsverzeichnis für den FTP-Server mit angelegt. Unter /etc/pure-ftpd/
sind die Konfigurationsdateien und -verzeichnisse zu finden.
Standardmäßig ist der Zugriff für anonyme Benutzer gesperrt, virtuelle Benutzer sind keine eingerichtet. Damit diese genutzt werden können ist zunächst folgendes einzurichten bzw. zu kontrollieren:
In /etc/pure-ftpd/conf
muss in der Datei /etc/pure-ftpd/conf/PureDB
der Pfad zur Datenbank für die virtuellen Benutzer eingetragen sein. Dies war bei mir mit dem Eintrag /etc/pure-ftpd/pureftpd.pdb
bereits korrekt vorgenommen.
Da kein Zugriff für Systembenutzer aktiviert sein soll, habe ich in der Datei /etc/pure-ftpd/conf/PAMAuthentication
dein Eintrag auf no
geändert.
Damit die Passage für die virtuellen Nutzer auch mit im Startaufruf steht muss noch ein Symlink gesetzt werden. Im Verzeichnis /etc/pure-ftpd/auth
muss folgender Aufruf eingegeben werden:
sudo ln -s ../conf/PureDB 50pure
Der Server ist so für die Benutzung von virtuellen Usern zugelassen, real auf dem System angelegte User können sich nicht mehr einloggen. Damit diese Änderungen übernommen werden, muss der Server neu gestartet werden. Unter Ubuntu ist dies mit dem Aufruf pure-ftpd-control
möglich:
pure-ftpd-control
Usage: /etc/init.d/pure-ftpd {start|stop|restart|force-reload}
Damit der Server neu gestartet wird und die Änderungen an der Konfiguration zum Tragen kommen, muss der Aufruf wie folgt aussehen und folgende Antwort liefern:
sudo pure-ftpd-control start
Starting ftp server: Running: /usr/sbin/pure-ftpd -l
puredb:/etc/pure-ftpd/pureftpd.pdb -u 1000 -E -O
clf:/var/log/pure-ftpd/transfer.log -B
Der Server läuft nun wieder, System-User können sich nicht mehr einloggen und der korrekte Pfad zur Datenbank für virtuelle Benutzer ist auch vorhanden. Die Ausgabe nach dem Aufruf gibt die Befehlszeile wider, mit welcher der Server aufgerufen wurde. Die Angaben können gemäß meiner Anleitung bzw. der übersetzten Tabelle überprüft werden: Pure-FTPd: Die Schalter.
Nun können die virtuellen Benutzer konfiguriert werden. Ich verweise an dieser Stelle auf meine Anleitung welche hier zu finden ist: Pure-FTPd: Virtuelle User.
Eigentlich wäre die Anleitung mit den beiden Links auf die bereits vorhandene Anleitung schon komplett. Jedoch hatte ich nun aufgrund meiner Multi-OS-PC-Konfiguration wieder einen besonderen Fall, welchen ich hier auch noch schnell erklären werde.
Ich habe eine NTFS-Partition auf meiner Festplatte, auf welche ich per FTP lesenden Zugriff gewähren will.
Gemountet wird die Partition automatisch durch den Eintrag in der Datei /etc/fstab
. Die Standard-umask ist 007
, nur Besitzer und Gruppe haben vollen Zugriff auf die Dateien, other
gar keinen. Damit ein Lesezugriff möglich wird, ist der Eintrag in der /etc/fstab
entsprechend zu verändern und die Angabe für umask
auf 2
zu setzen:
/dev/sda7 /media/sda7 ntfs defaults,umask=002,gid=46 0
Die Angabe von umask=002
sorgt dafür, dass nun die Bits für rx
gesetzt werden:
cd /media/
ls -la sda7
drwxrwxr-x 1 root plugdev 4096 2008-04-04 16:57 sda7
Somit kann nun der angelegte virtuelle FTP-User auf die Daten lesend (und ausführend) zugreifen. Natürlich kann man auch beim Anlegen des virtuellen Benutzers einen neuen Benutzer so anlegen, dass er vollen Zugriff hat. In diesem Fall muss der verwendete Benutzer entweder der Gruppe plugdev
angehören oder der Aufruf in der /etc/fstable
wird mit einem anderen Benutzer als root
ausgeführt.
X_FISH