Mysql modifier mot de passe dans console non en clair

Résolu/Fermé
lenainjaune
Messages postés
499
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
3 juillet 2022
- 16 juil. 2015 à 09:45
lenainjaune
Messages postés
499
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
3 juillet 2022
- 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

1 réponse

zipe31
Messages postés
36322
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 589
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
499
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
3 juillet 2022
43
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
499
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
3 juillet 2022
43
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
36322
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 589 > lenainjaune
Messages postés
499
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
3 juillet 2022

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
499
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
3 juillet 2022
43
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
36322
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 589 > lenainjaune
Messages postés
499
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
3 juillet 2022

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