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 :

modification d'un script


Sujet :

Langage Perl

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 23
    Par défaut modification d'un script
    bonjour,
    afin de tester les performances de mon serveur ldap, j'ai trouvé sur internet un bindstress que voici :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    #!/usr/bin/perl
    # bindstress.pl - free software by Matt Richard
    # edit the variables below to reflect your LDAP server
     
    my $server = "ldapserver";
    my $uid_base = "cn=users,dc=example,dc=org";
    my $bind_pass = "abc123";
    my $filter = "(!(|(uid=admin)(uid=root)(uid=*admin)(uid=vpn*)))";
     
    my $success = 0;
    my $failure = 0;
     
    # initialize random number generator
    srand;
     
     
    # search for users in the database
    my @search = `ldapsearch -x -LLL -A -b "$uid_base" -s one -h "$server" "$filter" dn | grep "dn"`;
     
    # convert search results into a list of users
    for $searchline (@search)
    {
       	($junk, $junk, $dn, $junk) = split(/[=,\ ]/,$searchline);
       	push (@users, $dn);
    }
     
    # keep attempting to bind forever
    while (1)
    {
        #pick a random user
        my $dn = @users [ rand  @users ];
     
        # get the current time
        chomp ($date = substr(`date \"+%H:%M:%S\"`,0,-1));
     
        # perform the ldap bind
        $result = `ldapwhoami -x -h $server -D \"uid=$dn,$uid_base\" -w \"$bind_pass\" 2>&1`;
     
        # if we noticed a success
        if ($result =~ /dn:uid=/ )
        {  
        	# increment the success coun and don't hilight the output
        	print "\033[0m$date \{" . ++$success . "\/" . $failure . "\} $dn -> $result";
        }
        else
        {  
        	# otherwise increment the failure count and hilight the output
        	print "\033[1m$date \{" . $success . " " . ++$failure . "\} $dn -> $result";
        }
     
        # uncomment to slow things down a bit
        #sleep 1;
    }
    source : http://edisk.fandm.edu/matt.richard/ldap-perls.html

    ca fonctionne mais le probleme c'est que je doit renseigne un groupe d'utilisateur sinon ca ne fonctionne pas :

    my $uid_base = "ou=people,dc=example,dc=org";
    my $bind_pass = "abc123";

    ainsi, il trouve plusieurs utilisateurs dans la branche ou=people. Mais le mot de passe est valable que pour une seule personne du groupe people.
    mais quetion est :
    est-il possible de mettre tout les mot de passe en parametre dans ce script ???
    merci


    exemple :
    my $uid_base = "ou=people,dc=example,dc=org";
    my $bind_pass = "passwd1","passwd2";

    EDIT : je ne connais malheureusement pas se language

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 23
    Par défaut
    en gros est-ce qu'on peut placer plusieurs données sur une variable :

    my $bind_pass = "passwd1" OU "passwd2" OU "passwd3";

    merci

  3. #3
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Ce que tu demandes sera présent en Perl 6, mais n'est présent actuellement dans aucun autre langage à ma connaissance (sauf peut-être Prolog, et on peut sans doute utiliser une monade appropriée pour obtenir un résultat similaire en Haskell, mais il s'agit là de langages assez particuliers, Haskell est incroyablement puissant, mais exige un profond changement de paradigme).
    Pour l'instant, si tu veux tester plusieurs valeurs pour le pass, il te faut du code spécifique, par exemple tu peux faire de $bind_pass un tableau @bind_pass, et tester ses différents composants dans une boucle au niveau de l'appel à ldapwhoami.
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    #!/usr/bin/perl
    # bindstress.pl - free software by Matt Richard
    # edit the variables below to reflect your LDAP server
    use strict; use warnings;
     
    my $server = 'ldapserver';
    my $uid_base = 'cn=users,dc=example,dc=org';
    my @bind_pass = ('abc123', 
      'bcd456', 
      #...
    );
    my $filter = '(!(|(uid=admin)(uid=root)(uid=*admin)(uid=vpn*)))';
     
    my $success = 0;
    my $failure = 0;
     
    # initialize random number generator
    srand;
     
     
    # search for users in the database
    my @search = `ldapsearch -x -LLL -A -b "$uid_base" -s one -h "$server" "$filter" dn | grep "dn"`;
     
    my @users;
    # convert search results into a list of users
    for my $searchline (@search)
    {
       	($junk, $junk, $dn, $junk) = split(/[=,\ ]/,$searchline);
       	push (@users, $dn);
    }
     
    # keep attempting to bind forever
    while (1)
    {
        #pick a random user
        my $dn = @users [ rand  @users ];
     
        # get the current time
        chomp ($date = substr(`date \"+%H:%M:%S\"`,0,-1));
     
        my $result;
        # perform the ldap bind
        for my $bind_pass (@bind_pass) {
            $result = `ldapwhoami -x -h $server -D \"uid=$dn,$uid_base\" -w \"$bind_pass\" 2>&1`;
            last if $result =~ /dn:uid=/;
        }
     
        # if we noticed a success
        if ($result =~ /dn:uid=/ )
        {  
        	# increment the success coun and don't hilight the output
        	print "\033[0m$date \{" . ++$success . "\/" . $failure . "\} $dn -> $result";
        }
        else
        {  
        	# otherwise increment the failure count and hilight the output
        	print "\033[1m$date \{" . $success . " " . ++$failure . "\} $dn -> $result";
        }
     
        # uncomment to slow things down a bit
        #sleep 1;
    }
    En Perl 6, il te suffira d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $bind_pass = 'abc123' | 'efg456' | 'hij789';
    Et tout marchera tout seul, Perl essaiera les trois valeurs à chaque fois, et enregistrera un succès si l'une d'entre elle réussit.

    --
    Jedaï

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 23
    Par défaut
    bonjour,
    je te remercie pour toute ces informations.


Discussions similaires

  1. Réponses: 7
    Dernier message: 25/09/2007, 17h16
  2. modification d'un script
    Par snoopy59110 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 26/06/2007, 15h48
  3. Modification d'un script
    Par tom06440 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/09/2006, 16h28
  4. Modification d'un script
    Par renaud26 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/08/2006, 11h48

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