Mysql modifier mot de passe dans console non en clair

Résolu
lenainjaune Messages postés 726 Date d'inscription   Statut Contributeur Dernière intervention   -  
lenainjaune Messages postés 726 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

Je me demande si c'est faisable, mais quelqu'un aurait-il une solution "propre" pour modifier un mot de passe depuis sa console, sans le saisir en clair (pour le cas où quelqu'un regarde par dessus l'épaule) ?

J'ai cherché, mais je n'ai point trouvé (sans doute, je ne suis pas bonne piste).

Cordialement,
lnj

--
J'ai des questions à toutes vos réponses. (Woody Allen)

1 réponse

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Te faire un script (batch ou bash) qui te demande le mot de passe sans afficher l'echo ?
    0
    1. lenainjaune Messages postés 726 Date d'inscription   Statut Contributeur Dernière intervention   62
       
      Salut,

      Pas bête, je n'y avais pas pensé. Je teste et fais un retour.

      Je cherchais une solution plus mysql friendly, mais bon
      0
    2. lenainjaune Messages postés 726 Date d'inscription   Statut Contributeur Dernière intervention   62
       
      OK ça marche et merci pour la piste ;)

      Pour ceux que ça intéressent, voici mon script bash (attention user ne peut être root, voir lien du bas) :

      [edit]De plus cette version simplifiée ne tient pas compte de l'hôte source. Donc attention, le même mot de passe sera affecté à tous les hôtes depuis lesquels l'utilisateur a les droits d'accès (le fameux : 'user_name'@'host_name') [/edit]

      #!/bin/bash

      # If we give arg1 it will become user
      if [ "$1" ] ; then
      user=$1
      else
      echo "usage: mysql_change_password <user>"
      echo "warning : user can not be root in this version"
      exit
      fi

      echo -n Old Password:
      read -s op
      echo

      echo -n New Password:
      read -s np1
      echo

      echo -n Confirm Password:
      read -s np2
      echo

      if [ $np1 != $np2 ] ; then
      echo "Error : passwords do not match !"
      exit
      fi

      mysql -u "$user" -p"$op" -e "SET PASSWORD=PASSWORD('$np1')"

      # If user is root see : https://www.howtoforge.com/setting-changing-resetting-mysql-root-passwords#recover-mysql-root-password

      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > lenainjaune Messages postés 726 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Merci du retour ;-)

      Par contre, comme tu voulais sécuriser l'entrée du mot de passe en clair, je pensais que tu mettrais en place autre chose à ce niveau là ;-\

      Voir dans la FAQ : Entrer secrètement un Mot de Passe en console
      0
    4. lenainjaune Messages postés 726 Date d'inscription   Statut Contributeur Dernière intervention   62
       
      Ben c'est bien ce que fait read -s, non ? En tout cas, la frappe n'est pas visible sur la sortie console.

      D'après ce que je viens de voir stty permet de gérer la console actuelle.

      Puisque tu as l'air de maîtriser, tu peux m'expliquer la différence fondamentale entre read -s et stty -echo ?

      C'est en rapport avec POSIX pour rendre le script "universel" ou bien il y a une différence fonctionnelle ?
      0
    5. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > lenainjaune Messages postés 726 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Oups désolé, je n'avais pas fait attention à cette option de
      read
      , qui du temps de l'astuce n'existait pas ;-\

      Désolé du dérangement ;-(
      0