[CLI Wiki] page changée : scripts:exemples:purges
Une page dans votre Wiki a été ajoutée ou modifiée. Voici les détails : Date : 2007/01/27 16:12 Navigateur : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.9) Gecko/20070102 Ubuntu/dapper-security Firefox/1.5.0.9 Adresse IP : 82.225.60.98 Nom d'hôte : cxr69-3-82-225-60-98.fbx.proxad.net Ancienne révision : http://cli.asyd.net/home/scripts/exemples/purges?rev=1169907760 Nouvelle révision : http://cli.asyd.net/home/scripts/exemples/purges Résumé : ajout script de purge postfix Utilisateur : lois @@ -28,8 +28,49 @@ echo "ok" >> /var/log/vider_lp.log done </code> - ===== Purge des deffered postfix ===== + ===== Purge des deferred postfix ===== - TODO + <code bash> + #!/bin/sh + # (c) 2005 Smeï & Loïs + # + # Purge les mails de MAILER-DAEMON en deferred, avec un score SpamAssassin + # + TMPFILE=/tmp/clean.queue.$$ + DEFERDIR=/var/spool/postfix/deferred + + test -e /usr/sbin/postqueue && { + echo "=====================================" + echo "Début Purge deferred" + echo + echo "Mail dans la queue avant : " + postqueue -p | tail -1 + + # collect the filenames + mailq | grep MAILER-DAEMON | cut -f1 -d ' ' | grep -v *$ > $TMPFILE + # mailq | grep bounces@listes | cut -f1 -d ' ' | grep -v *$ > $TMPFILE + + for DEFERFILE in `cat $TMPFILE` + do + FILEPATH=`find $DEFERDIR -name $DEFERFILE` + egrep -i 'X-Spam-Status: Yes' $FILEPATH > /dev/null + if [ $? -eq 0 ] + then + echo -n "." + # deferred message is most likely spam + postsuper -d $DEFERFILE deferred > /dev/null 2>&1 + fi + done + + rm -f $TMPFILE > /dev/null + echo + echo "Mail dans la queue après :" + postqueue -p | tail -1 + echo + echo "Fin Purge deferred" + echo "=====================================" + } + exit 0 + </code> -- Ce message a été généré par DokuWiki http://cli.asyd.net/home/
On 2007-01-27 16:12:53 +0100, noreply@asyd.net wrote:
+ <code bash> + #!/bin/sh + # (c) 2005 Smeï & Loïs + # + # Purge les mails de MAILER-DAEMON en deferred, avec un score SpamAssassin + # + TMPFILE=/tmp/clean.queue.$$ + DEFERDIR=/var/spool/postfix/deferred + + test -e /usr/sbin/postqueue && { + echo "=====================================" + echo "Début Purge deferred" + echo + echo "Mail dans la queue avant : " + postqueue -p | tail -1 + + # collect the filenames + mailq | grep MAILER-DAEMON | cut -f1 -d ' ' | grep -v *$ > $TMPFILE
Le *$ n'a, me semble-t-il, aucun sens, ou alors c'est un bashisme qu'il faut éviter. D'autre part, ce script contient un énorme trou de sécurité: le fichier $TMPFILE peut exister déjà et être protégé contre l'écriture (e.g. création d'un certain nombre de fichiers par un utilisateur mal intentionné), si bien que la redirection échoue, mais comme le script continue, un utilisateur lambda peut peut-être en prendre le contrôle avec des caractères spéciaux dans le fichier $TMPFILE.
+ # mailq | grep bounces@listes | cut -f1 -d ' ' | grep -v *$ > $TMPFILE + + for DEFERFILE in `cat $TMPFILE` + do + FILEPATH=`find $DEFERDIR -name $DEFERFILE` [...]
Ici l'utilisateur mal intentionné contrôle ce que contient $DEFERFILE. Vu que la commande find peut exécuter des commandes (option -exec), je pense que ce trou de sécurité est bien exploitable. -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
participants (2)
-
noreply@asyd.net
-
Vincent Lefevre