Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/05/2007, à 18:19

angelz

[RESOLU]Probleme avec Proftpd et Mysql ...

Salut,

Voilà, j'ai voulu utiliser MySQL pour gerer les comptes ftp etc graçe au tutoriel suivant : http://www.lea-linux.org/cached/index/R … mysql.html

  J'ai installer proftpd-mysql et configurer , mais lorsque j'essaye de me connecter au ftp avec le user test je ne peux me connecter alors qu avec le user angelz je peux, je ne comprend pas

on dirai que l'utilisateur que j'ai rajouter (test) via phpmyadmin ne marche pas...
je met ici les fin de fichier log

Msql.log

May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' opened
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 1
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: backend successfully connected.
May 04 17:53:37 mod_sql/4.2.1[20937]: mod_sql engine     : on
May 04 17:53:37 mod_sql/4.2.1[20937]: negative_cache     : off
May 04 17:53:37 mod_sql/4.2.1[20937]: authenticate       : users groups
May 04 17:53:37 mod_sql/4.2.1[20937]: usertable          : ftpuser
May 04 17:53:37 mod_sql/4.2.1[20937]: userid field       : userid
May 04 17:53:37 mod_sql/4.2.1[20937]: password field     : passwd
May 04 17:53:37 mod_sql/4.2.1[20937]: uid field          : uid
May 04 17:53:37 mod_sql/4.2.1[20937]: gid field          : gid
May 04 17:53:37 mod_sql/4.2.1[20937]: homedir field      : homedir
May 04 17:53:37 mod_sql/4.2.1[20937]: shell field        : shell
May 04 17:53:37 mod_sql/4.2.1[20937]: homedirondemand    : true
May 04 17:53:37 mod_sql/4.2.1[20937]: group table        : ftpgroup
May 04 17:53:37 mod_sql/4.2.1[20937]: groupname field    : groupname
May 04 17:53:37 mod_sql/4.2.1[20937]: grp gid field      : gid
May 04 17:53:37 mod_sql/4.2.1[20937]: grp members field  : members
May 04 17:53:37 mod_sql/4.2.1[20937]: SQLMinUserUID      : 999
May 04 17:53:37 mod_sql/4.2.1[20937]: SQLMinUserGID      : 999
May 04 17:53:37 mod_sql/4.2.1[20937]: SQLDefaultUID      : 65533
May 04 17:53:37 mod_sql/4.2.1[20937]: SQLDefaultGID      : 65533
May 04 17:53:37 mod_sql/4.2.1[20937]: <<< sql_sess_init
May 04 17:53:37 mod_sql/4.2.1[20937]: >>> cmd_getgroups
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_escapestring
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_escapestring
May 04 17:53:37 mod_sql/4.2.1[20937]: cache miss for user 'test'
May 04 17:53:37 mod_sql/4.2.1[20937]: : entering     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 2
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: query "SELECT userid, passwd, uid, gid, homedir, shell FROM ftpuser WHERE (userid='test') and ((LoginAllowed = 'true')) LIMIT 1"
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 1
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: cache miss for user 'test'
May 04 17:53:37 mod_sql/4.2.1[20937]: user 'test' cached
May 04 17:53:37 mod_sql/4.2.1[20937]: + pwd.pw_name  : test
May 04 17:53:37 mod_sql/4.2.1[20937]: + pwd.pw_uid   : 5500
May 04 17:53:37 mod_sql/4.2.1[20937]: + pwd.pw_gid   : 5500
May 04 17:53:37 mod_sql/4.2.1[20937]: + pwd.pw_dir   : /home/ftp/test
May 04 17:53:37 mod_sql/4.2.1[20937]: + pwd.pw_shell : /bin/false
May 04 17:53:37 mod_sql/4.2.1[20937]: cache miss for gid '5500'
May 04 17:53:37 mod_sql/4.2.1[20937]: : entering     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 2
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: query "SELECT groupname FROM ftpgroup WHERE (gid = 5500) LIMIT 1"
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 1
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_escapestring
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_escapestring
May 04 17:53:37 mod_sql/4.2.1[20937]: : entering     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 2
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: query "SELECT groupname, gid, members FROM ftpgroup WHERE (members = 'test' OR members LIKE 'test,%' OR members LIKE '%,test' OR members LIKE '%,test,%')"
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 1
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: <<< cmd_getgroups
May 04 17:53:37 mod_sql/4.2.1[20937]: >>> sql_pre_pass
May 04 17:53:37 mod_sql/4.2.1[20937]: >>> cmd_getgroups
May 04 17:53:37 mod_sql/4.2.1[20937]: cache hit for user 'test'
May 04 17:53:37 mod_sql/4.2.1[20937]: cache miss for gid '5500'
May 04 17:53:37 mod_sql/4.2.1[20937]: : entering     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 2
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: query "SELECT groupname FROM ftpgroup WHERE (gid = 5500) LIMIT 1"
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 1
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_escapestring
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_escapestring
May 04 17:53:37 mod_sql/4.2.1[20937]: : entering     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 2
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: query "SELECT groupname, gid, members FROM ftpgroup WHERE (members = 'test' OR members LIKE 'test,%' OR members LIKE '%,test' OR members LIKE '%,test,%')"
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 1
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: <<< cmd_getgroups
May 04 17:53:37 mod_sql/4.2.1[20937]: <<< sql_pre_pass
May 04 17:53:37 mod_sql/4.2.1[20937]: >>> cmd_getpwnam
May 04 17:53:37 mod_sql/4.2.1[20937]: cache hit for user 'test'
May 04 17:53:37 mod_sql/4.2.1[20937]: <<< cmd_getpwnam
May 04 17:53:37 mod_sql/4.2.1[20937]: >>> cmd_gid2name
May 04 17:53:37 mod_sql/4.2.1[20937]: cache miss for gid '5500'
May 04 17:53:37 mod_sql/4.2.1[20937]: : entering     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 2
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_open
May 04 17:53:37 mod_sql/4.2.1[20937]: query "SELECT groupname FROM ftpgroup WHERE (gid = 5500) LIMIT 1"
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: connection 'default' count is now 1
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_close
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_select
May 04 17:53:37 mod_sql/4.2.1[20937]: <<< cmd_gid2name
May 04 17:53:37 mod_sql/4.2.1[20937]: >>> cmd_auth
May 04 17:53:37 mod_sql/4.2.1[20937]: entering     mysql cmd_escapestring
May 04 17:53:37 mod_sql/4.2.1[20937]: exiting     mysql cmd_escapestring
May 04 17:53:37 mod_sql/4.2.1[20937]: cache hit for user 'test'
May 04 17:53:37 mod_sql/4.2.1[20937]: >>> cmd_check
May 04 17:53:37 mod_sql/4.2.1[20937]: checking auth_type Crypt
May 04 17:53:37 mod_sql/4.2.1[20937]: <<< cmd_check
May 04 17:53:37 mod_sql/4.2.1[20937]: <<< cmd_auth
May 04 17:53:39 mod_sql/4.2.1[20937]: entering     mysql cmd_exit
May 04 17:53:39 mod_sql/4.2.1[20937]: entering     mysql cmd_close
May 04 17:53:39 mod_sql/4.2.1[20937]: connection 'default' closed
May 04 17:53:39 mod_sql/4.2.1[20937]: connection 'default' count is now 0
May 04 17:53:39 mod_sql/4.2.1[20937]: exiting     mysql cmd_close
May 04 17:53:39 mod_sql/4.2.1[20937]: exiting     mysql cmd_exit


