Mon, 20 Apr 2009 19:22:00 +0200
Change unfortunate but partly useful overreaching security tradeoff.
The principle of allocating each running process an individual system
user and group can have security benefits, however maintining a plethora
of users, groups, processes, file modes, file permissions, and even
nonportable file ACLs on a host serving from a hundred processes has
some security disadvantages. This tradeoff is even worse for systems
like OpenPKG which benefit from administration transparency through the
use of minimal system intrusion and only three usage privilege levels.
1 This patch makes Pflogsumm working with the particular format
2 of the OSSP fsl based Postfix logfile and additionally allows
3 one to specify a more flexible data format.
5 Index: pflogsumm.1
6 --- pflogsumm.1.orig 2007-04-06 16:11:28 +0200
7 +++ pflogsumm.1 2007-04-06 17:35:12 +0200
8 @@ -172,6 +172,8 @@
9 .Vb 2
10 \& -d today generate report for just today
11 \& -d yesterday generate report for just "yesterday"
12 +\& -d YYYY-MM-DD generate report for just "YYYY-MM-DD"
13 +\& (Really takes string Date::Parse will handle)
14 .Ve
15 .PP
16 .Vb 1
17 Index: pflogsumm.pl
18 --- pflogsumm.pl.orig 2008-06-29 15:46:01 +0200
19 +++ pflogsumm.pl 2008-06-29 19:39:07 +0200
20 @@ -10,7 +10,7 @@
22 =head1 SYNOPSIS
24 - pflogsumm.pl -[eq] [-d <today|yesterday>] [-h <cnt>] [-u <cnt>]
25 + pflogsumm.pl -[eq] [-d <today|yesterday|YYYY-MM-DD>] [-h <cnt>] [-u <cnt>]
26 [--verp_mung[=<n>]] [--verbose_msg_detail] [--iso_date_time]
27 [-m|--uucp_mung] [-i|--ignore_case] [--smtpd_stats] [--mailq]
28 [--problems_first] [--rej_add_from] [--no_bounce_detail]
29 @@ -37,6 +37,9 @@
31 -d today generate report for just today
32 -d yesterday generate report for just "yesterday"
33 + -d YYYY-MM-DD generate report for just "YYYY-MM-DD"
34 + (Actually this will take any date string
35 + parsable by the perl Date::Parse module)
37 -e extended (extreme? excessive?) detail
39 @@ -359,6 +362,7 @@
40 use strict;
41 use locale;
42 use Getopt::Long;
43 +use Date::Parse;
44 eval { require Date::Calc };
45 my $hasDateCalc = $@ ? 0 : 1;
47 @@ -542,8 +546,8 @@
48 my $logRmdr;
49 next unless((($msgMonStr, $msgDay, $msgHr, $msgMin, $msgSec, $logRmdr) =
50 /^(...) +(\d+) (..):(..):(..) \S+ (.+)$/o) == 6);
51 - unless((($cmd, $qid) = $logRmdr =~ m#^(?:postfix|$syslogName)/([^\[:]*).*?: ([^:\s]+)#o) == 2 ||
52 - (($cmd, $qid) = $logRmdr =~ m#^((?:postfix)(?:-script)?)(?:\[\d+\])?: ([^:\s]+)#o) == 2)
53 + unless((($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+(?:postfix|$syslogName)/([^\[:]*).*?: ([^:\s]+)#o) == 2 ||
54 + (($cmd, $qid) = $logRmdr =~ m#^<[a-z]+>\s+((?:postfix)(?:-script)?)(?:\[\d+\])?: ([^:\s]+)#o) == 2)
55 {
56 #print UNPROCD "$_";
57 next;
58 @@ -1406,11 +1410,11 @@
59 # Back up to yesterday
60 $time -= ((localtime($time))[2] + 2) * 3600;
61 } elsif($dateOpt ne "today") {
62 - die "$usageMsg\n";
63 + $time = str2time($dateOpt);
64 }
65 my ($t_mday, $t_mon) = (localtime($time))[3,4];
67 - return sprintf("%s %2d", $monthNames[$t_mon], $t_mday);
68 + return sprintf("%s %02d", $monthNames[$t_mon], $t_mday);
69 }
71 # if there's a real domain: uses that. Otherwise uses the IP addr.