Pure-FTPd ist ein kostenloser und sicherer FTP-Server. Es bietet keinen nutzlosen Schnickschnack, sondern konzentriert sich auf Effizienz und Benutzerfreundlichkeit. Es bietet einfache Antworten auf allgemeine Anforderungen sowie einzigartige nützliche Funktionen für Privatanwender und Hosting-Provider.
Diese Anleitung hilft Ihnen, Pure-FTPD mit MySQL als Benutzerdatenbank einzurichten. Bietet auch detaillierte Anweisungen zum Erstellen von Benutzern und Tests.
Schritt 1:Installieren Sie MySQL (überspringen, falls bereits vorhanden)
Zuerst müssen wir MySQL mit den folgenden Befehlsschritten auf unserem System installieren.
# yuminstall mysql mysql-server
Klicken Sie hier für detaillierte Anweisungen zur Installation von MySQL.
Schritt 2:Pure-FTPD installieren
Verwenden Sie den folgenden Befehl, um pure-ftpd auf Ihrem Linux-System zu installieren.
# yuminstall pure-ftpd
Schritt 3:MySQL-Benutzer und -Datenbank erstellen
Nach der Installation des pure-ftpd-Pakets können Sie eine MySQL-Datenbank, eine Tabelle und einen Benutzer zum Speichern von Benutzerinformationen erstellen.
#mysql -u root -p Enter password: mysql> CREATE DATABASEpureftpd ; mysql> GRANT ALL ONpureftpd .* to 'pureftpd '@'localhost' IDENTIFIED BY '_password_ '; mysql> FLUSH PRIVILEGES; mysql> usepureftpd ; mysql> CREATE TABLE `users` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `User` varchar(32) NOT NULL DEFAULT '', `Password` varchar(64) NOT NULL DEFAULT '', `Uid` int(3) NOT NULL DEFAULT '500', `Gid` int(3) NOT NULL DEFAULT '500', `Dir` varchar(255) NOT NULL DEFAULT '', `QuotaSize` int(4) NOT NULL DEFAULT '50', `Status` enum('0','1') NOT NULL DEFAULT '1', `ULBandwidth` int(2) NOT NULL DEFAULT '100', `DLBandwidth` int(2) NOT NULL DEFAULT '100', `Date` date NOT NULL DEFAULT '0000-00-00', `LastModif` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`ID`), UNIQUE KEY `User` (`User`), KEY `Uid` (`Uid`), KEY `Gid` (`Gid`), KEY `Dir` (`Dir`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; mysql> quit
Schritt 4:Pure-FTPD konfigurieren
Wir werden pure-ftpd so konfigurieren, dass Benutzeranmeldedaten in der MySQL-Datenbank gespeichert werden. Bearbeiten Sie zunächst die Hauptkonfigurationsdatei von pure-ftpd
# vim /etc/pure-ftpd/pure-ftpd.conf
und folgende Änderungen vornehmen.
ChrootEveryoneyes MaxClientsNumber50 MaxClientsPerIP2 VerboseLogyes AnonymousOnlyno NoAnonymousyes MaxIdleTime15 MySQLConfigFile/etc/pure-ftpd/pureftpd-mysql.conf PAMAuthenticationno UnixAuthenticationno
Nachdem Sie Änderungen an der pure-ftpd-Konfiguration vorgenommen haben, lassen Sie die mysql-Konfigurationsdatei von pure-ftpd bearbeiten
# vim /etc/pure-ftpd/pureftpd-mysql.conf
und folgende Variablen aktualisieren
MYSQLUserpureftpd MYSQLPassword_password_ MYSQLDatabasepureftpd MYSQLCryptmd5
Schritt 5:Pure-FTPD-Setup testen
In diesem Schritt haben wir die reine FTP-Einrichtung abgeschlossen. Jetzt müssen wir unsere Einrichtung testen, indem wir unser erstes FTP-Konto erstellen. Um unser Setup zu testen, müssen wir zuerst einen Benutzer im Linux-System erstellen. Danach werden wir diese Benutzer-UID und -GID verwenden, um unsere virtuellen FTP-Konten zu erstellen.
Benutzerkonto erstellen:
# useradd demouser1 # passwd demouser1
UID und GID dieses Kontos abrufen:
# cat /etc/passwd | grep demouser1 demouser1:x:504:505::/home/demouser1:/bin/bash
Gemäß der obigen Ausgabe haben wir festgestellt, dass die UID von usres 504 und die GID 505 ist.
FTP-Konto erstellen
Melden Sie sich beim MySQL-Server an oder greifen Sie über phpMyAdmin zu und erstellen Sie Ihr erstes Konto. Für dieses Tutorial verwende ich die Befehlszeile.
# mysql -u root -p Enter password: mysql> INSERT INTO `users` (`User`, `Password`, `Uid`, `Gid`, `Dir`, `QuotaSize`, `Status`, `ULBandwidth`, `DLBandwidth`, `Date`, `LastModif`) VALUES ('ftpuser1', md5('_password_'), '504', '505', '/home/demouser1', '20', 2, '10', '10', now(), ''); mysql> quit
Gemäß obiger Abfrage haben wir erfolgreich unser erstes FTP-Konto
Mit FTP-Server verbinden Verwenden Sie ein neu erstelltes FTP-Konto und versuchen Sie, eine Testdatei hochzuladen.
C:>ftp ftp.tecadmin.net Connected to ftp.tecadmin.net. 220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- 220-You are user number 1 of 50 allowed. 220-Local time is now 21:39. Server port: 21. 220-This is a private system - No anonymous login 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity. User (ftp.tecadmin.net:(none)):ftpuser1 331 User ftpuser1 OK. Password required Password: 230 OK. Current restricted directory is / ftp>put test.txt 200 PORT command successful 150 Connecting to port 57216 226-File successfully transferred 226 0.004 seconds (measured here), 0.65 Mbytes per second ftp: 2593 bytes sent in 0.00Seconds 2593.00Kbytes/sec. ftp> bye 221-Goodbye. You uploaded 3 and downloaded 0 kbytes. 221 Logout. C:>
Gemäß den obigen Ergebnissen haben wir uns erfolgreich mit dem FTP-Benutzer verbunden und eine Testdatei hochgeladen. Lassen Sie uns die Berechtigungen dieser Dateien auf dem Server überprüfen.
# ls -l /home/demouser1/test.txt -rw-r--r-- 1 demouser1 demouser1 2525 Dec 4 21:39 /home/demouser1/test.txt
Jetzt können Sie sehen, dass die Datei die Berechtigungen dieses Benutzers erhält, dessen UID, GID wir für diese FTP-Konten verwendet haben.