#1 Le 19/07/2012, à 20:06
- Arfghl
Execution lors d'une erreur de login
Bonsoir,
Je souhaiterais executer un script bash lorsque l'utilisateur se trompe de mot de passe lorsqu'il souhaite se logguer.
Je n'ai pas trouvé d'option possible à l'aide de crontab pour réaliser ceci et je ne vois pas vraiment comment capturer l'évènement "erreur de login".
Si vous avez des idées je suis preneur
Bonne soirée
Hors ligne
#2 Le 19/07/2012, à 20:37
- Spitfire 95
Re : Execution lors d'une erreur de login
Regarde les codes du sudo tu trouveras peut-être quelque chose du coté de l'option insults du sudoers.
Trisquel GNU/Linux 6.0 / Fedora 19 & rawhide.
joueur ryzom et wesnoth
Développeur livewallpaper
Membre déserteur et traître de la brigade des S.
Hors ligne
#3 Le 19/07/2012, à 20:38
- Haleth
Re : Execution lors d'une erreur de login
Si c'est avec sudo, tu peux vérifier le code de retour ($?)
Si c'est plus général, regarde PAM
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#4 Le 19/07/2012, à 20:41
- Spitfire 95
Re : Execution lors d'une erreur de login
Si c'est avec sudo, tu peux vérifier le code de retour ($?)
Après les trois essais de mot de passe, $? retournera normalement l'erreur. Mais si on veut relever l'erreur si on se trompe à un essai, je doute qu'on puisse en tirer quelque chose.
Trisquel GNU/Linux 6.0 / Fedora 19 & rawhide.
joueur ryzom et wesnoth
Développeur livewallpaper
Membre déserteur et traître de la brigade des S.
Hors ligne
#5 Le 19/07/2012, à 20:53
- Arfghl
Re : Execution lors d'une erreur de login
Je ne connaissais pas insults de sudoers, c'est assez désopilant
Mais apparemment les insultes sont codées en dur dans l'executable
Du coup executer un autre quelconque script me semble quelque peu difficile non ?
Hors ligne
#6 Le 19/07/2012, à 23:42
- nesthib
Re : Execution lors d'une erreur de login
Alors ce que tu cherches à faire, si tu parles bien de la connexion d'un utilisateur (login) et non de l'augmentation de privilèges (via sudo), n'a rien à voir avec avec sudo et encore moins avec crontab.
Les connexions échouées sont notifiées dans /var/log/auth.log, dont tu peux suivre l'évolution avec :
tail -f /var/log/auth.log
lors d'une erreur de connexion, tu devrais voir apparaître une ligne du style :
date … FAILED LOGIN (1) on '…' FOR '…', Authentication failure
un exemple rapide :
while read line;
do
grep -q 'FAILED LOGIN' && echo 'attention connexion échouée'
done < <(tail -n0 -f /var/log/auth.log)
Dernière modification par nesthib (Le 19/07/2012, à 23:45)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#7 Le 19/07/2012, à 23:45
- Haleth
Re : Execution lors d'une erreur de login
Exec du code en fonction des logs, c'est une bonne idée
Tu peux regarder du coté d'inotify pour faire une attente passive sur le fichier
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#8 Le 19/07/2012, à 23:46
- nesthib
Re : Execution lors d'une erreur de login
j'ai ajouté un exemple de mise en œuvre ci dessus.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#9 Le 30/07/2012, à 17:39
- Arfghl
Re : Execution lors d'une erreur de login
Merci pour votre aide c'est exactement ce que je voulais.
Je ne connaissais pas l'existence de ce fichier de log
D'après ce que j'ai compris PAM est utilisé par LightDM lors d'une notification de login (Je suis sous Ubuntu12.04)
J'ai donc téléchargé les sources de PAM à cette adresse: http://linux-pam.org/library/
Et j'essaie de voir à quel moment PAM écrit dans le fichier /var/log/auth.log afin de le modifier
Ma démarche est-elle correcte ?
Hors ligne
#10 Le 30/07/2012, à 18:19
- nesthib
Re : Execution lors d'une erreur de login
Étant donné ce que tu cherches à faire au post #1, je ne vois pas ce que vient faire PAM et encore moins ses sources ici.
Si tu veux lancer un script en cas d'échec de connexion utilise l'exemple que je t'ai donné. Au lieu du « echo … » lance le script…
while read line;
do
if grep -q 'FAILED LOGIN' <<<${line}
then
utilisateur=$(sed "s/.* FOR '\([^']*\)'.*/\1/" <<<${line})
echo "attention connexion échouée pour ${utilisateur}"
echo "on lance une commande"
ma_commande avec des arguments et même que si je veux je peux utiliser la variable ${utilisateur}
fi
done < <(tail -n0 -f /var/log/auth.log)
sinon, essaie de préciser ce que tu cherches à faire.
NB. utilisateur contiendra UNKNOWN en cas de mauvais nom d'utilisateur, tu peux donc rajouter un test là dessus.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#11 Le 30/07/2012, à 18:38
- Arfghl
Re : Execution lors d'une erreur de login
Oui ton programme correspond à ce que je souhaiterais faire.
Il me resterait simplement qu'à l'executer à chaque modification du fichier /var/log/auth.log.
Mais j'aurais aimé aller plus loin en modifiant directement le programme qui écrit dans ce fichier auth.log en y incorporant mon script ?
Est-ce possible ?
Hors ligne
#12 Le 30/07/2012, à 19:05
- nesthib
Re : Execution lors d'une erreur de login
Je crois que tu ne fais pas bien attention et que tu n'as pas testé mon script… Il fait exactement ce que tu demandes dans ton dernier post, nul besoin de surveiller les modifications du fichier de log, c'est déjà ce qu'il fait. Pour t'en rendre compte je te suggère de le laisser tourner (enlève la ligne avec ma_commande) dans un terminal et de simuler des échecs de connexion en console (ctrl+alt+F1 ; ctrl+alt+F7 pour revenir en graphique).
Modifier le programme qui écrit dans le fichier de log est possible (tout est possible) mais c'est une extrêmement mauvaise idée, car tu risques de tout casser, d'introduire des bugs. De surcroît tu auras à recompiler ton binaire et c'est beaucoup moins portable qu'un simple script.
Maintenant, si quelque chose ne te conviens pas avec mon exemple, je te suggère d'expliquer précisément ce que tu cherches à faire (quel script veux-tu lancer en cas d'échec de connexion ? pourquoi ?) pour que l'on puisse t'aider au mieux.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#13 Le 30/07/2012, à 19:27
- Arfghl
Re : Execution lors d'une erreur de login
Ha désolé je n'avais en effet pas bien compris ton programme notamment l'option -f de tail x]
Je n'ai jamais recompiler un binaire et cela me semblait être une bonne occasion pour tester cela tout simplement
Je vais donc tester de ce pas
Hors ligne
#14 Le 30/07/2012, à 21:44
- nesthib
Re : Execution lors d'une erreur de login
Si tu veux compiler pour t'amuser et apprendre, je t'encourage à le faire. En revanche je maintiens qu'en pratique c'est une très mauvaise solution pour ce que tu cherches à faire
Pour récupérer les sources d'un paquet tu peux utiliser la commande « apt-get source … », ce qui sera préférable puisque tu auras aussi tout ce qu'il faut pour construire le paquet et installer ton programme proprement.
Afin de garder une cohérence dans ce fil, je te conseille (si tu estimes ton premier problème résolu) de modifier ton premier message pour ajouter [résolu] au début du titre et d'ouvrir un nouveau fil dans Développement et programmation. Si tu le souhaites tu peux mettre ici un lien vers le nouveau fil.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne