steffen: server/perl-kolab/Kolab-Conf Conf.pm,1.45,1.46
cvs at intevation.de
cvs at intevation.de
Mon Jan 3 13:45:33 CET 2005
Author: steffen
Update of /kolabrepository/server/perl-kolab/Kolab-Conf
In directory doto:/tmp/cvs-serv24281/Kolab-Conf
Modified Files:
Conf.pm
Log Message:
prepare for script for checking permissions on generated conf files
Index: Conf.pm
===================================================================
RCS file: /kolabrepository/server/perl-kolab/Kolab-Conf/Conf.pm,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- Conf.pm 15 Dec 2004 00:08:04 -0000 1.45
+++ Conf.pm 3 Jan 2005 12:45:31 -0000 1.46
@@ -4,7 +4,7 @@
## Copyright (c) 2004 Klaralvdalens Datakonsult AB
## Copyright (c) 2003 Code Fusion cc
##
-## Writen by Stuart Bingë <s.binge at codefusion.co.za>
+## Writen by Stuart Bing?<s.binge at codefusion.co.za>
## Portions based on work by the following people:
##
## (c) 2003 Tassilo Erlewein <tassilo.erlewein at erfrakon.de>
@@ -32,6 +32,7 @@
use IO::File;
use File::Copy;
use File::Temp;
+use File::stat;
use Kolab;
use Kolab::Util;
use Kolab::LDAP;
@@ -47,6 +48,7 @@
&buildCyrusGroups
&buildLDAPReplicas
&rebuildTemplates
+ &checkPermissions
%haschanged
) ]
);
@@ -552,82 +554,83 @@
}
+my $prefix = $Kolab::config{'prefix'};
+my $templatedir = "$prefix/etc/kolab/templates";
+
+my %templates = (
+ "$templatedir/session_vars.php.template" => "$prefix/var/kolab/php/admin/include/session_vars.php",
+ "$templatedir/clamd.conf.template" => "$prefix/etc/clamav/clamd.conf",
+ "$templatedir/freshclam.conf.template" => "$prefix/etc/clamav/freshclam.conf",
+ "$templatedir/amavisd.conf.template" => "$prefix/etc/amavisd/amavisd.conf",
+ "$templatedir/main.cf.template" => "$prefix/etc/postfix/main.cf",
+ "$templatedir/master.cf.template" => "$prefix/etc/postfix/master.cf",
+ "$templatedir/saslauthd.conf.template" => "$prefix/etc/sasl/saslauthd.conf",
+ "$templatedir/imapd.conf.template" => "$prefix/etc/imapd/imapd.conf",
+ "$templatedir/httpd.conf.template" => "$prefix/etc/apache/apache.conf",
+ "$templatedir/httpd.local.template" => "$prefix/etc/apache/apache.local",
+ "$templatedir/legacy.conf.template" => "$prefix/etc/apache/legacy.conf",
+ "$templatedir/php.ini.template" => "$prefix/etc/apache/php.ini",
+ "$templatedir/proftpd.conf.template" => "$prefix/etc/proftpd/proftpd.conf",
+ "$templatedir/ldap.conf.template" => "$prefix/etc/openldap/ldap.conf",
+ "$templatedir/slapd.conf.template" => "$prefix/etc/openldap/slapd.conf",
+ "$templatedir/freebusy.conf.template" => "$prefix/etc/resmgr/freebusy.conf",
+ "$templatedir/fbview.conf.template" => "$prefix/etc/resmgr/fbview.conf",
+ "$templatedir/resmgr.conf.template" => "$prefix/etc/resmgr/resmgr.conf"
+ );
+
+my %permissions = (
+ "$prefix/var/kolab/php/admin/include/session_vars.php" => 0640,
+ "$prefix/etc/resmgr/freebusy.conf" => 0640,
+ "$prefix/etc/resmgr/fbview.conf" => 0640,
+ "$prefix/etc/resmgr/resmgr.conf" => 0640,
+ "$prefix/etc/postfix/main.cf" => 0640,
+ "$prefix/etc/postfix/master.cf" => 0640,
+ "$prefix/etc/clamav/clamd.conf" => 0640,
+ "$prefix/etc/clamav/freshclam.conf" => 0640,
+ "$prefix/etc/amavisd/amavisd.conf" => 0640,
+ "$prefix/etc/sasl/saslauthd.conf" => 0600,
+ "$prefix/etc/imapd/imapd.conf" => 0640,
+ "$prefix/etc/apache/apache.conf" => 0640,
+ "$prefix/etc/apache/apache.local" => 0640,
+ "$prefix/etc/apache/legacy.conf" => 0640,
+ "$prefix/etc/apache/php.ini" => 0640,
+ "$prefix/etc/proftpd/proftpd.conf" => 0640,
+ "$prefix/etc/openldap/slapd.conf" => 0640,
+ "$prefix/etc/openldap/ldap.conf" => 0644,
+ "$prefix/etc/postfix/transport" => 0640,
+ "$prefix/etc/imapd/cyrus.conf" => 0640,
+ "$prefix/etc/imapd/imapd.group" => 0640);
+
+my %ownership = (
+ "$prefix/var/kolab/php/admin/include/session_vars.php" => "kolab:kolab-n",
+ "$prefix/etc/resmgr/freebusy.conf" => "kolab:kolab-n",
+ "$prefix/etc/resmgr/fbview.conf" => "kolab:kolab-n",
+ "$prefix/etc/resmgr/resmgr.conf" => "kolab:kolab-n",
+ "$prefix/etc/postfix/main.cf" => "kolab:kolab-r",
+ "$prefix/etc/postfix/master.cf" => "kolab:kolab-r",
+ "$prefix/etc/clamav/clamd.conf" => "kolab:kolab-r",
+ "$prefix/etc/clamav/freshclam.conf" => "kolab:kolab-r",
+ "$prefix/etc/amavisd/amavisd.conf" => "kolab:kolab-r",
+ "$prefix/etc/sasl/saslauthd.conf" => "kolab:kolab",
+ "$prefix/etc/imapd/imapd.conf" => "kolab:kolab-r",
+ "$prefix/etc/apache/apache.conf" => "kolab:kolab-n",
+ "$prefix/etc/apache/apache.local" => "kolab:kolab-n",
+ "$prefix/etc/apache/legacy.conf" => "kolab:kolab-n",
+ "$prefix/etc/apache/php.ini" => "kolab:kolab-n",
+ "$prefix/etc/proftpd/proftpd.conf" => "kolab:kolab-n",
+ "$prefix/etc/openldap/ldap.conf" => "kolab:kolab",
+ "$prefix/etc/openldap/slapd.conf" => "kolab:kolab",
+ "$prefix/etc/postfix/transport" => "root:kolab",
+ "$prefix/etc/imapd/cyrus.conf" => "kolab:kolab",
+ "$prefix/etc/imapd/imapd.group" => "kolab:kolab-r");
+
+
sub rebuildTemplates
{
my $key;
my $value;
my $section="";
- my $prefix = $Kolab::config{'prefix'};
- my $templatedir = "$prefix/etc/kolab/templates";
-
- my %templates = (
- "$templatedir/session_vars.php.template" => "$prefix/var/kolab/php/admin/include/session_vars.php",
- "$templatedir/clamd.conf.template" => "$prefix/etc/clamav/clamd.conf",
- "$templatedir/freshclam.conf.template" => "$prefix/etc/clamav/freshclam.conf",
- "$templatedir/amavisd.conf.template" => "$prefix/etc/amavisd/amavisd.conf",
- "$templatedir/main.cf.template" => "$prefix/etc/postfix/main.cf",
- "$templatedir/master.cf.template" => "$prefix/etc/postfix/master.cf",
- "$templatedir/saslauthd.conf.template" => "$prefix/etc/sasl/saslauthd.conf",
- "$templatedir/imapd.conf.template" => "$prefix/etc/imapd/imapd.conf",
- "$templatedir/httpd.conf.template" => "$prefix/etc/apache/apache.conf",
- "$templatedir/httpd.local.template" => "$prefix/etc/apache/apache.local",
- "$templatedir/legacy.conf.template" => "$prefix/etc/apache/legacy.conf",
- "$templatedir/php.ini.template" => "$prefix/etc/apache/php.ini",
- "$templatedir/proftpd.conf.template" => "$prefix/etc/proftpd/proftpd.conf",
- "$templatedir/ldap.conf.template" => "$prefix/etc/openldap/ldap.conf",
- "$templatedir/slapd.conf.template" => "$prefix/etc/openldap/slapd.conf",
- "$templatedir/freebusy.conf.template" => "$prefix/etc/resmgr/freebusy.conf",
- "$templatedir/fbview.conf.template" => "$prefix/etc/resmgr/fbview.conf",
- "$templatedir/resmgr.conf.template" => "$prefix/etc/resmgr/resmgr.conf"
- );
-
- my %permissions = (
- "$prefix/var/kolab/php/admin/include/session_vars.php" => 0640,
- "$prefix/etc/resmgr/freebusy.conf" => 0640,
- "$prefix/etc/resmgr/fbview.conf" => 0640,
- "$prefix/etc/resmgr/resmgr.conf" => 0640,
- "$prefix/etc/postfix/main.cf" => 0640,
- "$prefix/etc/postfix/master.cf" => 0640,
- "$prefix/etc/clamav/clamd.conf" => 0640,
- "$prefix/etc/clamav/freshclam.conf" => 0640,
- "$prefix/etc/amavisd/amavisd.conf" => 0640,
- "$prefix/etc/sasl/saslauthd.conf" => 0600,
- "$prefix/etc/imapd/imapd.conf" => 0640,
- "$prefix/etc/apache/apache.conf" => 0640,
- "$prefix/etc/apache/apache.local" => 0640,
- "$prefix/etc/apache/legacy.conf" => 0640,
- "$prefix/etc/apache/php.ini" => 0640,
- "$prefix/etc/proftpd/proftpd.conf" => 0640,
- "$prefix/etc/openldap/slapd.conf" => 0640,
- "$prefix/etc/openldap/ldap.conf" => 0644,
- "$prefix/etc/postfix/transport" => 0640,
- "$prefix/etc/imapd/cyrus.conf" => 0640,
- "$prefix/etc/imapd/imapd.group" => 0640);
-
- my %ownership = (
- "$prefix/var/kolab/php/admin/include/session_vars.php" => "kolab:kolab-n",
- "$prefix/etc/resmgr/freebusy.conf" => "kolab:kolab-n",
- "$prefix/etc/resmgr/fbview.conf" => "kolab:kolab-n",
- "$prefix/etc/resmgr/resmgr.conf" => "kolab:kolab-n",
- "$prefix/etc/postfix/main.cf" => "kolab:kolab-r",
- "$prefix/etc/postfix/master.cf" => "kolab:kolab-r",
- "$prefix/etc/clamav/clamd.conf" => "kolab:kolab-r",
- "$prefix/etc/clamav/freshclam.conf" => "kolab:kolab-r",
- "$prefix/etc/amavisd/amavisd.conf" => "kolab:kolab-r",
- "$prefix/etc/sasl/saslauthd.conf" => "kolab:kolab",
- "$prefix/etc/imapd/imapd.conf" => "kolab:kolab-r",
- "$prefix/etc/apache/apache.conf" => "kolab:kolab-n",
- "$prefix/etc/apache/apache.local" => "kolab:kolab-n",
- "$prefix/etc/apache/legacy.conf" => "kolab:kolab-n",
- "$prefix/etc/apache/php.ini" => "kolab:kolab-n",
- "$prefix/etc/proftpd/proftpd.conf" => "kolab:kolab-n",
- "$prefix/etc/openldap/ldap.conf" => "kolab:kolab",
- "$prefix/etc/openldap/slapd.conf" => "kolab:kolab",
- "$prefix/etc/postfix/transport" => "root:kolab",
- "$prefix/etc/imapd/cyrus.conf" => "kolab:kolab",
- "$prefix/etc/imapd/imapd.group" => "kolab:kolab-r");
-
Kolab::log('T', 'Regenerating configuration files', KOLAB_DEBUG );
@@ -646,6 +649,33 @@
Kolab::log('T', 'Finished regenerating configuration files', KOLAB_DEBUG );
}
+sub checkPermissions {
+ my $key;
+ my $value;
+
+ Kolab::log('T', 'Checking generated config file permissions and ownership', KOLAB_DEBUG );
+
+ loadMetaTemplates( $templatedir, \%templates, \%permissions, \%ownership );
+
+ my $ok = 1;
+
+ foreach $key (keys %templates) {
+ my $tpl = $templates{$key};
+ my $st = stat($tpl);
+ my $owner = getpwuid($st->uid).':'.getgrgid($st->gid);
+ if( ( ($st->mode & 07777) != $permissions{$tpl}) ||
+ ($owner ne $ownership{$tpl}) ) {
+ my $str = 'File '.$tpl.' has the wrong persmissions/owner. Found '
+ .sprintf("%lo", $st->mode&07777).' '.$owner.', expected '
+ .sprintf("%lo",$permissions{$tpl}).' '.$ownership{$tpl};
+ print( "$str\n" );
+ Kolab::log('T', $str, KOLAB_ERROR );
+ $ok = 0;
+ }
+ }
+ return $ok;
+}
+
1;
__END__
# Below is stub documentation for your module. You'd better edit it!
@@ -661,7 +691,7 @@
=head1 AUTHOR
-Stuart Bingë, E<lt>s.binge at codefusion.co.zaE<gt>
+Stuart Bingë¬ E<lt>s.binge at codefusion.co.zaE<gt>
=head1 COPYRIGHT AND LICENSE
More information about the commits
mailing list