#!/usr/local/cpanel/3rdparty/bin/perl # cpanel - scripts/shrink_modsec_ip_database Copyright 2022 cPanel, L.L.C. # All rights reserved. # copyright@cpanel.net http://cpanel.net # This code is subject to the cPanel license. Unauthorized copying is prohibited package scripts::shrink_modsec_ip_database; use strict; use warnings; use File::Temp (); use Cpanel::PwCache (); use Cpanel::FileUtils::Move (); use Cpanel::SafetyBits (); use Cpanel::SafetyBits::Chown (); use Cpanel::AccessIds (); use Cpanel::SafeRun::Object (); use Cpanel::Imports; our $MODSEC_SDBM_UTIL = '/usr/sbin/modsec-sdbm-util'; our $DEFAULT_SECDATADIR = '/var/cpanel/secdatadir'; our @DB_FILE_SUFFIXES = qw( .pag .dir ); # Database file suffixes used by modsec-sdbm-util our $NEW_DB_NAME = 'new_db'; # This name is hard-coded in modsec-sdbm-util our $DB_PERMS = 0640; # S_IRUSR | S_IWUSR | S_IRGRP our $OTHER_EXECUTE_PERMS = 01; # S_IXOTH sub new { my ( $pkg, $opts ) = @_; my $self = ref($opts) eq 'HASH' ? { %{$opts} } : {}; bless $self, $pkg; return $self; } sub as_script { my $self = shift; logger->die('as_script() is a method call.') unless ref $self eq __PACKAGE__; if ( not $ARGV[0] or $ARGV[0] ne '-x' ) { my $msg = 'To execute, use the -x flag.'; logger()->die($msg); } $self->run(); return 1; } sub run { my $self = shift; logger->die('run() is a method call.') unless ref $self eq __PACKAGE__; return 0 unless $self->_bin_check; # Bail out early and silently if the util is not installed my $databases = $self->_gather_databases(); while ( my ( $db_path, $uid ) = each %{$databases} ) { if ( ( stat($MODSEC_SDBM_UTIL) )[2] & $OTHER_EXECUTE_PERMS ) { # Can run util as "other" user? $self->_shrink_db_as_user( $uid, $db_path ); } else { # Will have to settle for doing this as root. $self->_shrink_db( $uid, $db_path ); } } return; } sub _bin_check { return -x $MODSEC_SDBM_UTIL ? 1 : 0; } sub _gather_databases { # All files that belong to the same database and that match @DB_FILE_SUFFIXES will need to have the same file owner or that database will not be in the final output my $self = shift; logger->die('_gather_databases() is a method call.') unless ref $self eq __PACKAGE__; return $self->{'databases'} if defined $self->{'databases'}; my $secdatadir = $self->_secdatadir(); my %databases; if ( opendir( my $dir_fh, $secdatadir ) ) { FILE: while ( my $filename = readdir($dir_fh) ) { SUFFIX: for my $suffix (@DB_FILE_SUFFIXES) { if ( $filename =~ m{ \A (.*) \Q$suffix\E \Z }xms ) { my $short_name = $1; # Filename without suffix my $db_path = $secdatadir . '/' . $short_name; # Database path name suitable for passing to modsec-sdbm-util next FILE if exists $databases{$db_path}; # Move along if this belongs to a database already in the collection my $owner = $self->_validate_database_files_owner($db_path); # Check if there is a full set of files for this database path if ( $self->_allowed_owner($owner) ) { $databases{$db_path} = $owner; # Verified, add it to the collection next FILE; } } } } closedir($dir_fh); } return $self->{'databases'} = \%databases; } sub _shrink_db_as_user { my ( $self, $uid, $db_path ) = @_; logger->die('_shrink_db_as_user() is a method call.') unless ref $self eq __PACKAGE__; logger->die('_shrink_db_as_user() called without expected arguments.') unless length $uid && length $db_path; return Cpanel::AccessIds::do_as_user( $uid, sub { $self->_shrink_db( $uid, $db_path ) } ); } sub _shrink_db { my ( $self, $uid, $db_path ) = @_; logger->die('_shrink_db() is a method call.') unless ref $self eq __PACKAGE__; logger->die('_shrink_db() called without expected arguments.') unless length $uid && length $db_path; my $secdatadir = $self->_secdatadir(); my $workdir = File::Temp->newdir( CLEANUP => 1, TEMPLATE => 'shrink_modsec_db_XXXXXXXX', DIR => $secdatadir ); Cpanel::SafetyBits::Chown::safe_chown_guess_gid( $uid, $workdir ) or logger->warn("Failed to chown $workdir to uid $uid"); my @original_files = $self->_get_db_files($db_path); # modsec-sdbm-util will drop $NEW_DB_NAME * @DB_FILE_SUFFIXES files into $tempdir return 0 unless $self->_call_modsec_sdbm_util( $workdir, $db_path ); # Verify new files exist and adjust perms my $new_db_path = $workdir . '/' . $NEW_DB_NAME; my @new_files = map { $new_db_path . $_ } @DB_FILE_SUFFIXES; if ( !defined $self->_validate_database_files_owner($new_db_path) ) { # root owned files = 0 logger->warn("Failed to verify the database files generated by modsec-sdbm-util in the working directory"); return 0; } $self->_set_default_perms( $uid, \@new_files ); # Move the existing files to the workdir so we can revert if the new-file move fails my @revert_files = map { $workdir . '/original' . $_ } @DB_FILE_SUFFIXES; my $can_revert = $self->_move_files( \@original_files, \@revert_files ) or logger->warn("Failed to move original files for $db_path into working dir"); # Move new files into place if ( !$self->_move_files( \@new_files, \@original_files ) ) { logger->warn("Failed to move new files into place for $db_path"); if ($can_revert) { $self->_move_files( \@revert_files, \@original_files ) or logger->warn("Failed to move backup files for $db_path from working dir to original location"); $self->_set_default_perms( $uid, \@original_files ); } else { logger->warn("Not able to restore original files for db_path"); } return 0; } # Fix up final database permissions return 0 unless $self->_set_default_perms( $uid, \@original_files ); return 1; } sub _call_modsec_sdbm_util { my ( $self, $tempdir, $db_path ) = @_; logger->die('_call_modsec_sdbm_util() is a method call.') unless ref $self eq __PACKAGE__; logger->die('_call_modsec_sdbm_util() called without expected arguments.') unless length $tempdir && length $db_path; my $run = Cpanel::SafeRun::Object->new( program => $MODSEC_SDBM_UTIL, args => [ '-D', $tempdir, '-v', '-n', $db_path ], ); # For whatever reason, if the util fails to open the specified db it doesn't exit with an error code, so parse out the error message. # It will fail to open if the file is immutable -- which is a crazy thing to do on purpose -- but it doesn't make that obvious. if ( $run->stdout() =~ m{ ^ Failed \s to \s open \s sdbm: \s (.*) $ }xms ) { logger()->warn("$MODSEC_SDBM_UTIL failed to open database (try checking all file/dir attributes): $1"); return 0; } if ( $run->CHILD_ERROR() ) { logger()->warn( "$MODSEC_SDBM_UTIL exited with non-zero status: " . join( q{ }, map { $run->$_() // () } qw( autopsy stdout stderr ) ) ); return 0; } return 1; } sub _validate_database_files_owner { # Expects a database path such as "$secdatadir/$db_name" without a suffix # Returns owner (uid) of a full set of database files if they exist, undef otherwise # Remember that root has uid 0! my ( $self, $db_path ) = @_; logger->die('_validate_database_files_owner() is a method call.') unless ref $self eq __PACKAGE__; logger->die('_validate_database_files_owner() called without expected arguments.') unless length $db_path; my $owner; for my $file ( $self->_get_db_files($db_path) ) { return unless -f $file; # All generated filenames must exist my $seen = ( stat(_) )[4]; $owner //= $seen; # Record owner of the first file we see return unless $owner == $seen; # Validation fails if any file doesn't match recorded owner } return $owner; } sub _move_files { # Move a new set of files in place. The indexes of the source and dest lists of files are expected to correlate directly for the rename. # For example, $source_files->[0] will be renamed to $dest_files->[0]. my ( $self, $source_files, $dest_files ) = @_; logger->die('_move_files() is a method call.') unless ref $self eq __PACKAGE__; logger->die('_move_files() called without expected arguments.') unless ref($source_files) eq 'ARRAY' && ref($dest_files) eq 'ARRAY'; logger->die('_move_files() called without file lists of equal count.') unless scalar @$source_files == scalar @$dest_files; unlink @$dest_files; # Though they would be overwritten by safemv, there's less chance for a mixture of old and new files if we remove all now and then something goes wrong later my $result = 1; while ( my ( $index, $source_file ) = each @$source_files ) { my $dest_file = $dest_files->[$index]; if ( !Cpanel::FileUtils::Move::safemv( '-f', $source_file, $dest_file ) ) { logger->warn("Failed to move $source_file to $dest_file"); $result = 0; # Overall fail if any file doesn't move } } return $result; } sub _set_default_perms { my ( $self, $uid, $files ) = @_; logger->die('_set_default_perms() is a method call.') unless ref $self eq __PACKAGE__; logger->die('_set_default_perms() called without expected arguments.') unless length $uid && ref($files) eq 'ARRAY' && scalar @$files; for my $file (@$files) { if ( !-f $file ) { logger->warn("Missing expected file $file while trying to update permissions"); return 0; # Must bail out if all of the expected files don't exist. } Cpanel::SafetyBits::safe_chmod( $DB_PERMS, $uid, $file ) or logger->warn("Failed to chmod $file"); Cpanel::SafetyBits::Chown::safe_chown_guess_gid( $uid, $file ) or logger->warn("Failed to chown $file to uid $uid"); } return 1; } sub _get_db_files { # Expects a database path (i.e. "$secdatadir/$shortname") without a suffix # Generates list of files with known suffixes appended to database path (does not verify existence) my ( $self, $path ) = @_; logger->die('_get_db_files() is a method call.') unless ref $self eq __PACKAGE__; logger->die('_get_db_files() called without expected arguments.') unless length $path; return map { $path . $_ } @DB_FILE_SUFFIXES; } sub _allowed_owner { # If this is expanded to allow any user, ensure that $owner and its gid exists in Cpanel::PwCache to avoid death by Cpanel::SafetyBits::Chown::safe_chown_guess_gid my ( $self, $owner ) = @_; logger->die('_allowed_owner() is a method call.') unless ref $self eq __PACKAGE__; # undef $owner is not an implementation error here, it simply means the owner couldn't be determined or is intentionally being skipped. return unless defined $owner; my $nobody_uid = $self->{'nobody_uid'} //= ( Cpanel::PwCache::getpwnam('nobody') )[2]; return unless defined $nobody_uid; return 1 if $owner == $nobody_uid; return 0; } sub _secdatadir { my $self = shift; logger->die('_secdatadir() is a method call.') unless ref $self eq __PACKAGE__; $self->{'secdatadir'} //= $DEFAULT_SECDATADIR; logger->die('Unable to determine secdatadir.') unless length $self->{'secdatadir'}; return $self->{'secdatadir'}; } if ( not caller() ) { my $shrink = scripts::shrink_modsec_ip_database->new(); $shrink->as_script; exit 0; } 1; __END__ =head1 NAME /scripts/shrink_modsec_ip_database =head1 USAGE AS A SCRIPT /scripts/shrink_modsec_ip_database -x =head2 AS A LIBRARY This script is internally written as a modulino, which means it can be C<require>'d: use strict; require q{/scripts/shrink_modsec_ip_database}; my $shrink = scripts::shrink_modsec_ip_database->new(); $shrink->run(); =head1 REQUIRED ARGUMENTS None =head1 OPTIONS =over 4 =item -x Use this option to actually run the script, otherwise it will warn and return without doing anything. =back =head1 DESCRIPTION This script is called by C<scripts/maintenance>, and its purpose is to shrink ModSecurity database files by removing expired entries. =head1 DIAGNOSTICS None =head1 EXIT STATUS Exit status is 0 (success) unless an unexpected error occurs. =head1 DEPENDENCIES This script relies on C</usr/sbin/modsec-sdbm-util> to be installed, and in order to be useful, C<ModSecurity> must be installed and be enabled. =head1 INCOMPATIBILITIES None =head1 BUGS AND LIMITATIONS None =head1 LICENSE AND COPYRIGHT Copyright 2022 cPanel, L.L.C.
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
cpan_sandbox | Folder | 0755 |
|
|
php_sandbox | Folder | 0755 |
|
|
MirrorSearch_pingtest | File | 2.38 KB | 0755 |
|
activesync-invite-reply | File | 1.69 KB | 0755 |
|
add_dns | File | 2.36 KB | 0755 |
|
adddns | File | 2.36 KB | 0755 |
|
addpop | File | 6.08 KB | 0755 |
|
addsystemuser | File | 3.27 KB | 0755 |
|
adduser | File | 92 B | 0755 |
|
apachelimits | File | 4.31 KB | 0755 |
|
archive_sync_zones | File | 3.02 KB | 0755 |
|
auto-adjust-mysql-limits | File | 1.81 KB | 0755 |
|
autorepair | File | 1.24 KB | 0755 |
|
backups_clean_metadata_for_missing_backups | File | 1.57 KB | 0755 |
|
backups_create_metadata | File | 15.75 KB | 0755 |
|
backups_list_user_files | File | 4.56 KB | 0755 |
|
balance_linked_node_quotas | File | 2.58 KB | 0755 |
|
biglogcheck | File | 1.69 KB | 0755 |
|
build_bandwidthdb_root_cache_in_background | File | 1.52 KB | 0755 |
|
build_cpnat | File | 3.41 KB | 0755 |
|
build_mail_sni | File | 3.87 KB | 0755 |
|
build_maxemails_config | File | 1.14 KB | 0755 |
|
builddovecotconf | File | 6.76 KB | 0755 |
|
buildeximconf | File | 7 KB | 0755 |
|
buildhttpdconf | File | 2.6 KB | 0755 |
|
buildnsdconf | File | 1.01 KB | 0755 |
|
buildpureftproot | File | 539 B | 0755 |
|
ccs-check | File | 4.91 KB | 0755 |
|
check_cpanel_pkgs | File | 10.75 KB | 0755 |
|
check_cpanel_rpms | File | 218 B | 0755 |
|
check_domain_tls_service_domains.pl | File | 6.68 KB | 0755 |
|
check_immutable_files | File | 5.49 KB | 0755 |
|
check_mail_spamassassin_compiledregexps_body_0 | File | 187 B | 0755 |
|
check_maxmem_against_domains_count | File | 3.57 KB | 0755 |
|
check_mount_procfs | File | 2.02 KB | 0755 |
|
check_mysql | File | 5.55 KB | 0755 |
|
check_security_advice_changes | File | 8.28 KB | 0755 |
|
check_unmonitored_enabled_services | File | 4.56 KB | 0755 |
|
check_unreliable_resolvers | File | 3.59 KB | 0755 |
|
check_users_my_cnf | File | 6.05 KB | 0755 |
|
check_valid_server_hostname | File | 7.66 KB | 0755 |
|
checkalldomainsmxs | File | 2.4 KB | 0755 |
|
checkbashshell | File | 1.18 KB | 0755 |
|
checkccompiler | File | 1.22 KB | 0755 |
|
checkexim.pl | File | 3.1 KB | 0755 |
|
checklink | File | 1.29 KB | 0755 |
|
checknsddirs | File | 1014 B | 0755 |
|
checkusers | File | 856 B | 0755 |
|
chkmydns | File | 561 B | 0755 |
|
chkpaths | File | 141 B | 0755 |
|
chpass | File | 416 B | 0755 |
|
ckillall | File | 1.11 KB | 0755 |
|
clean_dead_mailman_locks | File | 2.09 KB | 0755 |
|
clean_up_temp_wheel_users | File | 2.44 KB | 0755 |
|
clean_user_php_sessions | File | 4.76 KB | 0755 |
|
cleandns | File | 13.09 KB | 0755 |
|
cleandns8 | File | 417 B | 0755 |
|
cleanmsglog | File | 735 B | 0755 |
|
cleanphpsessions | File | 932 B | 0755 |
|
cleanphpsessions.php | File | 658 B | 0644 |
|
cleanquotas | File | 1.61 KB | 0755 |
|
cleansessions | File | 5.91 KB | 0755 |
|
cleanupinterchange | File | 2.64 KB | 0755 |
|
cleanupmysqlprivs | File | 533 B | 0755 |
|
clear_cpaddon_ui_caches | File | 1.27 KB | 0755 |
|
clear_orphaned_virtfs_mounts | File | 3.56 KB | 0755 |
|
comparecdb | File | 1.52 KB | 0755 |
|
compilers | File | 2.86 KB | 0755 |
|
compilerscheck | File | 999 B | 0755 |
|
configure_firewall_for_cpanel | File | 520 B | 0755 |
|
configure_rh_firewall_for_cpanel | File | 520 B | 0755 |
|
configure_rh_ipv6_firewall_for_cpanel | File | 520 B | 0755 |
|
convert2dovecot | File | 682 B | 0755 |
|
convert_accesshash_to_token | File | 4.07 KB | 0755 |
|
convert_and_migrate_from_legacy_backup | File | 1.97 KB | 0755 |
|
convert_maildir_to_mdbox | File | 1.66 KB | 0755 |
|
convert_mdbox_to_maildir | File | 1.66 KB | 0755 |
|
convert_roundcube_mysql2sqlite | File | 25.28 KB | 0755 |
|
convert_to_dovecot_delivery | File | 4.33 KB | 0755 |
|
convert_whmxfer_to_sqlite | File | 1.46 KB | 0755 |
|
copy_user_mail_as_root | File | 1.25 KB | 0755 |
|
copy_user_mail_as_user | File | 1.34 KB | 0755 |
|
cpaddonsup | File | 3.25 KB | 0755 |
|
cpan_config | File | 2.8 KB | 0755 |
|
cpanel_initial_install | File | 67.36 KB | 0755 |
|
cpanelsync | File | 28.31 KB | 0755 |
|
cpanelsync_postprocessor | File | 1.62 KB | 0755 |
|
cpanpingtest | File | 965 B | 0755 |
|
cpbackup | File | 44.77 KB | 0755 |
|
cpbackup_transport_file | File | 5.65 KB | 0755 |
|
cpdig | File | 1.81 KB | 0755 |
|
cpfetch | File | 1.23 KB | 0755 |
|
cphulkdblacklist | File | 433 B | 0755 |
|
cphulkdwhitelist | File | 1.3 KB | 0755 |
|
cpservice | File | 2.87 KB | 0755 |
|
cpuser_port_authority | File | 19.29 KB | 0755 |
|
cpuser_service_manager | File | 10.85 KB | 0755 |
|
createacct | File | 24.57 MB | 0700 |
|
custom_backup_destination.pl.sample | File | 5.06 KB | 0755 |
|
custom_backup_destination.pl.skeleton | File | 2.84 KB | 0755 |
|
dav_change_hostname | File | 3.57 KB | 0755 |
|
dcpumon-wrapper | File | 850 B | 0755 |
|
delpop | File | 6.2 KB | 0755 |
|
detect_env_capabilities | File | 508 B | 0755 |
|
disable_prelink | File | 2.77 KB | 0755 |
|
disable_sqloptimizer | File | 1.49 KB | 0755 |
|
disablefileprotect | File | 2.09 KB | 0755 |
|
distro_changed_hook | File | 1.16 KB | 0755 |
|
dnscluster | File | 4.44 KB | 0755 |
|
dnsqueuecron | File | 1.29 KB | 0755 |
|
dnssec-cluster-keys | File | 3.75 KB | 0755 |
|
dovecot_maintenance | File | 7.93 KB | 0755 |
|
dovecot_set_defaults.pl | File | 984 B | 0755 |
|
dumpcdb | File | 866 B | 0755 |
|
dumpinodes | File | 687 B | 0755 |
|
dumpquotas | File | 616 B | 0755 |
|
dumpstor | File | 913 B | 0755 |
|
ea4_fresh_install | File | 2.64 KB | 0755 |
|
edit_cpanelsync_exclude_list | File | 2.58 KB | 0755 |
|
editquota | File | 3.44 KB | 0755 |
|
elevate-cpanel | File | 349.17 KB | 0700 |
|
email_archive_maintenance | File | 6.15 KB | 0755 |
|
email_hold_maintenance | File | 1.46 KB | 0755 |
|
enable_spf_dkim_globally | File | 8.83 KB | 0755 |
|
enable_sqloptimizer | File | 1.57 KB | 0755 |
|
enablefileprotect | File | 2.1 KB | 0755 |
|
ensure_autoenabled_features | File | 2.5 MB | 0700 |
|
ensure_conf_dir_crt_key | File | 4.82 KB | 0755 |
|
ensure_cpuser_file_ip | File | 2.55 KB | 0755 |
|
ensure_crontab_permissions | File | 1.08 KB | 0755 |
|
ensure_dovecot_memory_limits_meet_minimum | File | 3.13 KB | 0755 |
|
ensure_hostname_resolves | File | 2.57 KB | 0755 |
|
ensure_includes | File | 601 B | 0755 |
|
ensure_vhost_includes | File | 13.53 KB | 0755 |
|
exim_tidydb | File | 2.96 KB | 0755 |
|
eximconfgen | File | 1.32 KB | 0755 |
|
eximstats_spam_check | File | 867 B | 0755 |
|
export_horde_calendars_to_ics | File | 15.07 KB | 0755 |
|
export_horde_contacts_to_vcf | File | 13.94 KB | 0755 |
|
exportmydnsdb | File | 3.47 KB | 0755 |
|
expunge_expired_certificates_from_sslstorage | File | 3.56 KB | 0755 |
|
expunge_expired_pkgacct_sessions | File | 852 B | 0755 |
|
expunge_expired_transfer_sessions | File | 1.06 KB | 0755 |
|
fastmail | File | 5.16 KB | 0755 |
|
featuremod | File | 1.92 KB | 0755 |
|
fetchfile | File | 422 B | 0755 |
|
find_and_fix_rpm_issues | File | 6.99 KB | 0755 |
|
find_outdated_services | File | 5.41 KB | 0755 |
|
find_pids_with_inotify_watch_on_path | File | 3.66 KB | 0755 |
|
fix-cpanel-perl | File | 28.82 KB | 0755 |
|
fix-listen-on-localhost | File | 3.52 KB | 0755 |
|
fix-web-vhost-configuration | File | 6.15 KB | 0755 |
|
fix_addon_permissions | File | 7.68 KB | 0755 |
|
fix_dns_zone_ttls | File | 1.34 KB | 0755 |
|
fix_innodb_tables | File | 4.05 KB | 0755 |
|
fix_pear_registry | File | 4.07 KB | 0755 |
|
fix_reseller_acls | File | 10.88 KB | 0755 |
|
fixetchosts | File | 4.32 KB | 0755 |
|
fixheaders | File | 572 B | 0755 |
|
fixmailinglistperms | File | 1008 B | 0755 |
|
fixmailman | File | 2.09 KB | 0755 |
|
fixnamedviews | File | 1.22 KB | 0755 |
|
fixndc | File | 413 B | 0755 |
|
fixquotas | File | 17.45 KB | 0755 |
|
fixrelayd | File | 1.74 KB | 0755 |
|
fixrndc | File | 16.48 KB | 0755 |
|
fixtar | File | 503 B | 0755 |
|
fixtlsversions | File | 4.7 KB | 0755 |
|
fixvaliases | File | 2 KB | 0755 |
|
fixwebalizer | File | 966 B | 0755 |
|
forcelocaldomain | File | 895 B | 0755 |
|
ftpfetch | File | 2.2 KB | 0755 |
|
ftpquotacheck | File | 8.31 KB | 0755 |
|
ftpsfetch | File | 2.36 KB | 0755 |
|
ftpupdate | File | 261 B | 0755 |
|
gather_update_log_stats | File | 4.25 KB | 0700 |
|
gather_update_logs_setupcrontab | File | 5.45 KB | 0700 |
|
gemwrapper | File | 1.74 KB | 0755 |
|
gencrt | File | 6.26 KB | 0755 |
|
generate_account_suspension_include | File | 5.7 KB | 0755 |
|
generate_google_drive_credentials | File | 1.11 KB | 0755 |
|
generate_google_drive_oauth_uri | File | 984 B | 0755 |
|
generate_maildirsize | File | 13.94 KB | 0755 |
|
gensysinfo | File | 1.16 KB | 0755 |
|
get_locale_from_legacy_name_info | File | 1.99 KB | 0755 |
|
getremotecpmove | File | 12.67 KB | 0755 |
|
grpck | File | 1.19 KB | 0755 |
|
hackcheck | File | 3.02 KB | 0755 |
|
hook | File | 1.45 KB | 0755 |
|
httpspamdetect | File | 2.66 KB | 0755 |
|
hulk-unban-ip | File | 3.93 MB | 0700 |
|
import_exim_data | File | 8.39 KB | 0755 |
|
importmydnsdb | File | 11.34 KB | 0755 |
|
increase_filesystem_limits | File | 891 B | 0755 |
|
initacls | File | 4.99 KB | 0755 |
|
initfpsuexec | File | 444 B | 0755 |
|
initquotas | File | 19.47 KB | 0755 |
|
initsuexec | File | 4.03 KB | 0755 |
|
install_cpanel_analytics | File | 1.93 KB | 0755 |
|
install_dovecot_fts | File | 1.57 KB | 0755 |
|
install_plugin | File | 2.8 KB | 0755 |
|
installpkg | File | 575 B | 0755 |
|
installpostgres | File | 6.56 KB | 0755 |
|
installsqlite3 | File | 1.82 KB | 0755 |
|
ipcheck | File | 3.93 KB | 0755 |
|
ipusage | File | 7.45 KB | 0755 |
|
isdedicatedip | File | 602 B | 0755 |
|
jetbackup-check | File | 3.69 KB | 0755 |
|
killdns | File | 422 B | 0755 |
|
killdns-dnsadmin | File | 1.15 KB | 0755 |
|
killmysqluserprivs | File | 433 B | 0755 |
|
killmysqlwildcard | File | 1.15 KB | 0755 |
|
killpvhost | File | 853 B | 0755 |
|
killspamkeys | File | 937 B | 0755 |
|
link_3rdparty_binaries | File | 1.24 KB | 0755 |
|
linksubemailtomainacct | File | 3.17 KB | 0755 |
|
listcheck | File | 538 B | 0755 |
|
listsubdomains | File | 1.05 KB | 0755 |
|
litespeed-check | File | 3.86 KB | 0755 |
|
locale_export | File | 4.82 KB | 0755 |
|
locale_import | File | 4.35 KB | 0755 |
|
locale_info | File | 3.99 KB | 0755 |
|
logo.dat | File | 205 B | 0644 |
|
magicloader | File | 1.94 KB | 0755 |
|
maildir_converter | File | 6.08 KB | 0755 |
|
mailperm | File | 16.58 KB | 0755 |
|
mailscannerupdate | File | 2.42 KB | 0755 |
|
mainipcheck | File | 10 KB | 0755 |
|
maintenance | File | 46.62 KB | 0755 |
|
make_config | File | 407 B | 0644 |
|
make_hostname_unowned | File | 1.16 KB | 0755 |
|
manage_extra_marketing | File | 12.41 KB | 0700 |
|
manage_greylisting | File | 16.19 KB | 0755 |
|
manage_mysql_profiles | File | 20.02 KB | 0755 |
|
migrate-pdns-conf | File | 9.83 KB | 0755 |
|
migrate_legacy_wordpress_to_modern_wordpress | File | 12.99 KB | 0700 |
|
migrate_local_ini_to_php_ini | File | 7.41 KB | 0755 |
|
migrate_whmtheme_file_to_userdata | File | 2.95 KB | 0755 |
|
mkwwwacctconf | File | 2.33 KB | 0755 |
|
modify_accounts | File | 4.09 KB | 0755 |
|
modify_default_featurelist_entry.pl | File | 5.18 KB | 0700 |
|
modify_packages | File | 3.65 KB | 0755 |
|
modsec_vendor | File | 15.63 KB | 0755 |
|
mysqlconnectioncheck | File | 6.55 KB | 0755 |
|
mysqlpasswd | File | 4.09 KB | 0755 |
|
named.ca | File | 1.57 KB | 0644 |
|
named.rfc1912.zones | File | 774 B | 0644 |
|
nixstatsagent.sh | File | 58.67 KB | 0700 |
|
notify_expiring_certificates | File | 9.37 KB | 0755 |
|
notify_expiring_certificates_on_linked_nodes | File | 1.33 KB | 0755 |
|
oopscheck | File | 1.12 KB | 0755 |
|
optimize_eximstats | File | 3.88 KB | 0755 |
|
patch_mail_spamassassin_compiledregexps_body_0 | File | 2.39 KB | 0755 |
|
patchfdsetsize | File | 2.72 KB | 0755 |
|
pedquota | File | 2.26 KB | 0755 |
|
perform_sqlite_auto_rebuild_db_maintenance | File | 2.2 KB | 0755 |
|
perlinstaller | File | 528 B | 0755 |
|
perlmods | File | 1.18 KB | 0755 |
|
php_fpm_config | File | 9.73 KB | 0755 |
|
phpini_tidy | File | 687 B | 0755 |
|
pkgacct | File | 87.82 KB | 0755 |
|
post_snapshot | File | 3.16 KB | 0755 |
|
post_sync_cleanup | File | 6.09 KB | 0755 |
|
primary_virtual_host_migration | File | 2.44 KB | 0755 |
|
process_pending_cpanel_php_pear_registration | File | 3.49 KB | 0755 |
|
process_site_templates | File | 7.27 KB | 0755 |
|
proxydomains | File | 9.34 KB | 0755 |
|
ptycheck | File | 724 B | 0755 |
|
purge_modsec_log | File | 1.53 KB | 0755 |
|
purge_old_config_caches | File | 2.08 KB | 0755 |
|
pwck | File | 708 B | 0755 |
|
quickdnslookup | File | 1.13 KB | 0755 |
|
quickwhoisips | File | 2.29 KB | 0755 |
|
quota_auto_fix | File | 1.41 KB | 0755 |
|
quotacheck | File | 22.36 KB | 0755 |
|
rawchpass | File | 460 B | 0755 |
|
rdate | File | 4.8 KB | 0755 |
|
realadduser | File | 5.61 KB | 0755 |
|
realchpass | File | 3.26 KB | 0755 |
|
realperlinstaller | File | 5.67 KB | 0755 |
|
realrawchpass | File | 425 B | 0755 |
|
rebuild_available_addons_packages_cache | File | 1.27 KB | 0755 |
|
rebuild_available_rpm_addons_cache | File | 1.27 KB | 0755 |
|
rebuild_bandwidthdb_root_cache | File | 1.45 KB | 0755 |
|
rebuild_dbmap | File | 5.8 KB | 0755 |
|
rebuild_provider_openid_connect_links_db | File | 1.01 KB | 0755 |
|
rebuild_whm_chrome | File | 2.22 KB | 0755 |
|
rebuilddnsconfig | File | 26.21 KB | 0755 |
|
rebuildhttpdconf | File | 2.6 KB | 0755 |
|
rebuildinstalledssldb | File | 2.85 KB | 0755 |
|
rebuildippool | File | 509 B | 0755 |
|
rebuildnsdzones | File | 1.14 KB | 0755 |
|
rebuilduserssldb | File | 948 B | 0755 |
|
refresh-dkim-validity-cache | File | 5.97 KB | 0755 |
|
regenerate_tokens | File | 2.18 KB | 0755 |
|
reloadnsd | File | 821 B | 0755 |
|
remote_log_transfer | File | 11.6 KB | 0755 |
|
remove_dovecot_index_files | File | 5.89 KB | 0755 |
|
removeacct | File | 20.91 MB | 0700 |
|
rescan_user_dovecot_fts | File | 2.98 KB | 0755 |
|
reset_mail_quotas_to_sane_values | File | 6.82 KB | 0755 |
|
resetmailmanurls | File | 2.03 KB | 0755 |
|
resetquotas | File | 4.68 KB | 0755 |
|
restartsrv | File | 3.23 KB | 0755 |
|
restartsrv_apache | File | 422 B | 0755 |
|
restartsrv_apache_php_fpm | File | 9.9 MB | 0755 |
|
restartsrv_base | File | 9.9 MB | 0755 |
|
restartsrv_bind | File | 9.9 MB | 0755 |
|
restartsrv_chkservd | File | 427 B | 0755 |
|
restartsrv_clamd | File | 9.9 MB | 0755 |
|
restartsrv_cpanalyticsd | File | 9.9 MB | 0755 |
|
restartsrv_cpanel_php_fpm | File | 9.9 MB | 0755 |
|
restartsrv_cpanellogd | File | 9.9 MB | 0755 |
|
restartsrv_cpdavd | File | 9.9 MB | 0755 |
|
restartsrv_cpgreylistd | File | 9.9 MB | 0755 |
|
restartsrv_cphulkd | File | 9.9 MB | 0755 |
|
restartsrv_cpipv6 | File | 9.9 MB | 0755 |
|
restartsrv_cpsrvd | File | 9.9 MB | 0755 |
|
restartsrv_crond | File | 9.9 MB | 0755 |
|
restartsrv_dnsadmin | File | 9.9 MB | 0755 |
|
restartsrv_dovecot | File | 9.9 MB | 0755 |
|
restartsrv_exim | File | 9.9 MB | 0755 |
|
restartsrv_eximstats | File | 504 B | 0755 |
|
restartsrv_ftpd | File | 426 B | 0755 |
|
restartsrv_ftpserver | File | 911 B | 0755 |
|
restartsrv_httpd | File | 9.9 MB | 0755 |
|
restartsrv_imap | File | 437 B | 0755 |
|
restartsrv_inetd | File | 2.47 KB | 0755 |
|
restartsrv_ipaliases | File | 9.9 MB | 0755 |
|
restartsrv_lmtp | File | 437 B | 0755 |
|
restartsrv_mailman | File | 9.9 MB | 0755 |
|
restartsrv_mydns | File | 9.9 MB | 0755 |
|
restartsrv_mysql | File | 9.9 MB | 0755 |
|
restartsrv_named | File | 777 B | 0755 |
|
restartsrv_nscd | File | 9.9 MB | 0755 |
|
restartsrv_nsd | File | 9.9 MB | 0755 |
|
restartsrv_p0f | File | 9.9 MB | 0755 |
|
restartsrv_pdns | File | 9.9 MB | 0755 |
|
restartsrv_pop3 | File | 437 B | 0755 |
|
restartsrv_postgres | File | 427 B | 0755 |
|
restartsrv_postgresql | File | 9.9 MB | 0755 |
|
restartsrv_powerdns | File | 442 B | 0755 |
|
restartsrv_proftpd | File | 9.9 MB | 0755 |
|
restartsrv_pureftpd | File | 9.9 MB | 0755 |
|
restartsrv_queueprocd | File | 9.9 MB | 0755 |
|
restartsrv_rsyslog | File | 9.9 MB | 0755 |
|
restartsrv_rsyslogd | File | 437 B | 0755 |
|
restartsrv_spamd | File | 9.9 MB | 0755 |
|
restartsrv_sshd | File | 9.9 MB | 0755 |
|
restartsrv_syslogd | File | 2.4 KB | 0755 |
|
restartsrv_tailwatchd | File | 9.9 MB | 0755 |
|
restartsrv_unknown | File | 9.9 MB | 0755 |
|
restartsrv_xinetd | File | 422 B | 0755 |
|
restorecpuserfromcache | File | 1.96 KB | 0755 |
|
restorepkg | File | 36.49 MB | 0700 |
|
rfc1912_zones.tar | File | 10 KB | 0644 |
|
rpmup | File | 4.77 KB | 0755 |
|
rsync-user-homedir.pl | File | 5.76 KB | 0755 |
|
run_if_exists | File | 512 B | 0755 |
|
runstatsonce | File | 440 B | 0755 |
|
runweblogs | File | 1.02 KB | 0755 |
|
sa-update_wrapper | File | 3.34 KB | 0755 |
|
safetybits.pl | File | 844 B | 0755 |
|
secureit | File | 4.72 KB | 0755 |
|
securemysql | File | 4.54 KB | 0755 |
|
securerailsapps | File | 3.58 KB | 0755 |
|
securetmp | File | 15.99 KB | 0755 |
|
sendicq | File | 474 B | 0755 |
|
servicedomains | File | 9.34 KB | 0755 |
|
set_mailman_archive_perms | File | 1.75 KB | 0755 |
|
set_php_memory_limits | File | 3.67 KB | 0755 |
|
setpostgresconfig | File | 6.04 KB | 0755 |
|
setup_greylist_db | File | 16.19 KB | 0755 |
|
setup_modsec_db | File | 1.3 KB | 0755 |
|
setupftpserver | File | 10.47 KB | 0755 |
|
setupmailserver | File | 9.55 KB | 0755 |
|
setupnameserver | File | 13.75 KB | 0755 |
|
shrink_modsec_ip_database | File | 12.97 KB | 0755 |
|
simpleps | File | 3.05 KB | 0755 |
|
slurp_exim_mainlog | File | 5.78 KB | 0755 |
|
smartcheck | File | 15.13 KB | 0755 |
|
smtpmailgidonly | File | 8.15 KB | 0755 |
|
snapshot_prep | File | 5.88 KB | 0755 |
|
spamassassin_dbm_cleaner | File | 5.85 KB | 0755 |
|
spamassassindisable | File | 3.74 KB | 0755 |
|
spamboxdisable | File | 2.27 KB | 0755 |
|
sshcontrol | File | 14.38 KB | 0755 |
|
ssl_crt_status | File | 3.84 KB | 0755 |
|
suspendacct | File | 18.01 KB | 0755 |
|
suspendmysqlusers | File | 4.42 KB | 0755 |
|
swapip | File | 3.82 KB | 0755 |
|
sync-mysql-users-from-grants | File | 1.2 KB | 0755 |
|
sync_child_accounts | File | 1.77 KB | 0755 |
|
sync_contact_emails_to_cpanel_users_files | File | 1.14 KB | 0755 |
|
synccpaddonswithsqlhost | File | 6.59 KB | 0755 |
|
synctransfers | File | 1.92 KB | 0755 |
|
syslog_check | File | 1.36 KB | 0755 |
|
sysup | File | 645 B | 0755 |
|
test_sa_compiled | File | 1.07 KB | 0755 |
|
transfer_account_as_user | File | 2.34 KB | 0755 |
|
transfer_accounts_as_root | File | 4.76 KB | 0755 |
|
transfer_in_progress | File | 3.08 KB | 0755 |
|
transfer_in_progress.pod | File | 312 B | 0644 |
|
transfermysqlusers | File | 9.53 MB | 0700 |
|
try-later | File | 7.95 KB | 0755 |
|
unblockip | File | 667 B | 0755 |
|
uninstall_cpanel_analytics | File | 1.2 KB | 0755 |
|
uninstall_dovecot_fts | File | 562 B | 0755 |
|
uninstall_plugin | File | 2.84 KB | 0755 |
|
unlink_service_account | File | 2.62 KB | 0755 |
|
unpkgacct | File | 4.6 KB | 0755 |
|
unslavenamedconf | File | 863 B | 0755 |
|
unsuspendacct | File | 17.8 KB | 0755 |
|
unsuspendmysqlusers | File | 6.71 KB | 0755 |
|
upcp | File | 31.56 KB | 0755 |
|
upcp-running | File | 2.7 KB | 0755 |
|
upcp.static | File | 708.4 KB | 0755 |
|
update-packages | File | 4.77 KB | 0755 |
|
update_apachectl | File | 480 B | 0755 |
|
update_db_cache | File | 430 B | 0755 |
|
update_dkim_keys | File | 1.45 KB | 0755 |
|
update_exim_rejects | File | 1.21 KB | 0755 |
|
update_existing_mail_quotas_for_account | File | 4.78 KB | 0755 |
|
update_known_proxy_ips | File | 1002 B | 0755 |
|
update_local_rpm_versions | File | 4.56 KB | 0755 |
|
update_mailman_cache | File | 8.34 KB | 0755 |
|
update_mysql_systemd_config | File | 1.25 KB | 0755 |
|
update_neighbor_netblocks | File | 487 B | 0755 |
|
update_sa_config | File | 2.14 KB | 0755 |
|
update_spamassassin_config | File | 10.73 KB | 0755 |
|
update_users_jail | File | 691 B | 0755 |
|
update_users_vhosts | File | 801 B | 0755 |
|
updatedomainips | File | 605 B | 0755 |
|
updatenameserverips | File | 1.66 KB | 0755 |
|
updatenow | File | 5.18 KB | 0755 |
|
updatenow.static | File | 1.91 MB | 0755 |
|
updatenow.static-cpanelsync | File | 1.97 MB | 0700 |
|
updatesigningkey | File | 1.95 KB | 0755 |
|
updatessldomains | File | 1.81 KB | 0755 |
|
updatesupportauthorizations | File | 2.49 KB | 0755 |
|
updateuserdatacache | File | 2.47 KB | 0755 |
|
updateuserdomains | File | 774 B | 0755 |
|
upgrade_bandwidth_dbs | File | 2.22 KB | 0755 |
|
upgrade_subaccount_databases | File | 2.73 KB | 0755 |
|
userdata_wildcard_cleanup | File | 5.74 KB | 0755 |
|
userdirctl | File | 5.01 KB | 0755 |
|
validate_sshkey_passphrase | File | 1.21 KB | 0755 |
|
verify_api_spec_files | File | 757 B | 0755 |
|
verify_pidfile | File | 1.96 KB | 0755 |
|
verify_vhost_includes | File | 7.34 KB | 0755 |
|
vps_optimizer | File | 7.82 KB | 0755 |
|
vzzo-fixer | File | 725 B | 0755 |
|
whmlogin | File | 2.33 KB | 0755 |
|
whoowns | File | 1.13 KB | 0755 |
|
wpt_license | File | 6.27 MB | 0700 |
|
wwwacct | File | 24.57 MB | 0700 |
|
wwwacct2 | File | 88 B | 0755 |
|
xfer_rcube_schema_migrate.pl | File | 2.4 KB | 0755 |
|
xfer_rcube_uid_resolver.pl | File | 1.8 KB | 0755 |
|
xferpoint | File | 3.13 KB | 0755 |
|
xfertool | File | 16.14 KB | 0755 |
|
zoneexists | File | 800 B | 0755 |
|