URL: https://linuxfr.org/forums/linux-general/posts/probl%C3%A8me-avec-pureftpd Title: Problème avec PureFTPD Authors: benodilo Date: 2005年10月25日T23:45:01+02:00 Tags: Score: 0 Bonjour, J'utilise Pure-ftpd-mysql et j'en suis très content. Efficace, simple et orienté sécurité (semble-t-il). Dans une utilisation normal chrooter c parfait. Seulement j'ai des comptes qui doivent pouvoir accéder aux mêmes ressources. La seule solution que je connais : faire un montage "BIND" dans fstab. Et ça fonctionne pas mal. Seulement je veux ajouter la gestion des quotas virtuels gérer par pure-ftpd. Et ça complique tout ! En effet qd un user1 envoi des fichiers, son ".ftpquota" est mis à jour. Pour un compte ne partageant pas de données, pas de soucis. Mais qd le user1 a en commun un répertoire avec un user2 le ".ftpuota" n'est mis à jour que pour le user qui upload des fichiers... Je cherche donc à mettre à jour les quotas des users en même temps. Solutions que g trouvé (pas top) : -1ere soluce : Un script qui est lancer toutes les minutes et qui met à jour les quotas de tous les users si le log du FTP à changé : #!/bin/bash diff --brief /var/log/pure-ftpd/essai.log /var/log/pure-ftpd/essai.log.tmp > /dev/null if [ $? -eq 1 ] then £spaces£ £/spaces£for users in /home/FTP/* £spaces£ £/spaces£do £spaces£ £/spaces£if [ -e $users/.ftpquota ] £spaces£ £/spaces£then £spaces£ £/spaces£pure-quotacheck -u ftpuser -d $users £spaces£ £/spaces£fi £spaces£ £/spaces£done £spaces£ £/spaces£cp /var/log/pure-ftpd/essai.log /var/log/pure-ftpd/essai.log.tmp fi 2 eme soluce : un script appeler par "pure-uploadscript" qui met à jour les quotas des peronnes gérant le même site: #!/usr/bin/php <?php exec("logger UPLOADSCRIPT LANCE pour $argv[2]"); $user_mysql="root"; $password_mysql="xxxxx"; $database="xxxxx"; mysql_connect("localhost",$user_mysql,$password_mysql); @mysql_select_db($database) or die( "Unable to select database"); #On recupere les sites que gere l'utilisateur $query="SELECT nom_site FROM ftpusersquotas WHERE user='$argv[7]' AND type='enti te'"; $result1=mysql_query($query) or die("Query failed\n"); while ($row_site = mysql_fetch_array($result1)){ £spaces£ £/spaces£exec("logger site : $row_site[nom_site]"); £spaces£ £/spaces£#On recupere les utilisateurs qui ont le même site à gérer £spaces£ £/spaces£$query="SELECT user FROM ftpusersquotas WHERE user!='$argv[7]' AND nom_s ite='$row_site[nom_site]'"; £spaces£ £/spaces£$result2=mysql_query($query) or die("Query failed\n"); £spaces£ £/spaces£while ($row_user = mysql_fetch_array($result2)){ £spaces£ £/spaces£exec("logger user : $row_user[user]"); £spaces£ £/spaces£exec("/usr/sbin/pure-quotacheck -u ftpuser -d /home/FTP/$row_use r[user]"); £spaces£ £/spaces£} } mysql_close(); ?> 3 eme soluce : je pensais détecter dans les logs un connexion FTP et mettre à jour du coup.... Pour l'instant je mixe de la soluce 1 et 2 mais c vraiment pas top.... J'aimerais des conseils, je suis pas sur que la solution 2 sois mieux. Alors les proposions simple et peu gourmandes sont TRES bienvenues ;)

AltStyle によって変換されたページ (->オリジナル) /