Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 01/03/2010, à 12: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, à 20:12)


Ðɸ Ƴơц ℕεєđ Şø₥€ √іêŤąɱίɳƸʂ ?

Hors ligne

#2 Le 01/03/2010, à 13: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, à 16: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, à 16: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, à 16: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, à 17: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, à 20: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

Haut de page ↑