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 07/05/2007, à 20:05

ehooh

php et pure-ftp

Bonjour a tous, je demande rarement de l'aide avant d'avoir chercher, mais j'ai vraiment besoin d'aide car je bloque.

Sous Ubuntu 7.04 avec un serveur LAMP et FTP ( pure-ftp) j'utilise la commande "pure-ftpd -B -1 -A -c 5 -C 1 --tls=0 -E -r -l puredb:/etc/pure-ftpd/pureftpd.pdb -m" il me demande deux fois le mot de passe et c'est bon, ça fonctionne.

Le problème c'est que je voudrais le faire avec une page php donc sans intervention humaine au niveau du mot de passe. Et la je bloque, principalment car il me demande le mot de passe 2 fois.

Si quelqu'un sait comment je pourrais résoudre ce problème, cela serait très symphatique.

Merci d'avance

Hors ligne

#2 Le 07/05/2007, à 20:35

seb0uil

Re : php et pure-ftp

Salut,
Tu veux lancer la commande par un script PHP ?
Dans ce cas, pourquoi ne pas lancer un script shell qui lui même lancer la commande pure-ftpd
Tu peux alors tenter avec

pure-ftpd -B -1 -A -c 5 -C 1 --tls=0 -E -r -l puredb:/etc/pure-ftpd/pureftpd.pdb -m << EOF 
pwd1
pwd2
EOF

Ca devrait fonctionner non ?


Java stuff ::
tPortal.. ma petite implémentation de la JSR168
jlibParam.. pooling, paramétrage etc...

Hors ligne

#3 Le 07/05/2007, à 20:46

ehooh

Re : php et pure-ftp

Salut, tout d'bord, merci...

la commande à executé est "pure-pw useradd ehooh -u ftpuser -g ftpgroup -d /var/www/u2/ -N 200 -m" mais j'ai adapté le script:

pure-pw useradd ehooh -u ftpuser -g ftpgroup -d /var/www/u2/ -N 200 -m EOF
ehooh
ehooh
EOF

Après exécution du script il me demande le mot de passe a deux reprise et me dit que "ehooh" n'est pas une commande valide. donc cela ne fonctionne pas.

que faire ...

Hors ligne

#4 Le 07/05/2007, à 21:22

seb0uil

Re : php et pure-ftp

pure-password useradd ehooh -u ftpuser -g ftpgroup -d /var/www/u2/ -N 200 -m EOF
ehooh
ehooh
EOF

tu as oublié l'essentiel

<<

tongue


Java stuff ::
tPortal.. ma petite implémentation de la JSR168
jlibParam.. pooling, paramétrage etc...

Hors ligne

#5 Le 07/05/2007, à 21:46

ehooh

Re : php et pure-ftp

oups, oui tu as raison, j'avais oublier le principal et oui cela a macher, par contre en php cela ne fonctionne pas

		
$command="pure-pw useradd $login -u ftpuser -g ftpgroup -d /var/www/$sql/ -N 200 -m << EOF $pass $pass EOF"
$output=shell_exec($command." 2>&1");  //system call

est-ce que je dois mettre le code dans la page php ou lancer le script dans la page php?

Cela merci beaucoup pour ton aide.

Hors ligne

#6 Le 07/05/2007, à 22:34

seb0uil

Re : php et pure-ftp

je pencherais plutot pour faire un petit script avec ca, et l'appeler depuis php

quite a lui passer $login et $pass en paramètre


Java stuff ::
tPortal.. ma petite implémentation de la JSR168
jlibParam.. pooling, paramétrage etc...

Hors ligne

#7 Le 08/05/2007, à 09:54

ehooh

Re : php et pure-ftp

merci bcp, j'ai penser a faire ceci mais ça ne fonctionne pas

		
$fp = fopen("/var/www/identifiant/pure","a+"); 

fputs($fp,"pure-pw useradd $login -u ftpuser -g ftpgroup -d /var/www/$sql/ -N 200 -m << EOF $pass $pass EOF");
fclose($fp);

$command="chmod 777 /var/www/identifiant/pure";
$output=shell_exec($command." 2>&1");  //system call
		
$command="/var/www/identifiant/./pure";
$output=shell_exec($command." 2>&1");  //system call

$command="rm /var/www/pure";
$output=shell_exec($command." 2>&1");  //system call

Est-ce que quelqu'un sait comment lancer un script dans une page page, je vais quand même chercher dans le forum, ça doit etre quelque part.

xxx

Hors ligne

#8 Le 08/05/2007, à 11:24

dexinou

Re : php et pure-ftp

j'ai un petit script bash pour ajouter des utilisateurs virtuels, si ça peu t'aider pour créer le tien:

#!/bin/bash 
#
################################################################################
# Configuration :
# adaptez cette ligne selon votre installation
PASSWDFILE=/etc/pure-ftpd/pureftpd.passwd
# adaptez selon les parametres que vous avez choisis pour votre serveur (laissez
# les guillemets)
PUREFTPCONF="/usr/sbin/pure-ftpd -A -b -c10 -B -C2 -D -E -fftp -H -I5 -lpuredb:/etc/pure-ftpd/pureftpd.pdb -L10000:3 -m4 -p10000:10400 -s -U133:022 -u1000 -Oclf:/var/log/transfers.log -k95 -Y0 &"
# Adaptez selon l'UID de l'utilisateur ftpuser et le GID du groupe ftpgroup
# sur votre Linux
NUMIDDEFTPUSER=2001
NUMIDDEFTPGROUP=2001
# répertoire chrooté des users créés
PATHACCES=/var/www/
#Fin de la configuration
################################################################################

