je te remercie encore pour tes algo bien utiles
ça marche bien et c exactement ce qu'il fallait
mais pour le dernier pourquoi avoir mi 2 fois ';;' à la ligne 'echo "Le login '$user' est interdit"' ?
je te remercie encore pour tes algo bien utiles
ça marche bien et c exactement ce qu'il fallait
mais pour le dernier pourquoi avoir mi 2 fois ';;' à la ligne 'echo "Le login '$user' est interdit"' ?
Encore une petite question si c'est pas trop abuser de ton temps.
A la fin du script il envoi les données dans une table mysql, je voudrais qu'il affiche une erreur si la connexion à échouée, comment faire ça ?
Voici la ligne de connexion:
J'ai essayer ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ### Insertion dans la table ftpd de la bd echo "INSERT INTO ftpd (User, status, Password, Uid, Gid, Dir, ULBandwidth, DLBandwidth, comment, ipaccess, QuotaSize, QuotaFiles, ULRatio, DLRatio) VALUES ('$user', '$stat', MD5('$pass'), '$uid', '$gid', '$dir', '$ul', '$dl', '$cm', '$ip', '$quota', '$files', '$ulr', '$dlr');" |$sql -A -u$userdb -h$host -p$passdb -D$db
ça marche, mais il me met aussi l'erreur mysql de type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 echo "INSERT INTO ftpd (User, status, Password, Uid, Gid, Dir, ULBandwidth, DLBandwidth, comment, ipaccess, QuotaSize, QuotaFiles, ULRatio, DLRatio) VALUES ('$user', '$stat', MD5('$pass'), '$uid', '$gid', '$dir', '$ul', '$dl', '$cm', '$ip', '$quota', '$files', '$ulr', '$dlr');" |$sql -A -u$userdb -h$host -p$passdb -D$db if [ $? -ne 0 ]; then echo "Error database" fi
ERROR 1062 (23000) at line 1: Duplicate entry 'toto' for key 1
qui correspond au champ utilisateur de la table qui existe déjà dans la base.
Le but, c'est qu'il ne m'affiche que "Error database" et non pas l'erreur mysql.
Un autre truc aussi c'est qu'au début du script il vérifie si l'utilisateur existe dans Le fichier /etc/passwd et il vérifie aussi si l'utilisateur est interdit ou pas.
Je voudrais aussi qu'il vérifie si l'utilisateur existe dans la base de donnée.
Une fois les deux conditions remplie il doit donc vérifier si l'utilisateur existe déjà dans la BD mysql.
Alors j'ai fait ceci:
Marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 usql=`echo "SELECT * FROM ftpd WHERE User='$user'";|$sql -A -u$userdb -h$host -p$passdb -D$db` while true do echo -n "Ajoutez un login FTP (ctrl+c pour arrêter) : " read user # On considère que l'user est bon et on cherche un mauvais ok="ok" for bad in root daemon www-data bin sys sync games man lp mail news uucp proxy backup list irc gnats nobody Debian-exim statd identd sshd ntp ftp webmaster $usql # On peut en mettre autant qu'on veut do if test "$user" = "$bad" then # On a trouvé un user mauvais - On efface le flag unset ok # Plus la peine de vérifier les autres break fi done
Bon voilà ceci semble marcher:
Merci à vous 2 pour toute l'aide apportée au travail.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 while true do echo -n "Ajoutez un login FTP (ctrl+c pour arrêter) : " read user # On sélection le champ de l'utilisateur dans la table usql=`echo "SELECT * FROM ftpd WHERE User='$user';"| $connect` # On considère que l'user est bon et on cherche un mauvais ok="ok" for bad in root daemon www-data bin sys sync games man lp mail news uucp proxy backup list irc gnats nobody Debian-exim statd identd sshd ntp ftp webmaster $usql # On peut en mettre autant qu'on veut do if test "$user" = "$bad" then # On a trouvé un user mauvais - On efface le flag unset ok # Plus la peine de vérifier les autres break fi done
@ bientôt
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager