#!/usr/bin/perl
use strict;
use warnings;

my $purge_time = 1201789811;
chmod( 0600, '/var/cpanel/accounting.log' );
chmod_dir_files( '/var/cpanel',            '\.accts$' );
chmod_dir_files( '/var/cpanel',            '(?<!hooks)\.db$' );
chmod_dir_files( '/var/cpanel',            'pass$' );
chmod_dir_files( '/usr/local/cpanel/logs', '.*' );
chmod( 0700, '/usr/local/cpanel/logs/cpbackup' );
chmod_dir_files( '/usr/local/cpanel/logs/cpbackup', '.*' );
chmod( 0700, '/usr/local/cpanel/logs/easy' );
chmod_dir_files( '/usr/local/cpanel/logs/easy', '.*' );
kill_old_files( '/usr/local/cpanel/logs/easy', $purge_time );
chmod( 0700, '/usr/local/cpanel/logs/easy/apache' );
chmod_dir_files( '/usr/local/cpanel/logs/easy/apache', '.*' );
kill_old_files( '/usr/local/cpanel/logs/easy/apache', $purge_time );
chmod( 0644, '/var/cpanel/cpanel.config' );
system 'chown', 'root:wheel', '/var/cpanel/cpanel.config';

# Default perm 600, after change to root:wheel ownership this was a problem
if ( getpwnam('cpanelhorde') ) {
    system 'chgrp', 'cpanelhorde', '/usr/local/cpanel/base/horde/turba/config/mime_drivers.php';
}
elsif ( getpwnam('cpanel-horde') ) {
    system 'chgrp', 'cpanel-horde', '/usr/local/cpanel/base/horde/turba/config/mime_drivers.php';
}
else {
    system 'chgrp', 'cpanel', '/usr/local/cpanel/base/horde/turba/config/mime_drivers.php';
}
chmod( 0640, '/usr/local/cpanel/base/horde/turba/config/mime_drivers.php' );

sub kill_old_files {
    my ( $dir, $ptime ) = @_;

    if ( opendir( my $dir_dh, $dir ) ) {

        while ( my $acctf = readdir($dir_dh) ) {
            if ( $acctf =~ /(\d+)/ ) {
                if ( $1 > 1000000000 && $1 < $ptime ) {
                    unlink( $dir . '/' . $acctf );
                }
            }

        }

        closedir($dir_dh);
    }

}

sub chmod_dir_files {
    my ( $dir, $regex ) = @_;

    if ( opendir( my $dir_dh, $dir ) ) {

        while ( my $acctf = readdir($dir_dh) ) {

            next if ( !-f $dir . '/' . $acctf || $acctf !~ m/$regex/ );
            chmod( 0600, $dir . '/' . $acctf );

        }

        closedir($dir_dh);
    }
}

