- Installer pure-ftpd-mysql
apt-get install pure-ftpd-mysql
Run pure-ftpd from inetd or as a standalone server? standalone
Do you want pure-ftpwho to be installed setuid root? No
Ensuite on crée un utilisateur FTP et son groupe FTP auxquels seront mappé tous les utilisateurs virtuels des comptes FTP
groupadd -g 2001 ftpgroup useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser
La BDD se nomme pureftpd et l’utilisateur MySQL pour le démon pure-FTPd sera aussi pureftpd.
mysql -u root -p CREATE DATABASE pureftpd; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'pureftpd_password'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'pureftpd_password'; FLUSH PRIVILEGES;
remplacer le mot de passe « pureftpd_password » par le mot de passe MySQL de l’utilisateur pureftpd.
On crée la table …
USE pureftpd;
CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Password varchar(64) NOT NULL default '',
Uid varchar(11) NOT NULL default '-1',
Gid varchar(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;
… et on retourne au shell
quit;
on édite le fichier de configuration qui nous intéresse
nano /etc/pure-ftpd/db/mysql.conf [... ...] MYSQLSocket /var/run/mysqld/mysqld.sock #MYSQLServer localhost #MYSQLPort 3306 MYSQLUser pureftpd MYSQLPassword pureftpd_password MYSQLDatabase pureftpd #MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext MYSQLCrypt md5 MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
Ensuite on crée le fichier de configuration /etc/pure-ftpd/conf/ChrootEveryone contenant « yes » afin de chrooter systématiquement tous les utilisateurs, c’est à dire à faire en sorte qu’ils ne puissent pas naviguer en dehors de leur répertoire d’attribution.
nano /etc/pure-ftpd/conf/ChrootEveryone
yes
idem pour la création du fichier de configuration /etc/pure-ftpd/conf/CreateHomeDir
Cette option de configuration permet de créer automatiquement un nouveau répertoire pour le nouvel utilisateur qui se connecte pour la première fois.
On reboot le serveur FTP
/etc/init.d/pure-ftpd-mysql restart
Reste à installer phpmyadmin si le coeur vous en dit
pure-ftpd avec MySQL,




