Forum Programmation.shell Changer de mot de passe dans un script

Posté par  (site web personnel) .
Étiquettes : aucune
0
2
août
2007
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  . Évalué à 1.

    Un script expect qui fonctionne en root :

    #!/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  (site web personnel, Mastodon) . Évalué à 4.

    echo utilisateur:mot_de_passe | chpasswd
    Par contre le mot de passe doit être en clair, ce qui n'est pas top.
  • # Si, ça marche avec expect !

    Posté par  . Évalué à 1.

    Mais je reconnais avoir un peu galéré pour trouver :-)

    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  (site web personnel) . Évalué à 1.

    si ton script est root, tu peux regarder du coté de chpasswd

    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.