auth.log

Serveur-linux-AngelZ [20597] ::ffff:192.168.2.10 [04/May/2007:17:46:03 +0200] "USER angelz" 331
Serveur-linux-AngelZ [20597] ::ffff:192.168.2.10 [04/May/2007:17:46:06 +0200] "PASS (hidden)" 230
Serveur-linux-AngelZ [20669] ::ffff:192.168.2.10 [04/May/2007:17:47:22 +0200] "USER angelz" 331
Serveur-linux-AngelZ [20669] ::ffff:192.168.2.10 [04/May/2007:17:47:25 +0200] "PASS (hidden)" 230
Serveur-linux-AngelZ [20674] ::ffff:192.168.2.10 [04/May/2007:17:47:29 +0200] "USER angelz" 331
Serveur-linux-AngelZ [20674] ::ffff:192.168.2.10 [04/May/2007:17:47:29 +0200] "PASS (hidden)" 230
Serveur-linux-AngelZ [20684] ::ffff:192.168.2.10 [04/May/2007:17:47:50 +0200] "USER test" 331
Serveur-linux-AngelZ [20684] ::ffff:192.168.2.10 [04/May/2007:17:47:53 +0200] "PASS (hidden)" 530
Serveur-linux-AngelZ [20689] ::ffff:192.168.2.10 [04/May/2007:17:47:59 +0200] "USER test" 331
Serveur-linux-AngelZ [20689] ::ffff:192.168.2.10 [04/May/2007:17:48:01 +0200] "PASS (hidden)" 530
Serveur-linux-AngelZ [20934] ::ffff:192.168.2.10 [04/May/2007:17:53:32 +0200] "USER test" 331
Serveur-linux-AngelZ [20934] ::ffff:192.168.2.10 [04/May/2007:17:53:35 +0200] "PASS (hidden)" 530
Serveur-linux-AngelZ [20937] ::ffff:192.168.2.10 [04/May/2007:17:53:37 +0200] "USER test" 331
Serveur-linux-AngelZ [20937] ::ffff:192.168.2.10 [04/May/2007:17:53:39 +0200] "PASS (hidden)" 530


