Hosting · 4 min read · Jan 07, 2026

Virtuelles Hosting Mit PureFTPd Und MySQL (Incl. Quota Und Bandbreitenmanagement) Auf Mandriva 2008 Spring - Seite 2

6 Datenbank Befüllen Und Testen

Um die Datenbank zu befüllen, können Sie die MySQL-Shell verwenden:

mysql -u root -p
USE pureftpd;

Jetzt erstellen wir den Benutzer exampleuser mit dem Status 1 (was bedeutet, dass sein FTP-Konto aktiv ist), dem Passwort secret (das verschlüsselt mit der MD5-Funktion von MySQL gespeichert wird), der UID und GID 2001 (verwenden Sie die Benutzer-ID und Gruppen-ID des Benutzers/der Gruppe, die Sie am Ende von Schritt zwei erstellt haben!), dem Home-Verzeichnis /home/www.example.com, einer Upload- und Download-Bandbreite von 100 KB/sec. (Kilobyte pro Sekunde) und einem Kontingent von 50 MB:

INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('exampleuser', '1', MD5('secret'), '2001', '2001', '/home/www.example.com', '100', '100', '', '*', '50', '0');
quit;

Öffnen Sie nun Ihr FTP-Client-Programm auf Ihrem Arbeitsplatz (etwas wie WS_FTP, SmartFTP oder FileZilla, wenn Sie ein Windows-System verwenden, oder gFTP oder FileZilla auf einem Linux-Desktop) und versuchen Sie, sich zu verbinden. Als Hostname verwenden Sie server1.example.com (oder die IP-Adresse des Systems), der Benutzername ist exampleuser und das Passwort ist secret.

Wenn Sie sich verbinden können - herzlichen Glückwunsch! Wenn nicht, ist etwas schiefgelaufen.

Wenn Sie jetzt

ls -l /home

ausführen, sollten Sie sehen, dass das Verzeichnis /home/www.example.com (das Home-Verzeichnis von exampleuser) automatisch erstellt wurde und es gehört ftpuser und ftpgroup (dem Benutzer/der Gruppe, die wir am Ende von Schritt zwei erstellt haben):

[root@server1 ~]# ls -l /home  
total 8  
drwxr-xr-x 3 administrator administrator 4096 2008-04-09 14:58 administrator/  
drwxr-xr-x 2 ftpuser       ftpgroup      4096 2008-04-11 14:40 www.example.com/  
[root@server1 ~]#

7 Datenbankverwaltung

