Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:vsftpd_multi-utilisateurs_multi-dossiers_avec_db_ou_mysql [Le 25/09/2012, 12:58]
chesterkik [VSFTPD multi-utilisateurs multi-dossiers avec DB ou MYSQL.]
tutoriel:vsftpd_multi-utilisateurs_multi-dossiers_avec_db_ou_mysql [Le 11/09/2022, 12:21] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
 +{{tag> Precise tutoriel vsftpd}}
 +----------------
 ====== VSFTPD multi-utilisateurs multi-dossiers avec DB ou MYSQL. ====== ====== VSFTPD multi-utilisateurs multi-dossiers avec DB ou MYSQL. ======
  
-{{tag> Precise tutoriel vsftpd db mysq }} 
  
 vsftpd est un deamon FTP très léger, rapide et sécurisé. vsftpd est un deamon FTP très léger, rapide et sécurisé.
Ligne 19: Ligne 20:
   * Disposer des droits d'​administration   * Disposer des droits d'​administration
   * Savoir utiliser un terminal   * Savoir utiliser un terminal
-  * Avoir installé le paquet vsftpd ​+  * Avoir installé le paquet vsftpd
  
-Commencez par ouvrir votre fenêtre de terminal (ctrl-alt-t) ​+Commencez par ouvrir votre fenêtre de terminal (ctrl-alt-t)
 Passez en utilisateur « root » pour éviter d'​ajouter sudo à toutes les commandes. Passez en utilisateur « root » pour éviter d'​ajouter sudo à toutes les commandes.
 <​code>​ <​code>​
Ligne 48: Ligne 49:
 Insérez ce contenu (copier/​coller),​ quelques commentaires vous permettent de l'​adapter suivant vos préférences,​ et vous trouverez des références à cette configuration dans les chapitres suivants. Insérez ce contenu (copier/​coller),​ quelques commentaires vous permettent de l'​adapter suivant vos préférences,​ et vous trouverez des références à cette configuration dans les chapitres suivants.
 <​file>​ <​file>​
-# ftp server ​+# ftp server
 #####################​ #####################​
 listen=YES listen=YES
Ligne 85: Ligne 86:
 virtual_use_local_privs=YES virtual_use_local_privs=YES
 user_sub_token=$USER user_sub_token=$USER
-local_root=/​ftpzone/​$USER'' ​+local_root=/​ftpzone/​$USER
 hide_ids=YES hide_ids=YES
 </​file>​ </​file>​
Ligne 95: Ligne 96:
  
 Le nom d'​utilisateur local et le dossier racine peuvent être adaptés, mais vous devrez changer la configuration en conséquence. Le nom d'​utilisateur local et le dossier racine peuvent être adaptés, mais vous devrez changer la configuration en conséquence.
-//cf. config :// +//cf. config ://
 //​guest_username=vsftpd//​ //​guest_username=vsftpd//​
 //​nopriv_user=vsftpd//​ //​nopriv_user=vsftpd//​
-//​local_root=/​ftpzone/​$USER// ​+//​local_root=/​ftpzone/​$USER//​
  
  
Ligne 119: Ligne 120:
 touch /​root/​vsftpd_login.txt touch /​root/​vsftpd_login.txt
 </​code>​ </​code>​
-Editez le fichier et définissez deux utilisateurs pour exemple ​user1 et user2, respectivement avec les mots de passe 123456 et 654321.+Editez le fichier et définissez deux utilisateurs pour exemple ​user1et ​user2, respectivement avec les mots de passe 123456 et 654321.
  <​code>​  <​code>​
 nano /​root/​vsftpd_login.txt nano /​root/​vsftpd_login.txt
Ligne 125: Ligne 126:
 Copiez/​collez ces 4 lignes : Copiez/​collez ces 4 lignes :
 <​file>​ <​file>​
-user1 +user1
 123456 123456
 user2 user2
Ligne 132: Ligne 133:
 <note important>​ATTENTION il est important de ne pas ajouter de retour, ni de ligne supplémentaire après le dernier mot de passe .</​note>​ <note important>​ATTENTION il est important de ne pas ajouter de retour, ni de ligne supplémentaire après le dernier mot de passe .</​note>​
  