ici je vous met ma config de proftpd.conf

Include /etc/proftpd/modules.conf
# Configuration de base
# =====================
ServerName "Serveur-linux-AngelZ"
ServerType standalone
ServerIdent on "Bienvenue sur le Serveur ftp d'AngelZ. Veuillez-vous identifiez"
DeferWelcome on
#ServerAdmin "ftp_admin@mydomain.com"

MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
AllowOverwrite on

TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200

ListOptions "-l"
Defaultroot ~

DenyFilter \*.*/

Port 21

# A configurer selon sa connection
# ================================
MaxInstances 6
MaxLoginAttempts 3
MaxClientsPerUser 10
MaxClientsPerHost 2
MaxHostsPerUser 4
MaxClients 6 "Limite a 6 utilisateurs"

# ProFTPD est excecuté avec des droits réduits
# ============================================
User nobody
Group nogroup

Umask 022
AllowStoreRestart on
AllowRetrieveRestart on

# Mod MySQL
# =========
# Les mots de passe sont crypté ds la base avec la fct ENCRYPT (MySQL)
SQLAuthTypes Crypt
SQLAuthenticate users* groups*

# Modifiez cette ligne selon l'utilisateur et le mot de passe définit plutôt
SQLConnectInfo proftpd@localhost angelz tyvek$S0

# On donne à ProFTPD le nom des colonnes de la table usertable
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLUserWhereClause "LoginAllowed = 'true'"

# On donne à ProFTPD le nom des colonnes de la table "grouptable"
SQLGroupInfo ftpgroup groupname gid members

# Créer le repertoire home de l'utilisateur si il n'existe pas
SQLHomedirOnDemand on

# Met à jour les compteurs à chaque connection d'un utilisateur
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser

#Met à jour les compteurs à chaque upload ou download d'un utilisateur
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

# Mod quota
# =========
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on

# Définit les requêtes SQL pour que ProFTPd recupere les infos sur les quotas

SQLNamedQuery get-quota-limit SELECT "name, quota_type, par_session, limit_type, bytes_up_limit, bytes_down_limit, bytes_transfer_limit, files_up_limit, files_down_limit, files_transfer_limit FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_up_total, bytes_down_total, bytes_transfer_total, files_up_total, files_down_total, files_transfer_total FROM ftpquotatotal WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery update-quota-tally UPDATE "bytes_up_total = bytes_up_total + %{0}, bytes_down_total = bytes_down_total + %{1}, bytes_transfer_total = bytes_transfer_total + %{2}, files_up_total = files_up_total + %{3}, files_down_total = files_down_total + %{4}, files_transfer_total = files_transfer_total + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatotal

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatotal

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

RootLogin off
RequireValidShell off

# Gestion des logs
# ================
# Enregistre les requêtes SQL dans /var/log/proftpd/mysql.log
SQLLogFile /var/log/proftpd/mysql.log
# Enregistre les authentifications
LogFormat auth "%v [%P] %h %t \"%r\" %s"
ExtendedLog /var/log/proftpd/auth.log AUTH auth
# Enregistre les accès aux fichiers
LogFormat write "%h %l %u %t \"%r\" %s %b"
ExtendedLog /var/log/proftpd/access.log WRITE,READ write

