IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

[debutant] Probleme script perl


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 14
    Par défaut [debutant] Probleme script perl
    Bonjour, j'ai commencé à plancher sur le language perl car je voudrais créer un script qui puisse ajouter des utilisateurs sur proftpd via la commande ftpasswd.

    Voici mon script actuel (c'est juste un début soyez indulgent ) :

    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
    22
    23
    24
     
     
    #!/usr/bin/perl -w	
    use strict; 
     
    print "\nAjouter un utilisateur dans ProFTPD\n";
     
    print "\nEntrer le nom d'utilisateur ftp : ";
    my $login = <stdin>;
    chomp $login;
     
    print "Creation de l'utilisateur $login\n";
    print " Entrez l'id de $login : ";
    my $id = <stdin>;
    chomp $id;
     
    print "L'id de $login est $id\n";
    print "Choisir le chemin de l'utilisateur ftp : ";
    my $home = <stdin>;
    chomp $home;
     
    print "Creation de l'utilisateur $login en cours ...\n";
    my $result1 = `ftpasswd --passwd --file=/usr/local/etc/ftp.passwd --name=$login --uid=$id --gid=1050 --home=$home --shell=/bin/false`;
    print "$result1";
    Mon principal problème vient du faite que quand j'arrive au moment ou normalement après avoir entrée le chemin de l'utilisateur (/home/site/ftp), le programme se bloque et n'affiche pas la partie ou le mot de passe doit être entrer pour l'utilisateur (la partie "mot de passe" s'affiche s'affiche mais uniquement après les avoir rentrés à l'aveuglette) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Ajouter un utilisateur dans ProFTPD
     
    Entrer le nom d'utilisateur ftp : test
    Creation de l'utilisateur test
     Entrez l'id de test : 1111
    L'id de test est 1111
    Choisir le chemin de l'utilisateur ftp : /home/site/ftp
    Creation de l'utilisateur test en cours ...
    ftpasswd: --passwd: missing --gid argument: default gid set to uid
    ----> blocage ici <-------
    partie "mot de passe" qui s'affiche après les avoir tapés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Password:
    Re-type password:
     
    ftpasswd: entry created
    Et voila le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cat ftp.passwd | grep test
    test:$1$oG7WPS3j$AlsCymBRm6xEo6ZKR6c221:1111:1111::/home/site/ftp:/bin/false
    si quelqu'un pouvait m'aider pour arranger ce bout de code.
    merci d'avance.

  2. #2
    Membre expérimenté Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Par défaut
    je pense (pas sur) que la solution à ton probleme est la suivante :
    tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $result1 = `ftpasswd --passwd --file=/usr/local/etc/ftp.passwd --name=$login --uid=$id --gid=1050 --home=$home --shell=/bin/false`;
    print "$result1";
    je mettrais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $cmd = `ftpasswd --passwd --file=/usr/local/etc/ftp.passwd --name=$login --uid=$id --gid=1050 --home=$home --shell=/bin/false`;
    system($cmd);

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 14
    Par défaut
    humm voila le résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Ajouter un utilisateur dans ProFTPD
     
    Entrer le nom d'utilisateur ftp : test
    Creation de l'utilisateur test
     Entrez l'id de test : 1111
    L'id de test est 1111
    Choisir le chemin de l'utilisateur ftp : /home/site/ftp
    Creation de l'utilisateur test en cours ...
    sh: ftpasswd:: command not found
    sh: line 1: ftpasswd:: command not found
    sh: line 3: Password:: command not found
    sh: line 4: Re-type: command not found
    sh: line 6: ftpasswd:: command not found
    marche po :/

  4. #4
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Je crois qu'il y a déjà une erreur plus haut, à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $result1 = `ftpasswd --passwd --file=/usr/local/etc/ftp.passwd --name=$login --uid=$id --gid=1050 --home=$home --shell=/bin/false`;
    Perl me dit
    'ftpasswd' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
    Je ne sais pas pourquoi mais avec des doubles quotes, je n'ai plus ce problème.
    C'est vrai qu'entre simples-quotes les variables ne seront pas interprétées et $login restera $login.


    essaie peut-être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $result1 = "ftpasswd --passwd --file=/usr/local/etc/ftp.passwd --name=$login --uid=$id --gid=1050 --home=$home --shell=/bin/false";

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 14
    Par défaut
    oui jasmine tu as raison, avec les double " ca marche, résultat :

    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
     
    Ajouter un utilisateur dans ProFTPD
     
    Entrer le nom d'utilisateur ftp : test
    Creation de l'utilisateur test
     Entrez l'id de test : 1111
    L'id de test est 1111
    Choisir le chemin de l'utilisateur ftp : /home/site/ftp
    Creation de l'utilisateur test en cours ...
    ftpasswd: using alternate file: /usr/local/etc/ftp.passwd
    ftpasswd: updating passwd entry for user test
     
    Password:
    Re-type password:
     
    ftpasswd: entry updated
    merci encore pour votre aide, je vais essayer de faire un ptit truc complet avec des menus ect ...

    je vous tiens au courant sur l'avancement de la chose, bonne jourée et merci encore.

    edit : comme il fait beau, jvais aller bronzer un peu, je remet ca a plus tard dans la journée a+

  6. #6
    Membre expérimenté Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Par défaut
    heu ... oui effectivement j'ai écrit n'importequoi il fallait obligatoirement mettre les double quote et non pas ni une simple quote (les variables n'aurais pas été interpréter) et encore moin les backquote (ce que j'ai mis par inadvertance) qui font une appelle au système et place le résultant dans la variable !!

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 14
    Par défaut
    j'ai avancé dans mon code mais j'ai encore quelques questions, je voulais savoir si c'était possible d'afficher le premier mot de toutes les lignes de mon fichier ftpd.passwd.

    voici les lignes complètes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cat ftpd.passwd
    lan08:$1$HSaO3rBt$cxD2MuWg3pXcDPEXZWqp71:1001:1050::/home/site/ftp:/bin/false
    test:$1$YPiOLXCS$WBIGiT.iwB4BueiZVh1Mx.:1002:1050::/home/site/ftp:/bin/false
    je cherche donc à afficher uniquement "lan08" et "test" sans ce qui suis sur leurs lignes.

    merci d'avance et bonne soirée

Discussions similaires

  1. [debutant] Probleme script perl
    Par bob2099 dans le forum Linux
    Réponses: 2
    Dernier message: 10/06/2008, 12h19
  2. probleme script perl sous windows
    Par wirgilus dans le forum Langage
    Réponses: 4
    Dernier message: 05/06/2008, 11h34
  3. [TELNET]probleme script perl
    Par gdpasmini dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 04/06/2007, 10h20
  4. help me probleme script perle
    Par babar006 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2007, 10h17
  5. [langage] Probleme avec caractère '$' dans script Perl
    Par zouetchou dans le forum Langage
    Réponses: 11
    Dernier message: 24/07/2004, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo