Ich überlege (noch immer) wie ich aus einer Textdatei, die nach
einem Virenscan entstanden ist, alle Dateien lösche, die in
/var/spool/news sind und kritisch betrachtet wurden.
Das Log sieht etwa so aus:
/var/spool/news/message.id/965/
Hallo, Am Tue, 27 Jan 2004, Al Bogner schrieb:
Ich überlege (noch immer) wie ich aus einer Textdatei, die nach einem Virenscan entstanden ist, alle Dateien lösche, die in /var/spool/news sind und kritisch betrachtet wurden.
Das Log sieht etwa so aus:
/var/spool/news/message.id/965/
->bputkelv.exe could be infected with an unknown virus (bis hier 1 Zeile) /var/spool/news/at/linux/3724->bputkelv.exe could be infected with an unknown virus (bis hier wieder 1 Zeile) Die Datei ergibt sich also aus dem Anfang der Zeile bis "->" oder durch bestimmte strings wie zB "could be infected with an unknown virus", weiters ist noch <, > und eventuell noch anderen Sonderzeichen im Dateinamen ein \ voranzustellen.
Wegen Sicherheitsproblemen verwende ich gleich perl, und nicht awk:
====
#!/usr/bin/perl -w
use strict;
my $LOG = "/var/log/av_newsclean.log";
open(LOG, ">>$LOG") or die "open($LOG): $!";
while(<DATA>) {
### Regex ggfs. anpassen!!!
if( /infected/ ) {
my($file, $reason) = split("->");
### logging ggfs. anpassen:
print LOG "file:\n\t", $file,
"\nwill be deleted because of:\n\t", $reason;
### und weg damit
unlink($file) or print LOG "cannot unlink $file: $!\n";
}
}
close(LOG);
__DATA__
/var/spool/news/message.id/965/
Am Mittwoch, 28. Januar 2004 02:01 schrieb David Haller:
Am Tue, 27 Jan 2004, Al Bogner schrieb:
Ich überlege (noch immer) wie ich aus einer Textdatei, die nach einem Virenscan entstanden ist, alle Dateien lösche, die in /var/spool/news sind und kritisch betrachtet wurden.
Das Log sieht etwa so aus:
/var/spool/news/message.id/965/
->bputkelv.exe could be infected with an unknown virus (bis hier 1 Zeile) /var/spool/news/at/linux/3724->bputkelv.exe could be infected with an unknown virus (bis hier wieder 1 Zeile) Die Datei ergibt sich also aus dem Anfang der Zeile bis "->" oder durch bestimmte strings wie zB "could be infected with an unknown virus", weiters ist noch <, > und eventuell noch anderen Sonderzeichen im Dateinamen ein \ voranzustellen.
Wegen Sicherheitsproblemen verwende ich gleich perl, und nicht awk:
Wo siehst du ein Sicherheitsproblem? Al PS: email-Adresse geändert!
Hallo, Am Wed, 28 Jan 2004, Al Bogner schrieb:
Am Mittwoch, 28. Januar 2004 02:01 schrieb David Haller: [..]
Wegen Sicherheitsproblemen verwende ich gleich perl, und nicht awk:
Wo siehst du ein Sicherheitsproblem?
Du bekommst die Dateinamen von aussen... Nun denk dir ';', Leerzeichen oder Zeilenumbrueche im Dateinamen... system("rm \"foo /\"")... Was bekommt 'rm' da zu sehen? Und jetzt denk dir nen " im Dateinamen... Mit perl und dem _internen_ unlink von Perl hat man das Problem nicht. -dnh -- XSLT ist ungefähr so wichtig und brauchbar wie die österreichische berittene Gebirgsmarine. -- fefe
participants (3)
-
Al Bogner
-
Al Bogner
-
David Haller