Bonjour,
J'ai un script qui doit changer le mot de passe mais voila, je n'y arrive pas.
J'ai essayé plusieurs trucs :
echo "motdepasse" > newpass
echo "motdepasse" >> newpass
cat newpass | passwd
Marche pas.
avec passwd < newpass
Marche pas non plus.
Et enfin, j'ai tenté plusieurs scripts à base de expect trouvé sur le net mais :
Marche pas.
Est-ce que quelqu'un aurai un truc fonctionnel sous la main ?
Merci.
# Expect
Posté par mekare . Évalué à 1.
#!/usr/bin/expect
set USER [ lindex $argv 0 ]
set PASS [ lindex $argv 1 ]
spawn passwd $USER
expect "Enter new UNIX password:"
send "$PASS\r"
expect "Retype new UNIX password:"
send "$PASS\r"
Pour le lancer :
./ce_script ton_utilisateur nouveau_mot_de_passe
Il ne fonctionne qu'en root, puisque en tant qu'utilisateur normal, il te faudrait retaper ton mot de passe actuel !
# Solution:
Posté par liberforce (site web personnel) . Évalué à 4.
Par contre le mot de passe doit être en clair, ce qui n'est pas top.
[^] # Re: Solution:
Posté par Maxime (site web personnel) . Évalué à 0.
Merci beaucoup pour la commande.
Merci aux autres pour leurs réponses même si je n'ai pas testé.
[^] # Re: Solution:
Posté par liberforce (site web personnel) . Évalué à 3.
Merci à Céréale Killer: https://linuxfr.org/forums/10/21625.html
[^] # Re: Solution:
Posté par Maxime (site web personnel) . Évalué à 1.
# Si, ça marche avec expect !
Posté par zx81 . Évalué à 1.
Voici un exemple pour changer un mot de passe samba (depuis un script):
# "$" must be escaped or shell will think it is its variables...
cat <<EOF | expect -f - "$USER" "$PWD"
spawn smbldap-passwd [lindex \$argv 0]
set password [lindex \$argv 1]
expect "password:"
send "\$password\r"
expect "password:"
send "\$password\r"
expect eof
EOF
A adapter of course (commande lancée et prompts attendus) ...
# Changement de mdp
Posté par peck (site web personnel) . Évalué à 1.
Sinon tu n'as pas trop le choix, seul passwd est suid et a le droit de changer les mots de passe -> expect (a débugger si besoin).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.