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 :

sh -x : Empêcher l'affichage d'un mot de passe


Sujet :

Shell et commandes GNU

  1. #1
    Inscrit
    Profil pro
    aaaaa
    Inscrit en
    Novembre 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : aaaaa

    Informations forums :
    Inscription : Novembre 2006
    Messages : 178
    Points : 70
    Points
    70
    Par défaut sh -x : Empêcher l'affichage d'un mot de passe
    Bonsoir,

    J'ai créé un petit script Shell permettant de remplir ma base de données. Afin de ne pas écrire le mot de passe de la base en dur dedans, j'ai créé un fichier .properties que je charge au début du script, et dont j'utilise la propriété db_password :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/sh
    . /home/mdp.properties
    mysql -v --user=root --password=$db_password < init.sql
    Problème : lorsque Jenkins lance le job exécutant le script Shell, il l'exécute avec l'option -x, c'est-à-dire qu'il met dans la log toutes les lignes du shell, y compris le chargement de la base, avec mon mot de passe écrit en dur puisque le shell remplace la variable par sa valeur. Comment puis-je faire en sorte que ce mot de passe ne soit pas affiché dans la log du shell ?

    Merci d'avance pour vos réponses.

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Ceci devrait suffire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/sh
    . /home/mdp.properties
    set +x
    echo "mysql -v --user=root --password=xxxxxxxx" 1>&2
    mysql -v --user=root --password=$db_password < init.sql
    set -x
    ...
    ɹǝsn *sıɹɐlos*

  3. #3
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 280
    Points : 12 729
    Points
    12 729
    Par défaut
    Bonjour,

    La solution proposée par jlliagre devrait suffire pour le log, mais un simple ps du processus, permettrait aussi d'avoir le mot de passe.
    Pourquoi ne pas utiliser le fichier d'option (en général, pour les utilisateurs: ~/.my.cnf) qui est chargé par mysql ?
    Cordialement.

  4. #4
    Inscrit
    Profil pro
    aaaaa
    Inscrit en
    Novembre 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : aaaaa

    Informations forums :
    Inscription : Novembre 2006
    Messages : 178
    Points : 70
    Points
    70
    Par défaut
    Merci à vous deux ! Exactement ce que je cherchais !

    @disedorgue : Oui, c'est une possibilité. Cependant, je suis le seul à pouvoir accéder à la machine en SSH (mais pas le seul à pouvoir voir les logs Jenkins), donc le risque de voir le mot de passe avec ps peut être négligé. De plus, j'avais effectivement pensé à la possibilité de stocker le mot de passe dans my.cnf, mais mon souhait est de stocker ce mot de passe à un seul endroit, or mon fichier .properties est lu par d'autres scripts, donc je préfère qu'il ne soit stocké que là.

    Merci encore !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/01/2007, 15h06
  2. Empêcher l'arrêt système par mot de passe
    Par webrider dans le forum Administration système
    Réponses: 14
    Dernier message: 10/09/2006, 13h21
  3. [C#] Comment transformer le mot de passe à l'affichage ?
    Par new dotnet(c#) dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/08/2006, 19h39
  4. Réponses: 1
    Dernier message: 23/08/2006, 14h26
  5. [WebBRowser] Empécher l'affichage du texte de sécurité
    Par Rayek dans le forum Web & réseau
    Réponses: 2
    Dernier message: 07/04/2006, 09h06

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