56 lines
2.0 KiB
Perl
Executable File
56 lines
2.0 KiB
Perl
Executable File
#!/usr/local/cpanel/3rdparty/bin/perl
|
|
#******************************************************************************
|
|
# Copyright 2009-2016, Way to the Web Limited
|
|
# URL: http://www.waytotheweb.com
|
|
# Email: sales@waytotheweb.com
|
|
#******************************************************************************
|
|
# Example to disable a directory containing a match using a .htaccess file
|
|
#
|
|
# NOTE: If you intend to use this script, copy it to a different filename as
|
|
# this file will be overwritten when cxs upgrades
|
|
use strict;
|
|
use File::Basename;
|
|
|
|
# Set to 1 to have more verbose output
|
|
my $verbose = 0;
|
|
|
|
if (@ARGV < 2) {print "\ncpanelsuspend.pl: Not enough Args to suspend: @ARGV\n"; exit}
|
|
|
|
# Assign arguments to variables
|
|
my $filename = $ARGV[0];
|
|
my $option = $ARGV[1];
|
|
my $message = $ARGV[2];
|
|
my $account = $ARGV[3];
|
|
|
|
# Get the directory name from the file name
|
|
my $dirname = dirname($filename);
|
|
|
|
# If option is a Virus or Known Exploit
|
|
if ($option =~ /v|M$/) {
|
|
|
|
# Check we have a directory
|
|
if (-d $dirname) {
|
|
|
|
# Check that we haven't already disabled a .htaccess file in this directory
|
|
if (!(-e "$dirname/.htaccess.cxs_disable") and -e "$dirname/.htaccess") {
|
|
system("/bin/cp","-a","$dirname/.htaccess","$dirname/.htaccess.cxs_disable");
|
|
}
|
|
elsif (-e "$dirname/.htaccess.cxs_disable" and !(-e "$dirname/.htaccess")) {
|
|
unlink("$dirname/.htaccess.cxs_disable");
|
|
}
|
|
|
|
# Write out a new .htaccess file denying access
|
|
open (my $HTACCESS, ">", "$dirname/.htaccess") or die "htaccessdisable.pl: Unable to create [$dirname/.htaccess] - $!";
|
|
print $HTACCESS "#cxs has disabled web access to this directory\n";
|
|
print $HTACCESS "deny from all\n";
|
|
close ($HTACCESS) or die "htaccessdisable.pl: Unable to create [$dirname/.htaccess] - $!";
|
|
|
|
if ($verbose) {print "\nhtaccessdisable.pl: Directory [$dirname] disabled\n"}
|
|
|
|
} else {if ($verbose) {print "\nhtaccessdisable.pl: Directory for [$filename] does not exist\n"}}
|
|
|
|
|
|
} else {if ($verbose) {print "\nhtaccessdisable.pl: Not a suspend option ($option)\n"}}
|
|
|
|
exit;
|