#1 Le 01/03/2010, à 11:16
- survietamine
[RESOLU] vérification d'un mot de passe dans un script
bonjour,
dans notre boite, il y a un turn-over assez élevé.
Nous utilisons des comptes NIS avec montage de leurs homes sur un partage NFS.
La création/modification des comptes NIS est basée sur la commande yppasswd (si vous connaissez un autre moyen, ça m'intéresse).
A chaque fois qu'on lance cette commande (yppasswd) en tant que root, elle nous redemande le mot de passe root !
J'ai alors écrit un script expect qui permet d'automatiser cette phase en fournissant en argument le mot de passe root, le nom du compte utilisateur NIS et son mot de passe, ça fonctionne.
Je ne suis pas une lumière en langage expect et plus à l'aise avec bash.
C'est pourquoi, je crée un autre script .sh s'occupant de la création du compte système et appelle ensuite le script expect pour la partie NIS.
Comme c'est mal de stocker un mot de passe (surtout celui du root), je le demande via un echo / read.
Ma question est si l'utilisateur tape un mauvais mot de passe, je dois interrompre le script.
Savez vous comment je peux faire pour vérifier que le mot de passe saisi est OK ?
Je vois bien qu'en tant que simple utilisateur, en tapant un mauvais mot de passe à la suite de : su ; echo $?
J'ai bien un code retour 1.
Mais comment faire si je suis déjà root ?
Merci pour vos éclairages.
Dernière modification par survietamine (Le 01/03/2010, à 19:12)
Ðɸ Ƴơц ℕεєđ Şø₥€ √іêŤąɱίɳƸʂ ?
Hors ligne
#2 Le 01/03/2010, à 12:45
- credenhill
Re : [RESOLU] vérification d'un mot de passe dans un script
hello
tu peux te mettre en utilisateur non root et faire su pour vérifier le mot de passe
su daemon -c "su;id"
Hors ligne
#3 Le 01/03/2010, à 15:12
- survietamine
Re : [RESOLU] vérification d'un mot de passe dans un script
merci pour ta réponse.
J'ai essayé la solution du su récursif, mais j'ai un hic :
[root@mybox ~]# rootPassword='monMotDePasse'
[root@mybox ~]# su daemon -c "echo $rootPassword | su;id"
Vous devez changer votre mot de passe immédiatement (imposé par root)
Changement du mot de passe pour daemon.
Mot de passe UNIX (actuel) :
J'ai également essayé avec des parenthèses autour de la commande et avec ou sans le dollar devant, je n'obtiens pas de résultat satisfaisant.
Ðɸ Ƴơц ℕεєđ Şø₥€ √іêŤąɱίɳƸʂ ?
Hors ligne
#4 Le 01/03/2010, à 15:44
- credenhill
Re : [RESOLU] vérification d'un mot de passe dans un script
echo pass¦su ne marchera pas, il faudrait utiliser expect
avec un serveur NIS, ce que je faisais, j'éditais /etc/passwd sur le serveur avec edit ou sed et j'exécutais make pour propager les modifs., sachant que tous les comptes étaient centralisés sur le /etc/passwd du master NIS
Hors ligne
#5 Le 01/03/2010, à 15:55
- survietamine
Re : [RESOLU] vérification d'un mot de passe dans un script
oui, j'ai relu, apparemment, su ne supporte pas d'être inclus dans un script (normal) et il y a sudo.
Tu dis qu'en ajoutant des utilisateurs locaux sur le master et ensuite en faisant un make dans /var/yp ça revient au même ?
Zut, chuis vraiment nul, j'vais essayer ça.
Ðɸ Ƴơц ℕεєđ Şø₥€ √іêŤąɱίɳƸʂ ?
Hors ligne
#6 Le 01/03/2010, à 16:10
- credenhill
Re : [RESOLU] vérification d'un mot de passe dans un script
sur le master, en root, je faisais passwd <user>, cd /var/yp, make
la plupart des commandes qui nécessitent un mot de passe ne l'accepte pas depuis le standard input
Hors ligne
#7 Le 01/03/2010, à 19:10
- survietamine
Re : [RESOLU] vérification d'un mot de passe dans un script
oui, c'est vrai, j'connais que chpasswd qui accepte en stdin
Merci credenhill pour les tuyaux.
Ðɸ Ƴơц ℕεєđ Şø₥€ √іêŤąɱίɳƸʂ ?
Hors ligne