-Générez ensuite le fichier db dans /​etc/​vsftpd_login.db : +Générez ensuite le fichier db dans /​etc/​vsftpd_login.db :
 <​code>​ <​code>​
 db_load -T -t hash -f /​root/​vsftpd_login.txt /​etc/​vsftpd_login.db db_load -T -t hash -f /​root/​vsftpd_login.txt /​etc/​vsftpd_login.db
Ligne 143: Ligne 144:
  
 Définissez la config de PAM pour l'​authentification , créez le fichier /​etc/​pam.d/​vsftpd :​ Définissez la config de PAM pour l'​authentification , créez le fichier /​etc/​pam.d/​vsftpd :​
-//cf config : pam_service_name=vsftpd// ​+//cf config : pam_service_name=vsftpd//​
 <​code>​ <​code>​
 touch /​etc/​pam.d/​vsftpd touch /​etc/​pam.d/​vsftpd
Ligne 153: Ligne 154:
 Copiez/​collez ce contenu  : Copiez/​collez ce contenu  :
 <​file>​ <​file>​
-auth required /lib/i386-linux-gnu/​security/​pam_userdb.so db=/​etc/​vsftpd_login +auth required /lib/x86_64-linux-gnu/​security/​pam_userdb.so db=/​etc/​vsftpd_login 
-account required /lib/i386-linux-gnu/​security/​pam_userdb.so db=/​etc/​vsftpd_login+account required /lib/x86_64-linux-gnu/​security/​pam_userdb.so db=/​etc/​vsftpd_login
 </​file>​ </​file>​
  
Ligne 162: Ligne 163:
  
  
-==== Une base mySQL ====+==== Une base MySQL ====
   ​   ​
 Pour créer la base de données vsftpd, il est nécessaire de connaître le mot de passe root (ici les étoiles) de votre installation de mysql ou celui d'un autre utilisateur ayant les droits de création. Pour créer la base de données vsftpd, il est nécessaire de connaître le mot de passe root (ici les étoiles) de votre installation de mysql ou celui d'un autre utilisateur ayant les droits de création.
 Nous utiliserons ici des mots de passe cryptés pour nos utilisateurs virtuels. Nous utiliserons ici des mots de passe cryptés pour nos utilisateurs virtuels.
  
-Création de la base de donnée de vsftpd  :+Connexion au serveur MySQL
 <​code>​ <​code>​
