contrôler validité de mot de passe
Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

contrôler validité de mot de passe



  1. #1
    invite1bc1ddb5

    contrôler validité de mot de passe


    ------

    Bonjour à tous

    J'ai un projet en système d'exploitation à faire. Je vous donne l'idée générale : je dois développer un script (en ksh, csh ou sh) permettant de contrôler les délais de validité de mots de passe.
    Mon problème est que je fais peu d'informatique, donc je ne connais pas vraiment de sites traitant d'info .
    Sauriez-vous où je pourrais trouver des renseignements sur ce sujet?
    Merci d'avance

    -----

  2. #2
    Aneldo

    Re : contrôler validité de motdepasse

    Bonjour,

    tu as tout ici http://linux-kheops.com/doc/rootard/...d-7.html#ss7.9

    les comptes sont dans un fichiers /etc/passwd et les mots de passes dans un fichier /etc/shadow qui contient en plus la durée de validité des mots de passe.

    Il ne te reste qu'à parser le fichier shadow.

    Sinon, une bonne commaunauté de développeur : www.developpez.com avec le forum linux : http://developpez.net/forums/forumdisplay.php?f=17

  3. #3
    invite1bc1ddb5

    Re : contrôler validité de motdepasse

    Ok, merci Aneldo

  4. #4
    invite1bc1ddb5

    Re : contrôler validité de motdepasse

    Bonjour,

    j'ai une nouvelle question. Dans mon projet, je dois avertir les utilisateurs par mail toutes les semaines un mois avant la date d'expiration de validité du mot de passe.
    Sous Linux, dans le man, il est expliqué que l'on peut envoyer des mails d'avertissements grâce à la commande "mail" et des paramètres à fixer. Mais je ne sais pas comment les envoyer comme il m'est demandé...
    Si quelqu'un à une petite idée, merci d'avance

  5. A voir en vidéo sur Futura
  6. #5
    Aneldo

    Re : contrôler validité de motdepasse

    un petit man mail devrait etre un reflex

    sinon voici une solution :
    rediriger un flux vers la commande mail nom@fai.com -s "salut coco"
    "salut coco" c'est le sujet

    Et ou trouver ce flux?
    echo "texte aaa" est un flux : il contient "texte aaa" (sans les "".
    cat nom_de_fichier est un autre flux : le contenu du fichier nom_de_fichier.

    Et comment rediriger le flux?
    avec le caractere |

  7. #6
    invite1bc1ddb5

    Re : contrôler validité de motdepasse

    Merci, peux-tu m'expliquer ce qu'est un flux, dsl ?
    Je n'ai pas vu dans le man mail comment faire pour envoyer un mail par semaine, et c'est bien ça mon problème , mais j'ai peut-être mal regardé.

  8. #7
    Jean_Luc

    Re : contrôler validité de motdepasse

    Salut,

    Citation Envoyé par loulou40 Voir le message
    Je n'ai pas vu dans le man mail comment faire pour envoyer un mail par semaine, et c'est bien ça mon problème , mais j'ai peut-être mal regardé.
    Tu peux regarder du coté de la commande at mais le mieux je pense pour ton cas est quand même d'utiliser les crons, regarde la commande crontab.
    Tu peux facilement faire executer un script chaque Lundi par exemple :

    crontab -e puis
    Code:
    # Execute my_script chaque Lundi
    * * * * 1  /...script_path.../my_script
    L'Univers est fini. Ah bon déjà ?

  9. #8
    Aneldo

    Re : contrôler validité de motdepasse

    Oui en effet, la fonction mail ne sert qu'à envoyer le mail.
    Et pour programmer l'exécution d'un script, rien de tel que l'utilisation de la crontab.

    donc ++ pour la crontab : tu fais ton script, tu verifie qu'il fonctionne (attention à ne pas envoyé de mail à tous le monde par erreur) et tu programme l'exécution de ton script dans la crontab

    Merci, peux-tu m'expliquer ce qu'est un flux, dsl ?
    En fait ce n'est pas un flux (abus de langage, c'est la redirection de la sortie standard d'une commande vers l'entrée standard d'une autre.
    Par exemple
    cat eee.txt | grep ...
    redirigera le résultat de cat eee.txt commande grep.
    et on peu enchainer ces redirections : cmd1 | cmd2 | cmd3 ...
    Cela s'appel des pipes.
    Pour plus d'infos : http://www.linux-kheops.com/doc/redh...ing-pipes.html

  10. #9
    invite1bc1ddb5

    Re : contrôler validité de motdepasse

    ok, merci pour vos réponses, je vais peut-être y arriver cette fois-ci!

  11. #10
    invite1bc1ddb5

    Re : contrôler validité de motdepasse

    Citation Envoyé par Jean_Luc Voir le message
    Salut,
    Tu peux regarder du coté de la commande at mais le mieux je pense pour ton cas est quand même d'utiliser les crons, regarde la commande crontab.
    Tu peux facilement faire executer un script chaque Lundi par exemple :

    crontab -e puis
    Code:
    # Execute my_script chaque Lundi
    * * * * 1  /...script_path.../my_script
    Bonjour,
    j'ai lu "man crontab" mais il est pas expliqué comment envoyer un mail à une même date plusieurs fois.
    Je dois utiliser à la fois mail et crontab.
    Auriez-vous un autre exemple d'utilisation plus détaillé, je n'en trouve pas sur internet.
    Mreci d'avance

  12. #11
    Aneldo

    Re : contrôler validité de motdepasse

    1) tu fais un script qui analyse le shadow et qui envoie un mail à tous les utillisateurs dont le mot de passe n'est pas à jour.
    2) tu fais exécuter ton script par l'intermédiaire de la crantab tous les lundi par exemple.

    Et voila.

    Je dois utiliser à la fois mail et crontab?
    OUI

    cela répond à ta question?

  13. #12
    invite1bc1ddb5

    Re : contrôler validité de motdepasse

    Ok, merci. En fait, je viens de voir le prof qui a dit qu'il était possible de faire sans crontab, et effectivement, moi et mon binôme avons une nouvelle conception du script, donc on va essayer ça. Mais, je reviendrai sans doute pour de nouvelles questions...

  14. #13
    Jean_Luc

    Re : contrôler validité de motdepasse

    Citation Envoyé par loulou40 Voir le message
    Ok, merci. En fait, je viens de voir le prof qui a dit qu'il était possible de faire sans crontab, et effectivement, moi et mon binôme avons une nouvelle conception du script, donc on va essayer ça. Mais, je reviendrai sans doute pour de nouvelles questions...
    Oui, tu peux te passer de la crontab en utilisant sleep mais je trouve cette solution pas très propre.

    Code:
    #!/bin/sh
    while true
    do
      #Analyse du /etc/shadow et envoi des mails
      ... 
      #Attendre 1 semaine
      sleep 7d
    done
    L'Univers est fini. Ah bon déjà ?

  15. #14
    Aneldo

    Re : contrôler validité de motdepasse

    en effet, c'est pas propre

    du genre un admin qui passe : c'est quoi ce $£#~!§ de process et hop il le kill et plus de controle de validité de mot de passe.

    En plus il faudrait le relancer à chaque redémarage de la machine. (bon normalement il ne devrait pas y en avoir)

  16. #15
    invite1bc1ddb5

    Re : contrôler validité de motdepasse

    En fait, le prof nous a donné sur ma session Unix une liste d'utilisateurs (dont moi), qui a déjà un mot de passe dont la durée de validité est entamée, et c'est sur eux qu'on va travailler, donc on a pensé faire ainsi, en csh :
    on va faire la différence entre la date du jour et la date de validité du mot de passe de chacun des utilisateurs de la liste, et ce, à priori, tous les jours.
    dc si cette différence est =30, 23, 16, 9, 2, on va envoyer un mess pour prévenir l'utilisateur de l'expiration prochaine de son mot de passe.
    On va faire deux cas :
    - la date actuelle et la date d'expiration se trouve dans la même année
    - la date actuelle et la date d'expiration se trouve sur deux années différentes
    Pensez-vous que c'est une bonne solution?
    Bon, il va falloir qu'on suppose que tous les mois font 30 jours et faire attention car, comme on teste la validité tous les jours, il ne faudra pas être le 31!

    Mais on a deux problèmes :
    1) le prof nous a donné un programme qui permet d'obtenir la date d'expiration des mdp de chaque utilisateur, par ex : Thu Apr 19 13:56:27 2007. Dans ce cas, et dans le cas où l'on utilise l'option "date" pour avoir la date du jour, on veut les avoir en nombre de jour.
    Quand on récupère le jour et la date d'expiration avec le programme, on fait :
    cut -d " " -f5 user.expiration (pour le mois)
    cut -d " " -f6 user.expiration (pour le jour)
    mais on voudrait convertir le mois "Apr" en 4. Comment faire?

    2)Pour convertir le "19 Apr"par exemple en nombre de jours en utilisant "date", on fait :
    set x='date+" %m"
    set y='date+" %d"
    set dateexp=$x*30+$y
    mais ceci ne marche pas. Avez-vous une idée de la raison?

    Merci

  17. #16
    invite1bc1ddb5

    Re : contrôler validité de mot de passe

    Bonjour,
    ça y est, j'ai fait le programme, mais j'ai un problème pour convertir une chaîne de caracctères en entier.

    Code:
    #!/bin/sh
    
    let x=`date +%m`-1
    let j=30*$x+`date +%d`
    let y=`date +%G`
    
     
    for i in `cat listusers`
    
    do
    
    moiexp=`cut -d " " -f5 users/$i/$i.expiration`
    
    case $moiexp in
    
    Jan)   m=1;;
    Feb)   m=2;;
    Mar)   m=3;;
    Apr)   m=4;;
    May)   m=5;;
    Jun)   m=6;;
    Jul)   m=7;;
    Aug)   m=8;;
    Sep)   m=9;;
    Oct)   m=10;;
    Nov)   m=11;;
    Dec)   m=12;;
    
    esac
    
    jourexp=`cut -d " " -f6 users/$i/$i.expiration`
    anneexp=`cut -d " " -f9 users/$i/$i.expiration
    
    let m=$m-1
    
    let jexp=30*$m+$jourexp
    
    if [ $y -eq $anneexp ] 
    then let diff=$jexp-$j
    else let diff=360-$j+$jexp
    fi
    
    
    done
    donc le problème de la conversion est surtout là :
    Code:
    jourexp=`cut -d " " -f6 users/$i/$i.expiration`
    anneexp=`cut -d " " -f9 users/$i/$i.expiration
    
    let m=$m-1
    
    let jexp=30*$m+$jourexp
    
    if [ $y -eq $anneexp ] 
    then let diff=$jexp-$j
    else let diff=360-$j+$jexp
    Auriez-vous une idée de comment faire?

    Merci

  18. #17
    Jean_Luc

    Re : contrôler validité de mot de passe

    Salut,

    Déjà il manque un ` à la fin de la ligne suivante mais bon je ne pense pas que ce soit le probème.

    Code:
    anneexp=`cut -d " " -f9 users/$i/$i.expiration`
    Je pense que le problème vient en fait du cut. tu lui spécifies comme delimiter un espace or lorsque le jour est inférieur à 10, on trouve 2 espaces entre le mois et le jour et du coup ça décale tout. Là je crois qu'il va falloir utiliser awk. Essaye ça, ça devrait mieux marcher :

    Code:
    jourexp=`cat expiration | awk '{print $6}'`
    anneexp=`cat expiration | awk '{print $9}'`
    Après pour tester la validité tu peux faire comme ça:

    Code:
    if [ $diff -lt 0 ]
    then echo "Expired"
    else echo "OK"
    fi
    L'Univers est fini. Ah bon déjà ?

  19. #18
    invite1bc1ddb5

    Re : contrôler validité de mot de passe

    Ok, c'est bon, ça marche maintenant. J'avais en plus des problèmes dans les fichiers ...
    Merci

Discussions similaires

  1. mot de passe
    Par invitec5dc3e08 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 15/01/2004, 15h31
  2. about mot de passe
    Par invite8ebda540 dans le forum Électronique
    Réponses: 5
    Dernier message: 08/07/2003, 18h57
Découvrez nos comparatifs produits sur l'informatique et les technologies.