Für die meisten Menschen ist es einfacher, wenn sie ein grafisches Front-End zu MySQL haben; daher können Sie auch phpMyAdmin (in diesem Beispiel unter http://server1.example.com/phpmyadmin/) verwenden, um die pureftpd-Datenbank zu verwalten.

Wann immer Sie einen neuen Benutzer erstellen möchten, müssen Sie einen Eintrag in der Tabelle ftpd erstellen, daher werde ich die Spalten dieser Tabelle hier erklären:

ftpd Tabelle:

  • User: Der Name des virtuellen PureFTPd-Benutzers (z.B. exampleuser).
  • status: 0 oder 1. 0 bedeutet, dass das Konto deaktiviert ist, der Benutzer kann sich nicht anmelden.
  • Password: Das Passwort des virtuellen Benutzers. Stellen Sie sicher, dass Sie die MD5-Funktion von MySQL verwenden, um das Passwort als MD5-String verschlüsselt zu speichern:
  • UID: Die Benutzer-ID des FTP-Benutzers, den Sie am Ende von Schritt zwei erstellt haben (z.B. 2001).
  • GID: Die Gruppen-ID der FTP-Gruppe, die Sie am Ende von Schritt zwei erstellt haben (z.B. 2001).
  • Dir: Das Home-Verzeichnis des virtuellen PureFTPd-Benutzers (z.B. /home/www.example.com). Wenn es nicht existiert, wird es erstellt, wenn der neue Benutzer sich das erste Mal über FTP anmeldet. Der virtuelle Benutzer wird in dieses Home-Verzeichnis eingesperrt, d.h. er kann nicht auf andere Verzeichnisse außerhalb seines Home-Verzeichnisses zugreifen.
  • ULBandwidth: Upload-Bandbreite des virtuellen Benutzers in KB/sec. (Kilobyte pro Sekunde). 0 bedeutet unbegrenzt.
  • DLBandwidth: Download-Bandbreite des virtuellen Benutzers in KB/sec. (Kilobyte pro Sekunde). 0 bedeutet unbegrenzt.
  • comment: Hier können Sie einen beliebigen Kommentar eingeben (z.B. für Ihre interne Verwaltung). Normalerweise lassen Sie dieses Feld leer.
  • ipaccess: Geben Sie hier IP-Adressen ein, die sich mit diesem FTP-Konto verbinden dürfen. * bedeutet, dass jede IP-Adresse sich verbinden darf.
  • QuotaSize: Speicherplatz in MB (nicht KB, wie in ULBandwidth und DLBandwidth!), den der virtuelle Benutzer auf dem FTP-Server verwenden darf. 0 bedeutet unbegrenzt.
  • QuotaFiles: Anzahl der Dateien, die der virtuelle Benutzer auf dem FTP-Server speichern darf. 0 bedeutet unbegrenzt.

8 Anonymer FTP

Wenn Sie ein anonymes FTP-Konto erstellen möchten (ein FTP-Konto, auf das sich jeder ohne Passwort anmelden kann), benötigen Sie einen Benutzer und eine Gruppe namens ftp. Beide wurden automatisch erstellt, als Sie das pure-ftpd-Paket installiert haben, sodass Sie sie nicht manuell erstellen müssen. Das Home-Verzeichnis von ftp ist standardmäßig /var/ftp, aber ich möchte das anonyme FTP-Verzeichnis in /home/ftp erstellen (die normalen Benutzer-FTP-Verzeichnisse befinden sich ebenfalls in /home, z.B. /home/www.example.com). Aber natürlich können Sie das Verzeichnis /var/ftp für anonymes FTP verwenden, wenn Sie es bevorzugen.

Wenn Sie /home/ftp verwenden möchten, öffnen Sie /etc/passwd und ändern Sie das Home-Verzeichnis des FTP-Benutzers von /var/ftp auf /home/ftp (tun Sie dies nicht, wenn Sie /var/ftp verwenden möchten):

vi /etc/passwd

| [...] #ftp:x:80:423:system user for pure-ftpd:/var/ftp:/bin/false ftp:x:80:423:system user for pure-ftpd:/home/ftp:/bin/false [...] |

Dann verschieben Sie /var/ftp nach /home (tun Sie dies nicht, wenn Sie /var/ftp verwenden möchten):

mv /var/ftp /home

Wir verwenden die Verzeichnisse /home/ftp/incoming (die es anonymen Benutzern ermöglichen, Dateien hochzuladen) und /home/ftp/pub (von wo aus anonyme Benutzer herunterladen können). Beide Verzeichnisse existieren bereits. Wir werden dem Verzeichnis /home/ftp/incoming Berechtigungen von 311 geben, sodass Benutzer hochladen können, aber keine Dateien in diesem Verzeichnis sehen oder herunterladen können. Das Verzeichnis /home/ftp/pub wird Berechtigungen von 555 haben, die das Sehen und Herunterladen von Dateien erlauben:

chown -R ftp:nogroup /home/ftp  
cd /home/ftp  
chmod 311 incoming/  
chmod 555 pub/  
cd ../  
chmod 555 ftp/

(Wenn Sie stattdessen /var/ftp verwenden möchten, ersetzen Sie /home/ftp durch /var/ftp in den obigen Befehlen.)

Anonyme Benutzer können sich anmelden und dürfen Dateien von /home/ftp/pub herunterladen, aber Uploads sind auf /home/ftp/incoming beschränkt (und sobald eine Datei in /home/ftp/incoming hochgeladen wurde, kann sie von dort nicht gelesen oder heruntergeladen werden; der Serveradministrator muss sie zuerst nach /home/ftp/pub verschieben, um sie anderen verfügbar zu machen).

Jetzt müssen wir PureFTPd für anonymes FTP konfigurieren. Öffnen Sie /etc/pure-ftpd/pure-ftpd.conf und stellen Sie sicher, dass Sie die folgenden Einstellungen darin haben:

vi /etc/pure-ftpd/pure-ftpd.conf

| [...] NoAnonymous no [...] AntiWarez no [...] AnonymousBandwidth 8 [...] AnonymousCantUpload no [...] |

(Die Einstellung AnonymousBandwidth ist optional - sie ermöglicht es Ihnen, Upload- und Download-Bandbreiten für anonyme Benutzer zu begrenzen. 8 bedeutet 8 KB/sec. Verwenden Sie jeden Wert, den Sie möchten, oder kommentieren Sie die Zeile aus, wenn Sie die Bandbreiten nicht begrenzen möchten.)

Schließlich starten wir PureFTPd neu:

/etc/init.d/pure-ftpd restart

9 Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.