-mysqladmin -u root --password='​******'​ create vsftpd ​+sudo mysql
 </​code>​ </​code>​
 +(Ajoutez //-p// à cette commande si vous utilisez un mot de passe pour le compte //root//.)
  
-Entrez ensuite ​dans le système ​de commande SQL, pour créer ​l'utilisateur ​de la base vsftpd, puis créer la table d'​utilisateurs ​virtuels ​et insérer vos deux premiers utilisateurs,​ pour exemple ​user1 et user2 avec les mots de passe 123456 et 654321 :+Vous entrez alors dans l'​invite ​de commande SQL ou vous pouvez ​créer ​une base de données vsftpd associée à un utilisateur ​MySQL vsftpd, puis créer la table d'​utilisateurs ​FTP et insérer vos deux premiers utilisateurs ​FTP, pour exemple ​user1et ​user2 avec les mots de passe 123456 et 654321 :
  
-<note important>​N'​oubliez pas de changer le mot de passe de l'​utilisateur de la base vsftpd en fonction de vos préférences,​ ici  ​« XpassftpX ».</​note>​+<note important>​N'​oubliez pas de changer le mot de passe de l'​utilisateur de la base vsftpd en fonction de vos préférences,​ ici  ​« mot_de_passe ».</​note>​
 <​code>​ <​code>​
-mysql -u root --password='​******' ​ +CREATE DATABASE vsftpd; 
-GRANT ALL PRIVILEGES ​ON vsftpd.* TO "​vsftpd"​@"​localhost"​ IDENTIFIED BY 'XpassftpX';  +GRANT ALL ON vsftpd.* TO "​vsftpd"​@"​localhost"​ IDENTIFIED BY 'mot_de_passe'; 
-USE vsftpd;  +USE vsftpd; 
-CREATE TABLE `utilisateurs` (  +CREATE TABLE `utilisateurs` ( 
-`username` varchar(64) NOT NULL default '',​  +`username` varchar(64) NOT NULL default '',​ 
-`password` varchar(64) NOT NULL default '',​  +`password` varchar(64) NOT NULL default '',​ 
-`quota` int(10) NOT NULL default '​0',​  +`quota` int(10) NOT NULL default '​0',​ 
-PRIMARY KEY  (username)  +PRIMARY KEY  (username) 
-) ENGINE=MyISAM COMMENT='​Utilisateurs Virtuels pour le ftp';  +) ENGINE=MyISAM COMMENT='​Utilisateurs Virtuels pour le ftp';​ 
-INSERT INTO `utilisateurs` (`username`,​`password`) VALUES ("​user1",​ ENCRYPT("​123456"​)) ;  +INSERT INTO `utilisateurs` (`username`,​`password`) VALUES ("​user1",​ ENCRYPT("​123456"​));​ 
-INSERT INTO `utilisateurs` (`username`,​`password`) VALUES ("​user2",​ ENCRYPT("​654321"​)) ;  +INSERT INTO `utilisateurs` (`username`,​`password`) VALUES ("​user2",​ ENCRYPT("​654321"​));​ 
-quit+QUIT;
 </​code>​ </​code>​
- 
  
  
 Il vous reste à créer le fichier pour l'​identification PAM , et indiquer dans ce fichier comment lire votre base. Il vous reste à créer le fichier pour l'​identification PAM , et indiquer dans ce fichier comment lire votre base.
 Créez le fichier /​etc/​pam.d/​vsftpd :​ Créez le fichier /​etc/​pam.d/​vsftpd :​
-//cf config : pam_service_name=vsftpd// ​+//cf config : pam_service_name=vsftpd//​
 <​code>​ <​code>​
 touch /​etc/​pam.d/​vsftpd ​ touch /​etc/​pam.d/​vsftpd ​
 </​code>​ </​code>​
-Éditez ce fichier : ​+Éditez ce fichier :
 <​code>​ <​code>​
 nano /​etc/​pam.d/​vsftpd ​ nano /​etc/​pam.d/​vsftpd ​
 </​code>​ </​code>​
 Copiez/​coller ce contenu  : Copiez/​coller ce contenu  :
-<note important>​N'​oubliez pas de modifier le mot de passe de l'​utilisateur de la base vsftpd en fonction de votre création, ici « XpassftpX ».</​note>​+<note important>​N'​oubliez pas de modifier le mot de passe de l'​utilisateur de la base vsftpd en fonction de votre création, ici « mot_de_passe».</​note>​
 <​file>​ <​file>​
-auth       ​required pam_mysql.so user=vsftpd passwd=XpassftpX ​host=127.0.0.1 db=vsftpd table=utilisateurs usercolumn=username passwdcolumn=password crypt=1  +auth       ​required pam_mysql.so user=vsftpd passwd=mot_de_passe ​host=127.0.0.1 db=vsftpd table=utilisateurs usercolumn=username passwdcolumn=password crypt=1 
-account ​   required pam_mysql.so user=vsftpd passwd=XpassftpX ​host=127.0.0.1 db=vsftpd table=utilisateurs usercolumn=username passwdcolumn=password crypt=1 ​+account ​   required pam_mysql.so user=vsftpd passwd=mot_de_passe ​host=127.0.0.1 db=vsftpd table=utilisateurs usercolumn=username passwdcolumn=password crypt=1
 </​file>​ </​file>​
  
  
 **Vos utilisateurs virtuels peuvent maintenant être authentifiés sans être créés comme des utilisateurs locaux.** **Vos utilisateurs virtuels peuvent maintenant être authentifiés sans être créés comme des utilisateurs locaux.**
 +
  
 ===== Dossiers des utilisateurs virtuels ===== ===== Dossiers des utilisateurs virtuels =====
Ligne 216: Ligne 218:
  
 Nous définissons ici le dossier racine du FTP /ftpzone, mais vous devez l'​adapter suivant le home de votre utilisateur principal et modifier la configuration en conséquence. Nous définissons ici le dossier racine du FTP /ftpzone, mais vous devez l'​adapter suivant le home de votre utilisateur principal et modifier la configuration en conséquence.
-//cf. config : virtual_use_local_privs=YES ; user_sub_token=$USER ; local_root=/​ftpzone/​$USER// ​+//cf. config : virtual_use_local_privs=YES ; user_sub_token=$USER ; local_root=/​ftpzone/​$USER//​
  
-Pour fonctionner dans ce mode, vsftpd attend :  +Pour fonctionner dans ce mode, vsftpd attend : 
-- un dossier racine (jail) pour chaque utilisateur sans droit d'​écriture ​+- un dossier racine (jail) pour chaque utilisateur sans droit d'​écriture
 - un ou plusieurs sous-dossiers pour chaque utilisateur avec droit d'​écriture,​ dans notre exemple le sous dossier sera nommé « upload ». - un ou plusieurs sous-dossiers pour chaque utilisateur avec droit d'​écriture,​ dans notre exemple le sous dossier sera nommé « upload ».
  
Ligne 225: Ligne 227:
 <​code>​ <​code>​
 mkdir /​ftpzone ​ mkdir /​ftpzone ​
-mkdir /​ftpzone/​user1 ​+mkdir /​ftpzone/​user1
 mkdir /​ftpzone/​user1/​upload ​ mkdir /​ftpzone/​user1/​upload ​
 mkdir /​ftpzone/​user2 ​ mkdir /​ftpzone/​user2 ​
Ligne 232: Ligne 234:
 Définition les droits pour les dossiers des utilisateurs virtuels  : Définition les droits pour les dossiers des utilisateurs virtuels  :
 <​code>​ <​code>​
-chmod 555 /​ftpzone/​user1 ​+chmod 555 /​ftpzone/​user1
 chmod 775 /​ftpzone/​user1/​upload ​ chmod 775 /​ftpzone/​user1/​upload ​
 chmod 555 /​ftpzone/​user2 ​ chmod 555 /​ftpzone/​user2 ​
Ligne 256: Ligne 258:
 service vsftpd restart ​ service vsftpd restart ​
 </​code>​ </​code>​
-<​note>​Attention si il y a une erreur de configuration,​ vsftpd n'​affiche aucun message, il ne se lance pas alors que la commande affiche néanmoins un id de process. ​+<​note>​Attention si il y a une erreur de configuration,​ vsftpd n'​affiche aucun message, il ne se lance pas alors que la commande affiche néanmoins un id de process.
 Pour vérifier que le service est bien démarré et que la configuration est correcte, vérifiez les process (top) ou plus simplement redémarrez le service (restart) et s'il affiche « stop: Unknown instance » s'est qu'il n'a pas été lancé et que vous avez une erreur dans le fichier configuration.</​note>​ Pour vérifier que le service est bien démarré et que la configuration est correcte, vérifiez les process (top) ou plus simplement redémarrez le service (restart) et s'il affiche « stop: Unknown instance » s'est qu'il n'a pas été lancé et que vous avez une erreur dans le fichier configuration.</​note>​
  
Ligne 263: Ligne 265:
 **En gras ce que vous devez taper.** **En gras ce que vous devez taper.**
  
-**ftp 127.0.0.1 21** +**ftp 127.0.0.1 21**
  
-Connected to 127.0.0.1. ​+Connected to 127.0.0.1.
  
-220 (vsFTPd 2.3.5) ​+220 (vsFTPd 2.3.5)
  
 Name (127.0.0.1:​xxx):​** user1** Name (127.0.0.1:​xxx):​** user1**
  
-331 Please specify the password. ​+331 Please specify the password.
  
 Password: **123456** Password: **123456**
-230 Login successful. ​+230 Login successful.
  
-Remote system type is UNIX. +Remote system type is UNIX.
  
-Using binary mode to transfer files. ​+Using binary mode to transfer files.
  
-ftp> **quit** ​+ftp> **quit**
  
-221 Goodbye. ​+221 Goodbye.
  
  
-Si la connexion s'est bien déroulée, passez maintenant au test avec votre client ftp favori - ex. Nautilus ou FileZilla ​+Si la connexion s'est bien déroulée, passez maintenant au test avec votre client ftp favori - ex. Nautilus ou FileZilla
  
 <​note>​Lorsque vous devez utiliser ce service FTP depuis une autre machine extérieur à votre réseau, ou si vous venez de l'​installer sur un serveur dédié, assurez vous que le port défini dans la configuration (par défaut 21) est ouvert dans votre firewall et dans votre passerelle réseau (box).</​note>​ <​note>​Lorsque vous devez utiliser ce service FTP depuis une autre machine extérieur à votre réseau, ou si vous venez de l'​installer sur un serveur dédié, assurez vous que le port défini dans la configuration (par défaut 21) est ouvert dans votre firewall et dans votre passerelle réseau (box).</​note>​
Ligne 295: Ligne 297:
 Le but est de définir un utilisateur qui pourra accéder aux fichiers de tous les autres , et qui n'aura pas de dossier personnel. Le but est de définir un utilisateur qui pourra accéder aux fichiers de tous les autres , et qui n'aura pas de dossier personnel.
  
-<note important>​ATTENTION :​ c'est dangereux pour la sécurité, cet admin pourra remonter l'​arborescence générale et voir tous les fichiers autorisés en lecture pour tous les utilisateurs locaux (ex. /​etc)</​note> ​+<note important>​ATTENTION :​ c'est dangereux pour la sécurité, cet admin pourra remonter l'​arborescence générale et voir tous les fichiers autorisés en lecture pour tous les utilisateurs locaux (ex. /​etc)</​note>​
  
 Même si vsftpd permet de le faire, je vous déconseille ce type d'​utilisateur,​ il est préférable de garder votre accès par ssh, ou en utilisateur root local pour accéder à tous les dossiers de vos utilisateurs virtuels. Même si vsftpd permet de le faire, je vous déconseille ce type d'​utilisateur,​ il est préférable de garder votre accès par ssh, ou en utilisateur root local pour accéder à tous les dossiers de vos utilisateurs virtuels.
  
-Le fichier /​etc/​vsftpd.chroot_list contiendra les utilisateurs qui n'ont pas besoin de dossier et qui pourront parcourir l'​arborescence générale.  +Le fichier /​etc/​vsftpd.chroot_list contiendra les utilisateurs qui n'ont pas besoin de dossier et qui pourront parcourir l'​arborescence générale. 
-//cf. config : chroot_list_enable=YES// ​+//cf. config : chroot_list_enable=YES//​
 Dé-commentez cette ligne dans la config : chroot_list_enable=YES Dé-commentez cette ligne dans la config : chroot_list_enable=YES
  
Ligne 311: Ligne 313:
 nano /​etc/​vsftpd.chroot_list ​ nano /​etc/​vsftpd.chroot_list ​
 </​code>​ </​code>​
-Ajoutez les identifiants d'​utilisateurs virtuels autorisés (admin) - 1 par ligne +Ajoutez les identifiants d'​utilisateurs virtuels autorisés (admin) - 1 par ligne
  
  
Ligne 335: Ligne 337:
 Copiez/​collez ce contenu : Copiez/​collez ce contenu :
 <​file>​ <​file>​
-#!/bin/sh  +#!/bin/sh 
-#################################################################​  +#################################################################​ 
-# ajoute un utilisateur virtuel pour vsftpd ​ // BY ChesterKiK  +# ajoute un utilisateur virtuel pour vsftpd ​ // BY ChesterKiK 
-#################################################################​  +#################################################################​ 
-if [ $# = "​2"​ ] ; then  +if [ $# = "​2"​ ] ; then 
- # ajoute username et mot de passe au fichier texte des logins  + # ajoute username et mot de passe au fichier texte des logins 
- echo $1"​\n"​$2 >> /​root/​vsftpd_login.txt  + echo $1"​\n"​$2 >> /​root/​vsftpd_login.txt 
- # converti le fichier texte en DB  + # converti le fichier texte en DB 
- db_load -T -t hash -f /​root/​vsftpd_login.txt /​etc/​vsftpd_login.db  + db_load -T -t hash -f /​root/​vsftpd_login.txt /​etc/​vsftpd_login.db 
- # securise le fichier  + # securise le fichier 
- chmod 600 /​etc/​vsftpd_login.db  + chmod 600 /​etc/​vsftpd_login.db 
- # cree le dossier utilisateur  + # cree le dossier utilisateur 
- mkdir /ftpzone/$1  + mkdir /​ftpzone/​$1 
- mkdir /​ftpzone/​$1/​upload  + mkdir /​ftpzone/​$1/​upload 
- # defini les droits et le propriétaire des dossiers utilisateur  + # defini les droits et le propriétaire des dossiers utilisateur 
- chmod 555 /ftpzone/$1  + chmod 555 /​ftpzone/​$1 
- chmod 775 /​ftpzone/​$1/​upload  + chmod 775 /​ftpzone/​$1/​upload 
- chown -R vsftpd:​vsftpd /ftpzone/$1  + chown -R vsftpd:​vsftpd /​ftpzone/​$1 
- # affiche le succés  + # affiche le succés 
- echo "​Utilisateur FTP "​$1"​ ajouté avec succés"​  + echo "​Utilisateur FTP "​$1"​ ajouté avec succés"​ 
-else  +else 
- echo "Deux arguments attendus (ex: addFTPuser username password)"​  + echo "Deux arguments attendus (ex: addFTPuser username password)"​ 
-fi +fi
 </​file>​ </​file>​
 Donnez le droit d'​execution à votre script : Donnez le droit d'​execution à votre script :
Ligne 375: Ligne 377:
    
  
-Ici un script scripts d'​ajout/​suppression/​modification nommé FTPuser ​+Ici un script scripts d'​ajout/​suppression/​modification nommé FTPuser
 <​code>​ <​code>​
 touch /​root/​FTPuser ​ touch /​root/​FTPuser ​
Ligne 383: Ligne 385:
 <note important>​N'​oubliez pas de modifier le mot de passe de la base de donnée (ici XpassftpX).</​note>​ <note important>​N'​oubliez pas de modifier le mot de passe de la base de donnée (ici XpassftpX).</​note>​
 <​file>​ <​file>​
-#!/bin/sh  +#!/bin/sh 
-#################################################################​  +#################################################################​ 
-# gestion des utilisateurs virtuels pour vsftpd // BY CHESTERKIK  +# gestion des utilisateurs virtuels pour vsftpd // BY CHESTERKIK 
-#################################################################​  +#################################################################​ 
-if [ $# = "​3"​ ] && [ $1 = "​add"​ ] ; then  +if [ $# = "​3"​ ] && [ $1 = "​add"​ ] ; then 
- # test si l'​utilisateur existe  + # test si l'​utilisateur existe 
- r=$(echo "USE vsftpd;​SELECT username FROM utilisateurs WHERE username='​$2';"​ | mysql -u vsftpd --password='​XpassftpX'​)  + r=$(echo "USE vsftpd;​SELECT username FROM utilisateurs WHERE username='​$2';"​ | mysql -u vsftpd --password='​XpassftpX'​) 
- if [ "​$r"​ = ""​ ] ; then  + if [ "​$r"​ = ""​ ] ; then 
- # insert l'​utilisateur et son mot de passe dans la table utilisateurs  + # insert l'​utilisateur et son mot de passe dans la table utilisateurs 
- echo "USE vsftpd;​INSERT INTO utilisateurs (username,​password) VALUES ('​$2',​ ENCRYPT('​$3'​)) ;" | mysql -u vsftpd --password='​XpassftpX'​  + echo "USE vsftpd;​INSERT INTO utilisateurs (username,​password) VALUES ('​$2',​ ENCRYPT('​$3'​)) ;" | mysql -u vsftpd --password='​XpassftpX'​ 
- # cree le dossier utilisateur  + # cree le dossier utilisateur 
- mkdir /ftpzone/$2  + mkdir /​ftpzone/​$2 
- mkdir /​ftpzone/​$2/​upload  + mkdir /​ftpzone/​$2/​upload 
- # defini les droits et le propriétaire des dossiers utilisateur  + # defini les droits et le propriétaire des dossiers utilisateur 
- chmod 555 /ftpzone/$2  + chmod 555 /​ftpzone/​$2 
- chmod 775 /​ftpzone/​$2/​upload  + chmod 775 /​ftpzone/​$2/​upload 
- chown -R vsftpd:​vsftpd /ftpzone/$2  + chown -R vsftpd:​vsftpd /​ftpzone/​$2 
- # affiche le succés  + # affiche le succés 
- echo "​L'​utilisateur FTP $2 a été ajouté"​   + echo "​L'​utilisateur FTP $2 a été ajouté"​ 
- else  + else 
- echo "​L'​utilisateur $2 existe déjà";​  + echo "​L'​utilisateur $2 existe déjà";​ 
- fi  + fi 
-elif [ $# = "​2"​ ] && [ $1 = "​delete"​ ] ; then  +elif [ $# = "​2"​ ] && [ $1 = "​delete"​ ] ; then 
- # test si l'​utilisateur existe  + # test si l'​utilisateur existe 
- r=$(echo "USE vsftpd;​SELECT username FROM utilisateurs WHERE username='​$2';"​ | mysql -u vsftpd --password='​XpassftpX'​)  + r=$(echo "USE vsftpd;​SELECT username FROM utilisateurs WHERE username='​$2';"​ | mysql -u vsftpd --password='​XpassftpX'​) 
- if [ "​$r"​ = ""​ ] ; then  + if [ "​$r"​ = ""​ ] ; then 
- echo "​L'​utilisateur $2 est introuvable";​  + echo "​L'​utilisateur $2 est introuvable";​ 
- else  + else 
- echo "​Attention! L'​utilisateur $2 et tous ses fichiers vont être supprimés."​  + echo "​Attention! L'​utilisateur $2 et tous ses fichiers vont être supprimés."​ 
- echo -n "Vous êtes sur (o/N) ? "  + echo -n "Vous êtes sur (o/N) ? " 
- read rr  + read rr 
- if [ "​$rr"​ = "​o"​ ] || [ "​$rr"​ = "​O"​ ] ; then  + if [ "​$rr"​ = "​o"​ ] || [ "​$rr"​ = "​O"​ ] ; then 
- # supprime l'​utilisateur dans la table  + # supprime l'​utilisateur dans la table 
- echo "USE vsftpd;​DELETE FROM utilisateurs WHERE username='​$2';"​ | mysql -u vsftpd --password='​XpassftpX'​  + echo "USE vsftpd;​DELETE FROM utilisateurs WHERE username='​$2';"​ | mysql -u vsftpd --password='​XpassftpX'​ 
- # supprime les dossiers  + # supprime les dossiers 
- rm -r /ftpzone/$2  + rm -r /​ftpzone/​$2 
- # affiche le succés  + # affiche le succés 
- echo "​L'​utilisateur FTP $2 a été supprimé"​  + echo "​L'​utilisateur FTP $2 a été supprimé"​ 
- else  + else 
- echo "Rien n'a été supprimé"​  + echo "Rien n'a été supprimé"​ 
- fi  + fi 
- fi  + fi 
-elif [ $# = "​3"​ ] && [ $1 = "​change"​ ] ; then  +elif [ $# = "​3"​ ] && [ $1 = "​change"​ ] ; then 
- # test si l'​utilisateur existe  + # test si l'​utilisateur existe 
- r=$(echo "USE vsftpd;​SELECT username FROM utilisateurs WHERE username='​$2';"​ | mysql -u vsftpd --password='​XpassftpX'​)  + r=$(echo "USE vsftpd;​SELECT username FROM utilisateurs WHERE username='​$2';"​ | mysql -u vsftpd --password='​XpassftpX'​) 
- if [ "​$r"​ = ""​ ] ; then  + if [ "​$r"​ = ""​ ] ; then 
- echo "​L'​utilisateur $2 est introuvable";​  + echo "​L'​utilisateur $2 est introuvable";​ 
- else  + else 
- # modifie l'​utilisateur dans la table  + # modifie l'​utilisateur dans la table 
- echo "USE vsftpd;​UPDATE utilisateurs SET password=ENCRYPT('​$3'​) WHERE username='​$2';"​ | mysql -u vsftpd --password='​XpassftpX'​  + echo "USE vsftpd;​UPDATE utilisateurs SET password=ENCRYPT('​$3'​) WHERE username='​$2';"​ | mysql -u vsftpd --password='​XpassftpX'​ 
- # affiche le succés  + # affiche le succés 
- echo "​L'​utilisateur FTP $2 a été modifié"​  + echo "​L'​utilisateur FTP $2 a été modifié"​ 
- fi  + fi 
-else  +else 
- echo "​Arguments attendus, syntax :"  + echo "​Arguments attendus, syntax :" 
- echo " > Ajout, tapez: FTPuser add username password"​  + echo " > Ajout, tapez: FTPuser add username password"​ 
- echo " > Suppression,​ tapez: FTPuser delete username"​  + echo " > Suppression,​ tapez: FTPuser delete username"​ 
- echo " > Changer le mot de passe, tapez: FTPuser change username password"​  + echo " > Changer le mot de passe, tapez: FTPuser change username password"​ 
-fi +fi
 </​file>​ </​file>​
 Donnez le droit d'​execution à votre script : Donnez le droit d'​execution à votre script :
Ligne 449: Ligne 451:
  
  
-**Exemples d'​utilisation** ​+**Exemples d'​utilisation**
  
 ajout d'un utilisateur ajout d'un utilisateur
Ligne 455: Ligne 457:
 /​root/​FTPuser add user3 456789 ​ /​root/​FTPuser add user3 456789 ​
 </​code>​ </​code>​
-modification d'un mot de passe +modification d'un mot de passe
 <​code>​ <​code>​
 /​root/​FTPuser change user3 987654 ​ /​root/​FTPuser change user3 987654 ​
 </​code>​ </​code>​
-suppression d'un utilisateur ​+suppression d'un utilisateur
 <​code>​ <​code>​
 /​root/​FTPuser delete user3  /​root/​FTPuser delete user3 
Ligne 472: Ligne 474:
 Si vous obtenez les messages suivants lors de la connexion d'un utilisateur virtuel : Si vous obtenez les messages suivants lors de la connexion d'un utilisateur virtuel :
  
-<​file>​500 OOPS: cannot change directory:/​ftpzone/​user1 the folder doesnt exist</​file>  ​+<​file>​500 OOPS: cannot change directory:/​ftpzone/​user1the ​folder doesnt exist</​file>  ​
 Vous n'avez pas créé le dossier racine de l'​utilisateur Vous n'avez pas créé le dossier racine de l'​utilisateur
  
  
-<​file>​500 OOPS: vsftpd: refusing to run with writable root inside chroot ()</​file>​  +<​file>​500 OOPS: vsftpd: refusing to run with writable root inside chroot ()</​file>​ 
-Vous n'avez pas restreint les droits d'​écriture (555) sur le dossier racine de l'​utilisateur (ex. /​ftpzone/​userx ) +Vous n'avez pas restreint les droits d'​écriture (555) sur le dossier racine de l'​utilisateur (ex. /​ftpzone/​userx )
  
 ---- ----
Ligne 483: Ligne 485:
  
 Lors du redémarrage si vous constatez un message du type : Lors du redémarrage si vous constatez un message du type :
-<​file>​stop:​ Unknown instance</​file> ​ +<​file>​stop:​ Unknown instance</​file>​
 Vous avez une erreur dans le fichier de configuration qui empêche de démarrer le daemon. Vous avez une erreur dans le fichier de configuration qui empêche de démarrer le daemon.
  
Ligne 496: Ligne 498:
 (en) [[https://​security.appspot.com/​vsftpd.html]] (en) [[https://​security.appspot.com/​vsftpd.html]]
  
-(en) [[http://​ubuntuforums.org/​showthread.php?​t=518293]]+(en) [[https://​ubuntuforums.org/​showthread.php?​t=518293]]
  
-(en) [[http://​www.debiantutorials.com/​installing-vsftpd-using-text-file-for-virtual-users/​]]+(en) [[https://​www.debiantutorials.com/​installing-vsftpd-using-text-file-for-virtual-users/​]]
  
  
  • tutoriel/vsftpd_multi-utilisateurs_multi-dossiers_avec_db_ou_mysql.1348570690.txt.gz
  • Dernière modification: Le 25/09/2012, 12:58
  • par chesterkik