Mysql modifier mot de passe dans console non en clair [Résolu/Fermé]

Signaler
Messages postés
432
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
1 avril 2021
-
Messages postés
432
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
1 avril 2021
-
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

Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 095
Salut,

Te faire un script (batch ou bash) qui te demande le mot de passe sans afficher l'echo ?
Messages postés
432
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
1 avril 2021
41
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

Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 095 >
Messages postés
432
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
1 avril 2021

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
Messages postés
432
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
1 avril 2021
41
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 ?
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 095 >
Messages postés
432
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
1 avril 2021

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 ;-(
Messages postés
432
Date d'inscription
mercredi 7 mai 2008
Statut
Contributeur
Dernière intervention
1 avril 2021
41
Pas de problème, j'ai appris la commande stty, c'est plutôt pas mal :)

Aussi, je suis tombé sur ça qui confirme que stty -echo est POSIX : https://stackoverflow.com/questions/3980668/how-to-get-a-password-from-a-shell-script-without-echoing