Mysql modifier mot de passe dans console non en clair

Résolu/Fermé
lenainjaune Messages postés 690 Date d'inscription mercredi 7 mai 2008 Statut Contributeur Dernière intervention 22 décembre 2024 - 16 juil. 2015 à 09:45
lenainjaune Messages postés 690 Date d'inscription mercredi 7 mai 2008 Statut Contributeur Dernière intervention 22 décembre 2024 - 17 juil. 2015 à 08:45
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
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
16 juil. 2015 à 09:59
Salut,

Te faire un script (batch ou bash) qui te demande le mot de passe sans afficher l'echo ?
0
lenainjaune Messages postés 690 Date d'inscription mercredi 7 mai 2008 Statut Contributeur Dernière intervention 22 décembre 2024 54
16 juil. 2015 à 10:35
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
lenainjaune Messages postés 690 Date d'inscription mercredi 7 mai 2008 Statut Contributeur Dernière intervention 22 décembre 2024 54
Modifié par lenainjaune le 16/07/2015 à 22:59
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419 > lenainjaune Messages postés 690 Date d'inscription mercredi 7 mai 2008 Statut Contributeur Dernière intervention 22 décembre 2024
17 juil. 2015 à 07:23
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
lenainjaune Messages postés 690 Date d'inscription mercredi 7 mai 2008 Statut Contributeur Dernière intervention 22 décembre 2024 54
17 juil. 2015 à 08:15
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419 > lenainjaune Messages postés 690 Date d'inscription mercredi 7 mai 2008 Statut Contributeur Dernière intervention 22 décembre 2024
17 juil. 2015 à 08:32
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