CHOIX=0
clear

echo -e "\n\t\t\t***********************\n\t\t\t* Gestion de Pure-FTP *\n\t\t\t***********************\n"

while [ $CHOIX != 9 ]; do

echo -e "\t\t\tChoix possibles:\n\t\t1: Ajouter un utilisateur virtuel.\n\t\t2: Effacer un utilisateur virtuel.\n\t\t3: Voir les droits d'un utilisateur.\n\t\t4: Lister les utilisateurs.\n\t\t5: Changer le passwd d'un utilisateur.\n\t\t6: Voir les connections actives du serveur.\n\t\t7: Démarrer le serveur.\n\t\t8: Tuer le serveur.\n\t\t9: Quitter.\n\nTapez l'entier correspondant a votre choix:"
read CHOIX
echo ""

case $CHOIX in
        1)
                echo "Entrez le login à ajouter: "
                read NICK
		if [ "$NICK" = "" ];then
			echo -e "Erreur, veuillez indiquer un login!\n"
		else
                	if [ $NICK = root ];then
                	        echo -e "Erreur, veuillez indiquer un login différent de root!\n"
                	else
				if grep $NICK $PASSWDFILE > /dev/null
				then
					echo -e "$NICK a déjà un compte\n"
				else
					pure-pw useradd $NICK -u $NUMIDDEFTPUSER -g $NUMIDDEFTPGROUP -d $PATHACCES
                	        	echo -e "Utilisateur virtuel $NICK ajouté!\n"
					pure-pw mkdb
				fi
			fi
		fi
          ;;
        2)
                echo "Entrez le login à effacer: "
                read NICK
		if [ "$NICK" = "" ];then
                        echo -e "Erreur, veuillez indiquer un login!\n"
                else
			if grep $NICK $PASSWDFILE > /dev/null
			then
		          	pure-pw userdel $NICK
				echo -e "Utilisateur virtuel $NICK supprimé!\n"
				pure-pw mkdb
			else
				echo -e "L'utilisateur $NICK n'existe pas!\n"
			fi
		fi
          ;;
	3)
                echo "Entrez le login dont vous voulez vérifier les droits: "
                read NICK
		if [ "$NICK" = "" ];then
                        echo -e "Erreur, veuillez indiquer un login!\n"
                else
	                if grep $NICK $PASSWDFILE > /dev/null
			then
	                        pure-pw show $NICK
	                else
	                        echo -e "L'utilisateur $NICK n'existe pas!\n"
	                fi
		fi
          ;;
	4)
		echo -e "\tLogin\t\t|  UID\t|  GID\t| path"
                echo -e "\t----------------+-------+-------+-----------------------"
                awk 'BEGIN { FS=":" } NF==0{next} {print "	"$1 "		\| " $3 "	\| " $4 "	\| " $6}' $PASSWDFILE
		echo ""
          ;;
	5)
                echo "Entrez le login dont le passwd doit changer: "
                read NICK
		if [ "$NICK" = "" ];then
                        echo -e "Erreur, veuillez indiquer un login!\n"
                else
	                if grep $NICK $PASSWDFILE > /dev/null
			then
				pure-pw passwd $NICK
				echo -e "Le passwd de $NICK est changé!\n"
				pure-pw mkdb
	                else
	                        echo -e "L'utilisateur $NICK n'existe pas!\n"
	                fi
		fi
          ;;
	6)
                pure-ftpwho -v
          ;;
	7)
		eval $PUREFTPCONF
                echo -e "Serveur FTP\t\t\t[ON]\n"
          ;;
	8)
                for VAR in "`ps -A | grep pure-ftpd`"; do
                        if  [ pure-ftpd = "`echo $VAR | gawk -F" " '{print $4}'`" ]; then
                        VAR=`echo "$VAR" | gawk -F" " '{print $1}'`
                        kill -9 $VAR
                        fi
                done;
                echo -e "Serveur FTP\t\t\t[OFF]\n"
          ;;
	9)
		clear
                echo -e "\n\n\n\t\tA bientôt!\n"
		sleep 2
		clear
		exit
          ;;
	*)
		echo -e "Votre choix n'est pas valide!"
		CHOIX=0
	  ;;
esac

echo "Press <Enter>"
read UNUSED
clear

done

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


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

#9 Le 08/05/2007, à 19:38

ehooh

Re : php et pure-ftp

ton code m'a ton d'abord fait peur, puis imprésioner mais il m'aide pas dans mon problème. Mais mon problème c'est que je n'arrive pas a gérer les mots de passe avec le php. Par contre grace a l'aide de seb0ull j'ai reussi avec un script. Je pense que si je ne peu pas faire ça c'est que je ne sui ps en "su" en lançant le script. Donc la je sèche, car pour ce que je veux faire, je ne dois absolument pas connaitre le mot de passe de l'utilisateur et tout dois se faire en une seule fois.

Peut etre que quelqu'un connais une autre application plus simple pour créer des utilisateur

Hors ligne

#10 Le 08/05/2007, à 21:04

ehooh

Re : php et pure-ftp

hmmm, je ne peux pas ouvrir l'archive ... Il me dis que ce n'est pas une archive Gzip

Hors ligne

#11 Le 08/05/2007, à 22:01

dexinou

Re : php et pure-ftp

et maintenant ? : http://download.generation-linux.net/ftp_v2.2.tar.gz

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


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

#12 Le 08/05/2007, à 22:46

ehooh

Re : php et pure-ftp

oui merci beaucoup, donc en regardant ça, je vais utiliser la méthode sql plutot que par fichier. Je vous donne des nouvelles si cela fonctionne.

xxx

Hors ligne