# Recupère le nom à partir de l'ip de la machine de l'utilisateur ( resolution DNS )
#IdentLookups on


et ici le fichier mondule.conf

#
# This file is used to manage DSO modules and features.
#

# This is the directory where DSO modules reside

ModulePath /usr/lib/proftpd

# Allow only user root to load and unload modules, but allow everyone
# to see which modules have been loaded

ModuleControlsACLs insmod,rmmod allow user root
ModuleControlsACLs lsmod allow user *

LoadModule mod_ctrls_admin.c
LoadModule mod_tls.c
LoadModule mod_sql.c
LoadModule mod_ldap.c
LoadModule mod_sql_mysql.c
#LoadModule mod_sql_postgres.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_file.c
LoadModule mod_quotatab_ldap.c
LoadModule mod_quotatab_sql.c
LoadModule mod_radius.c
LoadModule mod_wrap.c
LoadModule mod_rewrite.c

# keep this module the last one
LoadModule mod_ifsession.c


[b]
Voila j'espere que quelqu'un pourra m'aider.
le but etant que si ca marche cree une petite interface php pour gere les nouveaux utilisateurs avec la creation auto de le repertoire home
mais aussi de gere les user existant lol

et si possible avoir un acces ftp anomymes /xxxx/xxx/ftp/public/
ainsi qu un acces ftp pour un user ftpuser (par ex) pour gere les site web present /var/www/

merci d'avance
angelz qui debute depuis peu en linux :-) la transition est pas evidente mais ca vaut la peine smile

Dernière modification par angelz (Le 08/05/2007, à 15:49)

Hors ligne

#2 Le 05/05/2007, à 13:15

angelz

Re : [RESOLU]Probleme avec Proftpd et Mysql ...

personne ne sais ?
ou alors les infos que j'ai donné ne sont pas suffisante?
merci de votre aide dont j'ai grand besoin avant de pete un plomb lol

Hors ligne

#3 Le 06/05/2007, à 00:14

angelz

Re : [RESOLU]Probleme avec Proftpd et Mysql ...

au secourrrrrrsss smile

Hors ligne

#4 Le 06/05/2007, à 00:24

dexinou

Re : [RESOLU]Probleme avec Proftpd et Mysql ...

ici:

Création de l'utilisateur 'test' avec un mot de passe 'pwd'. Cet utilisateur a accès au repertoire '/home/ftp/test' avec les droits de l'utilisateur (UID) 5500, et de groupe (GID) 5500, sans shell ('/bin/false')

est-ce que l'utilisateur existe physiquement sur la machine ?

UID 5500 et GID 5500 ?

S'il n'existe pas tu dois le créer.

groupadd -g 5500 ftpgroup
useradd -u 5500 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser

Il faut savoir que test est un utilisatuer virtuel et il lui faut un utilisateur physique pour pouvoir fonctionner.
Donc tous tes utilisateurs virtuels aurons une correspondance physique avec un seul utilisateur physique et un seul groupe (ftpuser et ftpgroup)

Ensuite, tu pourras créer autant d'utilisateur virtuel que tu voudras avec phpmyadmin, enfin c'est comme ça que j'ai compris le tutoriel.

Dernière modification par dexinou (Le 08/05/2007, à 16:17)


Ubuntu 9.10 64bits ext4 ® Core 2 Duo
Unix..... il y a moins bien mais c'est plus cher.
Si t'as pas compris la réponse, pose mieux ta question.
Tutoriaux Linux, apache, pure-ftpd, bind, mysql, qmail...

Hors ligne

#5 Le 07/05/2007, à 23:19

angelz

Re : [RESOLU]Probleme avec Proftpd et Mysql ...

super ca marche merci beaucoup je comprends mieux le systeme

maintenant j'ai une autre question, je sais bien creer les users avec phpmyadmin et me connecter avec mais je ne sais pas ecrire, j'aimerai que chaque user crée ou existant ai les droit en lecture ecriture creation repertoire delete repertoire, enfin bref que l'utilisateur ai tout les droit dans SON repertoire
merci de votre aide

Hors ligne

#6 Le 08/05/2007, à 15:48

angelz

Re : [RESOLU]Probleme avec Proftpd et Mysql ...

Probleme Resolu Merci a tous smile
c'etait au niveau des droit sur les repertoire qu'il fallait changer

Hors ligne