| Qui est en ligne ? |
| Il y a : 21 utilisateurs en ligne, consultez le détail |
Forum » Logiciels » PureFtpd |
Forum modéré par : Ascodas |
| Même auteur |
|
Score ( voter ) : |
|
| Page : [1] |
| Auteur | Message |
|---|---|
|
|
#0 Message posté le : 04-08-2007 à 00:26:58 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 08-08-2004 Nombre de messages : 331 |
Bonsoir à tous, j'ai une petite question pour pureftpd. Quand je cree mon utilisateur virtuel avec useradd apperement y a une option pour passer le password en parametres (option -f) mais je ne vois pas comment exploiter cela. J'ai fait des longues recherches sur google mais rien de satisfaisant, alors je m'en remet à vous Merci par avance et bonne nuit ^^ PS: peut etre a deplacer ds serveur et prog ce sujet ^^ --Message édité par butchersyl le 04-08-2007 à 22:56:58-- |
|
|
#1 Message posté le : 04-08-2007 à 00:47:47 |
Maître Jedi Forum : Inscrit Association : Arrivé(e) le : 16-01-2003 Nombre de messages : 8931 |
Le man de useradd donne pour l'option -f : -f, --inactive DURÉ_INACTIVITÉ Nombre de jours suivant la fin de validité d'un mot de passe après lequel le compte est définitivement désactivé. Une valeur de 0 désactive le compte dès que le mot de passe a dépassé sa fin de validité, et une valeur de -1 dAésactive cette fonctionnalité. La valeur par défaut est de -1. Autrement dit l'option -f ne permet pas de définir le mot de passe, mais simplement de définir sa durée de validité. Édit : problème d'encodage des accents (utf8) dans le man... faut que je revois cela --Message édité par tonton nestor le 04-08-2007 à 00:48:44-- |
|
|
#2 Message posté le : 04-08-2007 à 01:02:04 |
Maître Jedi Forum : Inscrit Association : Arrivé(e) le : 16-01-2003 Nombre de messages : 8931 |
Je viens d'aller jeter un oeil sur le didacticiel de pureftp. À priori aucun mot de passe n'est définit pour celui-ci. Je n'utilise pas de serveur ftp, donc ma question est : es-tu sûr que tu doives en définir un ? De plus je ne crois pas que l'utilisateur ftp soit le login pour se connecter depuis un post situé sur internet (cela doit se définir dans les fichiers de configuration). Cet utilisateur ftp est juste celui qui lance le serveur ftp pour ne pas avoir une tâche accessible par d'autres machines qui soit lancé en tant que root... Effectivement si un bug dans pureftp permet de prendre contrôle de la machine, le "pirate" n'aura accès qu'en tant qu'utilisateur ftp, et comme ce dernier n'a pas même droit à un shell... la difficulté sera grande à poser des soucis au serveur (bien que réel). Maintenant je me trompe peut-être, mais une chose qui confirme un petit peu : l'utilisateur ftp n'ayant pas droit à un shell, comment il fait pour rentrer son mot de passe ? donc il n'en a pas besoin édit : encore une fois ce post est à confirmer par des personnes plus chevronnées que moi dans ce domaine. --Message édité par tonton nestor le 04-08-2007 à 01:04:59-- |
|
|
#3 Message posté le : 04-08-2007 à 12:45:29 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 08-08-2004 Nombre de messages : 331 |
Non non la ca n'a rien à voir avec l'utilisateur ftp qui lance pureftpd. Avec pureftpd on peut creer des utilisateurs virtuels, et effectivement ces utilisateurs servent a la connexions ftp. exemple: pure-pw useradd toto -u 1002 -g 1002 -d /home/toto/lalala Quand je fais cette ligne de commande ca cree l'utilisateur virtuel toto avec uid et gid à 1002 et chroote ds /home/toto/lalala. Quand je valide il me demande le password pour cette connexion ftp, et c la qu'est mon probleme, car je voulais creer une generation automatique d'utilisateurs ftp mais je ne sais pas interragir avec le shell du fait qu'il me demande le password. Je sais qu'il y avait un petit langage de programmation qui permettait cela, mais je retrouve plus le nom. Sinon merci de ton aide tonton nestor ^^ |
|
|
#4 Message posté le : 04-08-2007 à 12:54:37 |
Maître Jedi Forum : Inscrit Association : Arrivé(e) le : 16-01-2003 Nombre de messages : 8931 |
ok, je croyais au départ que tu parlais d'une des premières lignes du didacticiel (celle qui crée l'utilisateur ftp qui lancera pureftp). On ne parlait donc pas de la même chose Hmm finalement ce qu'il te faudrait peut-être c'est un générateur de mot de passe ? |
|
|
#5 Message posté le : 04-08-2007 à 13:51:00 |
Maître Jedi Forum : Inscrit Association : Arrivé(e) le : 16-01-2003 Nombre de messages : 8931 |
Une petite recherche m'a donné cette piste : L'option -p de useradd permet de passer le mot de passe crypté pour l'utilisateur. De plus l'utilitaire makepasswd permet de généré des mots de passe (avec l'option --crypt ils sont cryptés). J'espère que cela pourra t'ouvrir quelques pistes. Peut-être qu'un script pourra être envisagé si tu as beaucoup d'utilisateur à gérer pour se connecter au ftp. --Message édité par tonton nestor le 04-08-2007 à 13:51:58-- |
|
|
#6 Message posté le : 04-08-2007 à 15:48:30 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 08-08-2004 Nombre de messages : 331 |
Oui effectivement je m'etais mal exprime dans le premier message desole ^^ Donc pour ta solution avec useradd effectivement ce serait une solution, mais le probleme c que les utilisateurs virtuels qu'on cree avec la commande "pure-pw useradd" ne depend pas du tout du "useradd" du systeme. C'est bien une commande propre à pureftpd et le seuls parametres passables sont:
pure-pw useradd <login> [-f <passwd file>] -u <uid> [-g <gid>]
-D/-d <home directory> [-c <gecos>]
[-t <download bandwidth>] [-T <upload bandwidth>]
[-n <max number of files>] [-N <max Mbytes>]
[-q <upload ratio>] [-Q <download ratio>]
[-r <allow client host>[/<mask>][,<allow client host>[/<mask>]]...]
[-R <deny client host>[/<mask>][,<deny client host>[/<mask>]]...]
[-i <allow local host>[/<mask>][,<allow client host>[/<mask>]]...]
[-I <deny local host>[/<mask>][,<deny local host>[/<mask>]]...]
[-y <max number of concurrent sessions>]
[-z <hhmm>-<hhmm>] [-m]
Alors effectivement y a la solution de l'option -f, mais j'ai pas trouve comment l'exploiter, si faut un fichier password en claire, en crypte, en quelle syntaxe et sur le site y a pas plus d'aide que ca Sinon je te remercie de ton aide tonton nestor Edit: Sinon je sais que y a un ptit langage de scripting qui permettait d'interragir avec le shell, quand il demande le password on lui repond etc... mais j'arrive plus à me rappeler du nom, et je pense que ca serait ma solution. RE-Edit: Ca y est je viens de trouver le nom de ce langage, c'est "expect" je fais les tests pour creer un utilisateur et si c bon je met le drapeau vert au topic. --Message édité par butchersyl le 04-08-2007 à 15:57:04-- |
|
|
#7 Message posté le : 04-08-2007 à 16:26:01 |
Maître Jedi Forum : Inscrit Association : Arrivé(e) le : 16-01-2003 Nombre de messages : 8931 |
À priori cette option -f doit permettre d'aller chercher un fichier où sont définis les mots de passe des utilisateurs. Une recherche sur google/linux m'a permis de trouver ça : http://www.tuxjm.net/docs/pure-ftpd-howto.txt Et dedans : # cat pureftpd.passwd pruebas:$1$7A8JOUM0$jPo6Qdh/UhV9cgcJUhSZD0:5012:104::/home/ftpusers/pruebas/./:::::::::::: Donc à priori le mot de passe est crypté. Peut-être serait-il possible de généré un fichier générant les mots de passe à l'aide de makepasswd. Cela dit reste à connaître la syntaxe exacte dans le fichier. De plus le lien étant en espagnol... édit : 5012 et 104 doivent être soit l'uid puis le gid de l'utilisateur ftp, soit l'inverse. --Message édité par tonton nestor le 04-08-2007 à 16:27:40-- |
|
|
#8 Message posté le : 04-08-2007 à 16:51:46 |
Naboo Forum : Modérateur Association : Président Arrivé(e) le : 09-04-2006 Nombre de messages : 2094 |
Sinon, t'as essayé de rediriger tout simplement l'entrée standart de ta commande ? Peut-être que c'est accepté (mais bon, en général, cela ne marche pas pour les logiciels sensibles) :
echo "tonpass" | pure-pw useradd... .édit : si ça ne marche pas avec cette méthode mais que ça marche avec expect, je serais intéressé de savoir comment tu as fait. --Message édité par Azollyx le 04-08-2007 à 16:52:30-- |
|
|
#9 Message posté le : 04-08-2007 à 17:55:04 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 08-08-2004 Nombre de messages : 331 |
Oui effectivement j'ai deja teste et ca ne passe pas. Pour expect je galere un peu la, l'envoie du premier password se fait mais quand il le redemande à nouveau il se passe rien. Voila le code de mon fichier expect: #!/usr/bin/expect -f set force_conservative 1 ; spawn pure-pw useradd Test -u 531 -g 1004 -t 1000 -N 10000 -d /home/lalala/Test -m expect "Password:" send -- "test\r" expect "Enter it again:" send -- "test\r" expect eof Et voila ce que ca me fait quand je l'excute: ./script-expect spawn pure-pw useradd Test -u 531 -g 1004 -t 1000 -N 10000 -d home/lalala/Test -m Password: test Enter it again: Apres le Enter it again il ne se passe rien le prompt revient, bizzarement j'ai pas d'erreur comme quoi le mdp est incorrect, mais l'utilisateur n'est pas cree c sur --Message édité par butchersyl le 04-08-2007 à 17:56:04-- |
|
|
#10 Message posté le : 04-08-2007 à 19:03:25 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 08-08-2004 Nombre de messages : 331 |
Ok chuis passe avec autoexpect, qui m'a genere un fichier de code qui ne fonctionnait pas, j'ai fait des modifications et finalement ca fonctionne avec les infos en dur.
#!/usr/bin/expect -f
#
set force_conservative 1 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
set timeout -1
spawn pure-pw useradd Test -u 531 -g 1004 -t 1000 -N 10000 -d /home/xdcc/Bots/Test/Release -m
match_max 100000
expect -exact "Password: "
send -- "test\r"
expect -exact "\r
Enter it again: "
send -- "test\r"
expect eof
Maintenant il faut que je voit comment lui passer des arguments et les traiter a la place des chaines en dur |
|
|
#11 Message posté le : 04-08-2007 à 20:30:14 |
Naboo Forum : Modérateur Association : Président Arrivé(e) le : 09-04-2006 Nombre de messages : 2094 |
Sympa, ça marche même avec ssh (à une époque je cherchais une solution pour... euh... ce sont des choses qui ne se disent pas) Pour les arguments, c'est dans $argv, il y a quelques explications dans la man page d'expect (vers le début, à --). édit : sinon, c'est clairement expliqué là. --Message édité par Azollyx le 04-08-2007 à 20:35:59-- |
|
|
#12 Message posté le : 04-08-2007 à 21:11:04 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 08-08-2004 Nombre de messages : 331 |
oui merci j'avais deja fini mon programme avec les arguments mais pas eu le tps de le poster, alors le voici:
#!/usr/bin/expect -f
#
set force_conservative 1 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
#Recuperation des parametres passes en arguments
#Je ne fais pas de controle car chez moi c scrypte
#et j'ai pas pris le tps de l'etudier en expect
set user [lindex $argv 0]
set password [lindex $argv 1]
set uid [lindex $argv 2]
#action que le code doit faire
set timeout -1
spawn pure-pw useradd $user -u $uid -g 1004 -t 1000 -N 10000 -d /home/Test/$user -m
match_max 100000
expect -exact "Password: "
send -- "$password\r"
expect -exact "\r
Enter it again: "
send -- "$password\r"
expect eof
Voila mon script s'appelle script.exp donc pour l'appeler je fais: ./script.exp login pass uid ex: ./script.exp Toto PassToto 1002 Et donc le script me creera le compte FTP Toto avec le pass PassToto, l'uid 1002,le gid 1004, le repertoire chroote /home/Test/Toto, limite à 1M en dl et 10G en espace disque. Voila ceci fonctionne parfaitement, vous pouvez l'appeler d'un script bash ou php comme vous voulez et à l'adapter à vos envies si vous voulez :p Je met le flag au vert, car j'ai pas trouve pour passer directement le pass a la commande pure-wd adduser --Message édité par butchersyl le 04-08-2007 à 21:15:19-- |
| Page : [1] |
Forum » Logiciels » PureFtpd |
Forum modéré par : Ascodas |
| Même auteur |
|
Score ( voter ) : |
|
- Petit scarabée : 0 pastille, moins de 100 messages
- Scarabée : 0 pastille, plus de 100 messages
- Hobbit : 1 pastille, plus de 1000 messages
- Naboo : 2 pastilles, plus de 2000 messages
- Elfe : 3 pastilles, plus de 3000 messages
- Jedi : 4 pastilles, plus de 4000 messages
- Maître Jedi : 5 pastilles, plus de 5000 messages