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

Shell et commandes GNU Discussion :

pb de lecture de script


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 112
    Par défaut pb de lecture de script
    Bonjour j'ai téléchargé un script .bat fonctionnat sur windows et j'aimerais le modifié pour qu'il puisse fonctionné avec Linux

    je suis un peu confuse dans mon script au niveau des tests(if). Comment est ce que je peux les modifiés pour qu'ils puissent etre utilisables sous linux?

    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
    if "%OP_CERT_COUNTRY%" == "" goto edit_script
     
    if "%OP_CERT_STATE%" == "" goto edit_script
     
    if "%OP_CERT_LOCALITY%" == "" goto edit_script
     
    if "%OP_CERT_ORG%" == "" goto edit_script
     
    if "%OP_CERT_CA_DAYS%" == "" goto edit_script
     
    if "%OP_CERT_CERT_DAYS%" == "" goto edit_script
     
    shift
     
    if "%0" == "" goto help
     
    if "%0" == "help" goto help
     
    if "%0" == "dsaparam" goto dsaparam
     
    if "%0" == "gencakey" goto gencakey
     
    if "%0" == "genmanager" goto genmanager

    Aussi je ne comprends pas ce bout de code

    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
    goto end
     
    :help
    echo usage: op_cert command
    echo.
    echo commands:
    echo dsaparam:  generates DSA parameters
    echo     gencakey:  generates the certificate authority's private and public keys
    echo   genmanager:  generates the certificates used by the capture manager
    echo         help:  displays this text
    echo.
    echo Certificate generation requires generating the DSA parameters first.
    echo If the DSA parameter file (dsaparam.pem) already exists, there is no
    echo need to generate a new DSA parameter file.
     
    goto end
     
    :dsaparam
    openssl dsaparam -outform PEM -out dsaparam.pem 1024
     
    goto end
     
    :gencakey
    ECHO.
    ECHO ===========================================
    ECHO Generating the private and public keys for the certificate authority. This operation only needs to be done once.
    ECHO Enter the same passphrase three times.This passphrase should be kept secure.
    ECHO ==============================================
    ECHO.
    echo [ req ] > openssl.cnf
    echo default_bits               = 1024 >> openssl.cnf
    echo default_keyfile            = privkey.pem >> openssl.cnf
    echo distinguished_name         = req_distinguished_name >> openssl.cnf
    echo prompt                     = no >> openssl.cnf
    echo [ req_distinguished_name ] >> openssl.cnf
    echo C                          = %OP_CERT_COUNTRY% >> openssl.cnf
    echo ST                         = %OP_CERT_STATE% >> openssl.cnf
    echo L        
     
    :end
    set OP_CERT_COUNTRY=
    set OP_CERT_STATE=
    set OP_CERT_LOCALITY=
    set OP_CERT_ORG=


    Merci d'avance

  2. #2
    Membre chevronné Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Par défaut
    tu devrais regarder un tuto script shell parce que y a presque tout à refaire.
    En shell tu récupères la valeur d'une variable avec $NOM_VARIABLE et pas avec %NOM_VAR%. Pour tester l'égalité de deux chaines c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if [ $CHAINE1 = $CHAINE2 ]; then
       [...]
    fi
    Pour affecter tu peux faire juste VAR=valeur
    Et vire moi ces goto. Fais des if, else if, [...], else

  3. #3
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    goto est interdit en programmation quelque soit le langage (à part en basic 8bits mais qui programme encore sur mo5 ?)
    il faut faire des fonctions (ici en syntaxe shell)

    et pour l'appeler


  4. #4
    Membre chevronné Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur Unix/Linux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Par défaut
    goto est interdit en programmation quelque soit le langage (à part en basic 8bits mais qui programme encore sur mo5 ?)
    Ou sur une Casio

    goto end

    :help
    echo usage: op_cert command
    echo.
    echo commands:
    echo dsaparam: generates DSA parameters
    echo gencakey: generates the certificate authority's private and public keys
    echo genmanager: generates the certificates used by the capture manager
    echo help: displays this text
    echo.
    echo Certificate generation requires generating the DSA parameters first.
    echo If the DSA parameter file (dsaparam.pem) already exists, there is no
    echo need to generate a new DSA parameter file.

    goto end

    :dsaparam
    openssl dsaparam -outform PEM -out dsaparam.pem 1024

    goto end

    :gencakey
    ECHO.
    ECHO ===========================================
    ECHO Generating the private and public keys for the certificate authority. This operation only needs to be done once.
    ECHO Enter the same passphrase three times.This passphrase should be kept secure.
    ECHO ==============================================
    ECHO.
    echo [ req ] > openssl.cnf
    echo default_bits = 1024 >> openssl.cnf
    echo default_keyfile = privkey.pem >> openssl.cnf
    echo distinguished_name = req_distinguished_name >> openssl.cnf
    echo prompt = no >> openssl.cnf
    echo [ req_distinguished_name ] >> openssl.cnf
    echo C = %OP_CERT_COUNTRY% >> openssl.cnf
    echo ST = %OP_CERT_STATE% >> openssl.cnf
    echo L

    :end
    set OP_CERT_COUNTRY=
    set OP_CERT_STATE=
    set OP_CERT_LOCALITY=
    set OP_CERT_ORG=
    Apparement c'est de la génération de clé chiffrée et création d'autorité de certification, surement pour la mise en place d'un serveur (web?).

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 112
    Par défaut
    oui c ca .. j'utilise openssl ... mais pour que ca puisse fonctionner avec le logiciel de simulation OPNET, je dois utiliser ce script ... mais il faut que je le modifie pour qu'il puisse passser avec linux ... et je n'y comprends vraiment rien car je n'ai jamais écris de script....

  6. #6
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    ça vaudrait le coût de tout réécrire. Les goto c'est très laid. Et très incompréhensible, comme tu en fais l'expérience actuellement.

    Il faut savoir que la génération de certificats ssl auto certifiés, ne sont, par défaut, plus acceptés par firefox.

    Tu peux te documenter ici :
    http://www.keliglia.com/categorie/divers/1993/
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 112
    Par défaut
    Bonjour,

    J'ai toujours un problème avec mon script.

    Voici mon script :

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
     #!/bin/bash
     
     
    # The information assigned to the environment variables below will be included
    # in the certificates generated by this script.
    #
     
    # The following environment variables should be assigned to valid values. This
    # script will not work with quotes in any of the following environment 
    # variables.
     
    ############################################################################
    # EDIT THE FOLLOWING LINES, WHICH CURRENTLY HAVE SAMPLE DEFAULTS.
    # CHANGE THE VALUES AFTER THE '=' SYMBOL TO REFLECT YOUR SPECIFIC ENVIRONMENT.
    #
    #############################################################################
     
    # Specify your country Specify your country [two letters only]
    set OP_CERT_COUNTRY=CA
     
    # Specify your state or province
    set OP_CERT_STATE=QC
     
    # Specify your city
    set OP_CERT_LOCALITY=Trois-Rivieres
     
    # Specify your company's name
    set OP_CERT_ORG=UQTR
     
    # This is the expiration for the CA and public certificates created by the CA; 
    # often will be 10 years or more.
    set OP_CERT_CA_DAYS=3650
     
    # This is the expiration for the Capture Manager certificates; might be 1 day,
    # 30 days, etc., depending on policy.
    set OP_CERT_CERT_DAYS=200
     
    ##########################################################
    # 
    # END OF LINES THAT YOU SHOULD EDIT.
    #
    ###########################################################
     
    #Test de l'alimentation des variables
     
    if  [[ " $OP_CERT_COUNTRY" ]] || [[ " $OP_CERT_STATE" ]] || [[ " $OP_CERT_LOCALITY " ]] || [[ " $OP_CERT_ORG"  ]] || [[ " $OP_CERT_CA_DAYS" ]] || [[ " $OP_CERT_CERT_DAYS" ]] ; then
            echo "op_cert: please edit the environment variables at the start of this script file"
           exit
     
    #Test de l'option du script
     
    function help()
    {
          echo "usage: op_cert command"
          echo "commands:"
          echo "dsaparam: generates DSA parameters"
          echo "gencakey: generates the certificate authority's private and public keys"
          echo "genmanager: generates the certificates used by the capture manager" 
          echo "help: displays this text"                                              
          echo "Certificate generation requires generating the DSA parameters first"
          echo "If the DSA parameter file (dsaparam.pem) already exists, there is no"
          echo "need to generate a new DSA parameter file"
     
         exit 1
    }
     
     
    function dsaparam()
    {
         /usr/local/ssl/bin/openssl dsaparam -outform PEM -out dsaparam.pem 1024
    }
     
     
    function gencakey()
    {
          echo "===================================================================================================================="
          echo "Generating the private and public keys for the certificate authority. This operation only needs to be done once."                             
          echo "Enter the same passphrase three times. This passphrase should be kept secure."
          echo "===================================================================================================================="
     
          echo "[ req ]" > openssl.cnf
          echo "default_bits = 1024" >> openssl.cnf
          echo "default_keyfile = privkey.pem" >> openssl.cnf
          echo "distinguished_name = req_distinguished_name" >> openssl.cnf
          echo "prompt = no" >> openssl.cnf
          echo "[ req_distinguished_name ]" >> openssl.cnf
          echo "C = $OP_CERT_COUNTRY" >> openssl.cnf
          echo "ST = $OP_CERT_STATE" >> openssl.cnf
          echo "L = $OP_CERT_LOCALITY" >> openssl.cnf
          echo "O = $OP_CERT_ORG" >> openssl.cnf
          echo "CN = CA" >> openssl.cnf
     
          /usr/local/ssl/bin/openssl req -config openssl.cnf -newkey dsa:dsaparam.pem -sha1 -keyout cakey.pem -outform PEM -out careq.pem
     
          /usr/local/ssl/bin/openssl x509 -req -inform PEM -in careq.pem -sha1 -signkey cakey.pem -outform PEM -out ca.pem -days $OP_CERT_CA_DAYS
     
          cp ca.pem cakey.pem casign.pem
          rm -f cakey.pem careq.pem
          echo "========================================================"
          echo "This certificate will expire in $OP_CERT_CA_DAYS days."
          echo "========================================================"
     
    function genmanager()
    {
         echo "==================================================================================================="
         echo "Generating the capture manager certificate."
         echo "Enter the user's passphrase twice, followed by the certificate authority's passphrase."
         echo "The user's passphrase is what he will type into ITGuru when opening the capture manager."
         echo "==================================================================================================="
     
         echo "[ req ]" > openssl.cnf
         echo "default_bits  = 1024" >> openssl.cnf
         echo "default_keyfile = privkey.pem" >> openssl.cnf
         echo "distinguished_name  = req_distinguished_name" >> openssl.cnf
         echo "prompt = no" >> openssl.cnf
         echo "[ req_distinguished_name ]" >> openssl.cnf
         echo "C  = $OP_CERT_COUNTRY" >> openssl.cnf
         echo "ST = $OP_CERT_STATE" >> openssl.cnf
         echo "L  = $OP_CERT_LOCALITY" >> openssl.cnf
         echo "O  = $OP_CERT_ORG" >> openssl.cnf
         # Note that CN ("Commmon Name") is chosed to be different to make sure the output cert.pem does not appear to be self-signed.
         echo "CN = manager certificate" >> openssl.cnf
     
          /usr/local/ssl/bin/openssl req -config openssl.cnf -newkey dsa:dsaparam.pem -sha1 -keyout managerkey.pem -outform PEM -out managerreq.pem
     
         /usr/local/ssl/bin/openssl x509 -req -inform PEM -in managerreq.pem -sha1 -CA casign.pem -CAkey casign.pem -CAcreateserial -outform PEM -out managercert.pem -days $OP_CERT_CERT_DAYS
     
         cp managercert.pem+managerkey.pem+ca.pem cert.pem
         rm managerkey.pem managerreq.pem managercert.pem casign.srl openssl.cnf
     
         echo " ==========================================================="
         echo " This certificate will expire in $OP_CERT_CERT_DAYS days."
         echo " ============================================================"
    }
    et voici ce que j'obtiens lorsque je l'execute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [root@li372 ssl]# ./op_cert.cnf 
    op_cert: please edit the environment variables at the start of this script file
    [root@li372 ssl]#
    est ce que mes fonctions ne seraient pas correctes ???

    Merci d'avance

  8. #8
    Membre chevronné Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur Unix/Linux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Par défaut
    Utilise la commande export au lieu de set pour définir tes variables d'environnement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. include() bloquant la lecture du script
    Par Kedrihan dans le forum Langage
    Réponses: 4
    Dernier message: 30/12/2013, 19h52
  2. Lecture automatique script Jquery Elegant Accordion
    Par azaroth dans le forum jQuery
    Réponses: 1
    Dernier message: 31/01/2013, 18h06
  3. [PHP 5.3] Page blanche - aucune lecture du script php
    Par websy dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2011, 18h08
  4. Réponses: 1
    Dernier message: 21/09/2006, 07h15
  5. [PHP-JS] pb lecture script php dans une fonction au démarrage
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/02/2005, 15h07

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