Hosting · 2 min read · Feb 09, 2026
Virtuelles Hosting Mit vsftpd Und MySQL Auf Debian Etch - Seite 2
4 Konfigurieren von vsftpd
Zuerst erstellen wir einen nicht privilegierten Benutzer namens vsftpd (mit dem Home-Verzeichnis /home/vsftpd), der zur Gruppe nogroup gehört. Wir werden vsftpd unter diesem Benutzer ausführen, und die FTP-Verzeichnisse unserer virtuellen Benutzer werden im Verzeichnis /home/vsftpd liegen (z. B. /home/vsftpd/user1, /home/vsftpd/user2 usw.).
useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpdDann machen wir ein Backup der ursprünglichen /etc/vsftpd.conf-Datei und erstellen unsere eigene:
cp /etc/vsftpd.conf /etc/vsftpd.conf_orig
cat /dev/null > /etc/vsftpd.conf
vi /etc/vsftpd.confDie Datei sollte die folgenden Inhalte haben:
| listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES nopriv_user=vsftpd chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem guest_enable=YES guest_username=vsftpd local_root=/home/vsftpd/$USER user_sub_token=$USER virtual_use_local_privs=YES user_config_dir=/etc/vsftpd_user_conf |
Die Konfigurationsoptionen werden auf http://vsftpd.beasts.org/vsftpd_conf.html erklärt. Die wichtigen Optionen für unser virtuelles Setup sind chroot_local_user, guest_enable, guest_username, user_sub_token, local_root und virtual_use_local_privs.
Mit der Option user_config_dir können Sie ein Verzeichnis für benutzerspezifische Konfigurationsdateien angeben, die Teile der globalen Einstellungen überschreiben. Dies ist völlig optional und liegt an Ihnen, ob Sie diese Funktion nutzen möchten. Wir sollten jedoch jetzt dieses Verzeichnis erstellen:
mkdir /etc/vsftpd_user_confJetzt müssen wir PAM konfigurieren, damit es die MySQL-Datenbank zur Authentifizierung unserer virtuellen FTP-Benutzer anstelle von /etc/passwd und /etc/shadow verwendet. Die PAM-Konfiguration für vsftpd befindet sich in /etc/pam.d/vsftpd. Wir machen ein Backup der ursprünglichen Datei und erstellen eine neue wie folgt:
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig
cat /dev/null > /etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd| auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 |
Bitte stellen Sie sicher, dass Sie das MySQL-Passwort durch Ihr eigenes ersetzen!
Anschließend starten wir vsftpd neu:
/etc/init.d/vsftpd restart5 Erstellen Sie Den Ersten Virtuellen Benutzer
Um die Datenbank zu füllen, können Sie die MySQL-Shell verwenden:
mysql -u root -pUSE vsftpd;Jetzt erstellen wir den virtuellen Benutzer testuser mit dem Passwort secret (das verschlüsselt mit der PASSWORD-Funktion von MySQL gespeichert wird):
INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret'));
quit;das Home-Verzeichnis von testuser ist /home/vsftpd/testuser; leider erstellt vsftpd dieses Verzeichnis nicht automatisch, wenn es nicht existiert. Daher erstellen wir es jetzt manuell und machen es dem Benutzer vsftpd und der Gruppe nogroup zu eigen:
mkdir /home/vsftpd/testuser
chown vsftpd:nogroup /home/vsftpd/testuserJetzt öffnen Sie Ihr FTP-Client-Programm auf Ihrem Arbeitsplatz (etwas wie WS_FTP oder SmartFTP, wenn Sie ein Windows-System verwenden, oder gFTP auf einem Linux-Desktop) und versuchen Sie, eine Verbindung herzustellen. Als Hostnamen verwenden Sie server1.example.com (oder die IP-Adresse des Systems), der Benutzername ist testuser und das Passwort ist secret.
Wenn Sie sich verbinden können - herzlichen Glückwunsch! Wenn nicht, ist etwas schiefgegangen.
6 Datenbankverwaltung
Für die meisten Menschen ist es einfacher, wenn sie eine grafische Benutzeroberfläche für MySQL haben; daher können Sie auch phpMyAdmin (in diesem Beispiel unter http://server1.example.com/phpmyadmin/) verwenden, um die vsftpd-Datenbank zu verwalten.

Wann immer Sie einen Benutzer erstellen oder ändern, stellen Sie sicher, dass Sie die PASSWORD-Funktion von MySQL verwenden, um das Passwort dieses Benutzers zu verschlüsseln. Außerdem, wenn Sie einen neuen virtuellen Benutzer erstellen, vergessen Sie bitte nicht, das Home-Verzeichnis dieses Benutzers in der Shell zu erstellen, wie am Ende des vorherigen Kapitels gezeigt.

7 Links
- vsftpd: http://vsftpd.beasts.org
- Debian: http://www.debian.org
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.