Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/09/2015, à 11:20

Boombastick

[SH] Comment changer le pass avec un script

Salut à tous !

Je doit faire un script qui change le password de root je m'explique :

Le script demande à l'utlisateur le nouveau mot de passe
Le script change le mot de passe de root à l'aide de passwd par exemple

Mais comme il faut confirmer une seconde fois le pass...

Quelqu'un à une idée ?

Hors ligne

#2 Le 07/09/2015, à 11:33

genma

Re : [SH] Comment changer le pass avec un script

Un script contenant

echo -e "new_password\nnew_password" | (passwd --stdin $USER) 

via http://ccm.net/faq/790-changing-password-via-a-script
changera le mot de passe en une ligne

Plus complexe mais plus sûr à adapter (via https://stackoverflow.com/questions/278 … via-script:

#!/bin/bash
echo "Please enter username:"
read username
echo "Please enter the new password:"
read -s password1
echo "Please repeat the new password:"
read -s password2

# Check both passwords match
if [ $password1 != $password2 ]; then
echo "Passwords do not match"
 exit    
fi

# Does User exist?
id $username &> /dev/null
if [ $? -eq 0 ]; then
echo "$username exists... changing password."
else
echo "$username does not exist - Password could not be updated for $username"; exit 
fi

# Change password
echo -e "$password1\n$password1" | passwd $username

Attention, très mauvaises idées :
- d'avoir un fichier avec un mot de passe root dedans.
- de faire le script ci dessus si tu ne le comprends pas.


"Lorsque tu as découvert le libre, tu sais que tu ne pourras plus jamais revenir en arrière".
Utilisateur d'Ubuntu depuis la version 4.10 !
Mon blog ?      https://blog.genma.fr
Mon twitter?     http://twitter.com/genma

Hors ligne

#3 Le 07/09/2015, à 12:09

Boombastick

Re : [SH] Comment changer le pass avec un script

Merci beaucoup j'ai pu avancer sur cette partie par contre je ne comprend pas pourquoi il me dit :

./pass.sh: ligne 30: erreur de syntaxe : fin de fichier prématurée

Voici mon .sh au cas où :

#!/bin/bash
echo "Nouveau mot de passe root : "
read -s PROOT1
echo "Confirmation du mot de passe : "
read -s PROOT2

if [ $PROOT1 != $PROOT2 ]; then
        echo "Les mots de passe ne correspondent pas."
else
        echo -e "$PROOT1\n$PROOT2" | passwd root


echo "Entrez le nom du user secondaire : "
read NUSER
id $NUSER &> /dev/null
if [ $? -eq 0 ]; then
        echo "$NUSER existe déjà."
else
        echo "Mot de passe de $NUSER : "
        read -s PUSER1
        echo "Confirmation du mot de passe : "
        read -s PUSER2
if [ $PUSER1 != $PUSER2 ]; then
        echo "Les mots de passe ne correspondent pas."
else
        useradd -M -s /bin/bash $NUSER
        echo -e "$PUSER1\n$PUSER2" | passwd $NUSER
exit 4
fi

Dernière modification par Boombastick (Le 07/09/2015, à 12:09)

Hors ligne

#4 Le 07/09/2015, à 12:48

nany

Re : [SH] Comment changer le pass avec un script

Bonjour,

le premier if n’est pas fermé, bash cherche la fin de cet if et finit par atteindre la dernière ligne d’où l’erreur fin de fichier prématurée : il faut mettre un fi à la ligne 11.

Hors ligne

#5 Le 07/09/2015, à 13:05

pingouinux

Re : [SH] Comment changer le pass avec un script

Bonjour,
L'avant-dernier if n'est pas fermé non plus.

Hors ligne

#6 Le 07/09/2015, à 13:14

tiramiseb

Re : [SH] Comment changer le pass avec un script

Salut,

N'oublions pas que c'est totalement nul du point de vue de la sécurité, notamment en raison de l'apparition du mot de passe dans le retour de "ps" ou de "top" si c'est exécuté au moment où le "echo" concerné est exécuté.

Pourquoi vouloir demander ce mot de passe alors que juste derrière tu exécutes la commande passwd ? Moi y'en a pas comprendre l'intérêt...

Hors ligne

#7 Le 07/09/2015, à 13:22

Boombastick

Re : [SH] Comment changer le pass avec un script

tiramiseb a écrit :

Salut,

N'oublions pas que c'est totalement nul du point de vue de la sécurité, notamment en raison de l'apparition du mot de passe dans le retour de "ps" ou de "top" si c'est exécuté au moment où le "echo" concerné est exécuté.

Pourquoi vouloir demander ce mot de passe alors que juste derrière tu exécutes la commande passwd ? Moi y'en a pas comprendre l'intérêt...

Je débute en programmation et forcement en premier lieux, je me tourne vers bash. Même si ce n'est pas à proprement parlé de la programmation, la logique est la même.

Que me conseil tu du coup comme alternative ?

Hors ligne

#8 Le 07/09/2015, à 13:25

tiramiseb

Re : [SH] Comment changer le pass avec un script

Que me conseil tu du coup comme alternative ?

Bah là ce que tu fais, c'est :

=> je demande le premier mot de passe
=> je demande le deuxième mot de passe
=> je donne les deux mots de passe à "passwd"

Tu ne fais aucun traitement entretemps...

Alors pourquoi ne pas directement exécuter passwd, en laissant l'utilisateur remplir les informations ?

(par ailleurs, l'argument "root" à "passwd" est inutile car quand on exécute "passwd" sans argument ça modifie le mot de passe de l'utilisateur courant... et le seul utilisateur à avoir le droit de modifier le mot de passe de root c'est root, donc c'est toujours l'utilisateur courant)

Hors ligne

#9 Le 07/09/2015, à 13:31

Boombastick

Re : [SH] Comment changer le pass avec un script

tiramiseb a écrit :

Que me conseil tu du coup comme alternative ?

Bah là ce que tu fais, c'est :

=> je demande le premier mot de passe
=> je demande le deuxième mot de passe
=> je donne les deux mots de passe à "passwd"

Tu ne fais aucun traitement entretemps...

Alors pourquoi ne pas directement exécuter passwd, en laissant l'utilisateur remplir les informations ?

(par ailleurs, l'argument "root" à "passwd" est inutile car quand on exécute "passwd" sans argument ça modifie le mot de passe de l'utilisateur courant... et le seul utilisateur à avoir le droit de modifier le mot de passe de root c'est root, donc c'est toujours l'utilisateur courant)

En ait je n'ai pas pu exécuter le script jusqu'au passwd. Effectivement, maintenant que le script done, je comprend mieux. Merci beaucoup à tous ! wink

Hors ligne

#10 Le 07/09/2015, à 13:34

Boombastick

Re : [SH] Comment changer le pass avec un script

Boombastick a écrit :
tiramiseb a écrit :

Que me conseil tu du coup comme alternative ?

Bah là ce que tu fais, c'est :

=> je demande le premier mot de passe
=> je demande le deuxième mot de passe
=> je donne les deux mots de passe à "passwd"

Tu ne fais aucun traitement entretemps...

Alors pourquoi ne pas directement exécuter passwd, en laissant l'utilisateur remplir les informations ?

(par ailleurs, l'argument "root" à "passwd" est inutile car quand on exécute "passwd" sans argument ça modifie le mot de passe de l'utilisateur courant... et le seul utilisateur à avoir le droit de modifier le mot de passe de root c'est root, donc c'est toujours l'utilisateur courant)

En fait je n'ai pas pu exécuter le script jusqu'au passwd. Effectivement, maintenant que le script done, je comprend mieux. Merci beaucoup à tous ! wink

Hors ligne

#11 Le 07/09/2015, à 13:38

Boombastick

Re : [SH] Comment changer le pass avec un script

Je vais passer le sujet en résolu, par contre juste une tite question tant que j'y suis :

Es ce qu'il y a un équivalent à pause de DOS ?
Juste histoire de stopper le script et attendre que le user presse une touche.
J'ai demandé sur 2 3 iRC mais à par me filer un script "minuteur"...

Hors ligne

#12 Le 07/09/2015, à 13:44

tiramiseb

Re : [SH] Comment changer le pass avec un script

Bah tu fais un "read" avec un nom de variable à la con :

read useless

Ah oui, au fait, plutôt que de faire un echo puis un read, tu peux utiliser l'argument "-p" de read...

Hors ligne

#13 Le 07/09/2015, à 13:44

pingouinux

Re : [SH] Comment changer le pass avec un script

Es ce qu'il y a un équivalent à pause de DOS ?

read

Hors ligne

#14 Le 07/09/2015, à 13:47

nany

Re : [SH] Comment changer le pass avec un script

read -n1 -r -p "Appuyer sur une touche pour continuer..." key

Hors ligne

#15 Le 07/09/2015, à 13:50

nesthib

Re : [SH] Comment changer le pass avec un script

Je rejoins tiramiseb à 100%, ce que tu cherches à faire est inutile et dangereux d'un point de vue sécurité (je te dis les choses franchement).

Quand on découvre le scripting, on a souvent tendance à faire des scripts inutiles, après on apprend directement à utiliser les bon outils wink

Changer le mot de passe d'un (ou plusieurs) utilisateurs :

chpasswd --crypt-method SHA512 <<<"username:password"

nul besoin d'un script qui moulinera pour rien wink


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#16 Le 07/09/2015, à 13:52

nany

Re : [SH] Comment changer le pass avec un script

nesthib a écrit :

Quand on découvre le scripting, on a souvent tendance à faire des scripts inutiles, après on apprend directement à utiliser les bon outils wink

+1

Et donc, par extension, +1 sur l’avis de tiramiseb.

Hors ligne

#17 Le 07/09/2015, à 14:01

Boombastick

Re : [SH] Comment changer le pass avec un script

nesthib a écrit :

Je rejoins tiramiseb à 100%, ce que tu cherches à faire est inutile et dangereux d'un point de vue sécurité (je te dis les choses franchement).

Quand on découvre le scripting, on a souvent tendance à faire des scripts inutiles, après on apprend directement à utiliser les bon outils wink

Changer le mot de passe d'un (ou plusieurs) utilisateurs :

chpasswd --crypt-method SHA512 <<<"username:password"

nul besoin d'un script qui moulinera pour rien wink

Par contre là le pass s'affiche à l'écran quand on le tape...je tatillonne mais si t'as l'arpète sur tes genoux...

Hors ligne

#18 Le 07/09/2015, à 17:54

nesthib

Re : [SH] Comment changer le pass avec un script

Si tu expliquais pourquoi tu cherches à faire ce genre de script ?

Soit tu es un administrateur système, tu sais ce que tu fais, tu peux changer les mots de passe à loisir et tu n'as personne derrière toi pour espionner et l'utilisation de chpasswd est appropriée.
Soit tu es un utilisateur lambda qui change parfois son mot de passe (quoique tu parles ici du mot de passe root, qui n'existe même pas sous Ubuntu par défaut), et tu devrais utiliser l'outil graphique ou passwd pour changer le mot de passe.
Soit tu cherches à faire autre chose, avec 99% de probabilité que ça soit pour une mauvaise raison, auquel cas tu devrais l'expliquer car ce que est mentionné plus haut n'a pas vraiment de sens.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne