Hébergement FTP · 5 min read · Jan 07, 2026

Hébergement Virtuel Avec PureFTPd Et MySQL (Incl. Gestion Des Quotas Et De La Bande Passante) Sur Mandriva 2008 Spring - Page 2

6 Remplir La Base De Données Et Tester

Pour remplir la base de données, vous pouvez utiliser le shell MySQL :

mysql -u root -p
USE pureftpd;

Maintenant, nous créons l’utilisateur exampleuser avec le statut 1 (ce qui signifie que son compte ftp est actif), le mot de passe secret (qui sera stocké de manière cryptée en utilisant la fonction MD5 de MySQL), le UID et GID 2001 (utilisez l’identifiant utilisateur et l’identifiant de groupe que vous avez créés à la fin de l’étape deux !), le répertoire personnel /home/www.example.com, une bande passante de téléchargement et de téléchargement de 100 Ko/sec. (kilooctets par seconde), et un quota de 50 Mo :

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;

Maintenant, ouvrez votre programme client FTP sur votre station de travail (quelque chose comme WS_FTP, SmartFTP ou FileZilla si vous êtes sur un système Windows ou gFTP ou FileZilla sur un bureau Linux) et essayez de vous connecter. Comme nom d’hôte, vous utilisez server1.example.com (ou l’adresse IP du système), le nom d’utilisateur est exampleuser, et le mot de passe est secret.

Si vous parvenez à vous connecter - félicitations ! Sinon, quelque chose a mal tourné.

Maintenant, si vous exécutez

ls -l /home

vous devriez voir que le répertoire /home/www.example.com (répertoire personnel de exampleuser) a été créé automatiquement, et il est possédé par ftpuser et ftpgroup (l’utilisateur/groupe que nous avons créés à la fin de l’étape deux) :

[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 Administration De La Base De Données

Pour la plupart des gens, il est plus facile d’avoir une interface graphique pour MySQL ; par conséquent, vous pouvez également utiliser phpMyAdmin (dans cet exemple sous http://server1.example.com/phpmyadmin/) pour administrer la base de données pureftpd.

Chaque fois que vous souhaitez créer un nouvel utilisateur, vous devez créer une entrée dans la table ftpd, donc je vais expliquer les colonnes de cette table ici :

Table ftpd :

  • User : Le nom de l’utilisateur virtuel PureFTPd (par exemple, exampleuser).
  • status : 0 ou 1. 0 signifie que le compte est désactivé, l’utilisateur ne peut pas se connecter.
  • Password : Le mot de passe de l’utilisateur virtuel. Assurez-vous d’utiliser la fonction MD5 de MySQL pour enregistrer le mot de passe crypté sous forme de chaîne MD5 :
  • UID : L’identifiant utilisateur de l’utilisateur ftp que vous avez créé à la fin de l’étape deux (par exemple, 2001).
  • GID : L’identifiant de groupe du groupe ftp que vous avez créé à la fin de l’étape deux (par exemple, 2001).
  • Dir : Le répertoire personnel de l’utilisateur virtuel PureFTPd (par exemple, /home/www.example.com). S’il n’existe pas, il sera créé lorsque le nouvel utilisateur se connectera pour la première fois via FTP. L’utilisateur virtuel sera enfermé dans ce répertoire personnel, c’est-à-dire qu’il ne peut pas accéder à d’autres répertoires en dehors de son répertoire personnel.
  • ULBandwidth : Bande passante de téléchargement de l’utilisateur virtuel en Ko/sec. (kilooctets par seconde). 0 signifie illimité.
  • DLBandwidth : Bande passante de téléchargement de l’utilisateur virtuel en Ko/sec. (kilooctets par seconde). 0 signifie illimité.
  • comment : Vous pouvez entrer n’importe quel commentaire ici (par exemple, pour votre administration interne). Normalement, vous laissez ce champ vide.
  • ipaccess : Entrez ici les adresses IP qui sont autorisées à se connecter à ce compte FTP. * signifie que n’importe quelle adresse IP est autorisée à se connecter.
  • QuotaSize : Espace de stockage en Mo (pas en Ko, comme dans ULBandwidth et DLBandwidth !) que l’utilisateur virtuel est autorisé à utiliser sur le serveur FTP. 0 signifie illimité.
  • QuotaFiles : nombre de fichiers que l’utilisateur virtuel est autorisé à enregistrer sur le serveur FTP. 0 signifie illimité.

8 FTP Anonyme

Si vous souhaitez créer un compte ftp anonyme (un compte ftp auquel tout le monde peut se connecter sans mot de passe), vous avez besoin d’un utilisateur et d’un groupe appelés ftp. Les deux ont été créés automatiquement lorsque vous avez installé le paquet pure-ftpd, donc vous n’avez pas besoin de les créer manuellement. Cependant, le répertoire personnel de ftp est /var/ftp par défaut, mais j’aimerais créer le répertoire ftp anonyme dans /home/ftp (les répertoires ftp des utilisateurs normaux sont également dans /home, par exemple /home/www.example.com). Mais bien sûr, vous pouvez utiliser le répertoire /var/ftp pour ftp anonyme, si vous le préférez.

Si vous souhaitez utiliser /home/ftp, ouvrez /etc/passwd et changez le répertoire personnel de l’utilisateur ftp de /var/ftp à /home/ftp (ne faites pas cela si vous souhaitez utiliser /var/ftp) :

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 [...] |

Ensuite, déplacez /var/ftp vers /home (ne faites pas cela si vous souhaitez utiliser /var/ftp) :

mv /var/ftp /home

Nous utilisons les répertoires /home/ftp/incoming (qui permettront aux utilisateurs anonymes de télécharger des fichiers) et /home/ftp/pub (d’où les utilisateurs anonymes peuvent télécharger). Les deux répertoires existent déjà. Nous allons donner au répertoire /home/ftp/incoming des permissions de 311 afin que les utilisateurs puissent télécharger, mais ne puissent pas voir ou télécharger des fichiers dans ce répertoire. Le répertoire /home/ftp/pub aura des permissions de 555 qui permettent de voir et de télécharger des fichiers :

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

(Si vous souhaitez utiliser /var/ftp à la place, remplacez /home/ftp par /var/ftp dans les commandes ci-dessus.)

Les utilisateurs anonymes pourront se connecter, et ils seront autorisés à télécharger des fichiers depuis /home/ftp/pub, mais les téléchargements seront limités à /home/ftp/incoming (et une fois qu’un fichier est téléchargé dans /home/ftp/incoming, il ne peut pas être lu ni téléchargé depuis là ; l’administrateur du serveur doit le déplacer dans /home/ftp/pub d’abord pour le rendre disponible aux autres).

Maintenant, nous devons configurer PureFTPd pour ftp anonyme. Ouvrez /etc/pure-ftpd/pure-ftpd.conf et assurez-vous que vous avez les paramètres suivants :

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

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

(Le paramètre AnonymousBandwidth est optionnel - il vous permet de limiter les bandes passantes de téléchargement et de téléchargement pour les utilisateurs anonymes. 8 signifie 8 Ko/sec. Utilisez n’importe quelle valeur que vous aimez, ou commentez la ligne si vous ne souhaitez pas limiter les bandes passantes.)

Enfin, nous redémarrons PureFTPd :

/etc/init.d/pure-ftpd restart

9 Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.