Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 3.15.5.184
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
share /
sendmail /
[ HOME SHELL ]
Name
Size
Permission
Action
cf
[ DIR ]
drwxr-xr-x
examples
[ DIR ]
drwxr-xr-x
Parse_conf.pm
29.37
KB
-rwxr-xr-x
Parse_mc.pm
31.58
KB
-rwxr-xr-x
buildvirtuser
6.28
KB
-rwxr-xr-x
doublebounce.pl
6.15
KB
-rwxr-xr-x
dynamic
12.27
KB
-rwxr-xr-x
hoststat
31.9
KB
-rwxr-xr-x
mailq
31.9
KB
-rwxr-xr-x
mailstats
31.9
KB
-rwxr-xr-x
newaliases
31.9
KB
-rwxr-xr-x
parse_mc
2.77
KB
-rwxr-xr-x
purgestat
31.9
KB
-rwxr-xr-x
qtool.pl
24.08
KB
-rwxr-xr-x
runq
31.9
KB
-rwxr-xr-x
sendmail
31.9
KB
-rwxr-xr-x
smcontrol.pl
7.4
KB
-rwxr-xr-x
status
31.9
KB
-rwxr-xr-x
update_auth
9.92
KB
-rwxr-xr-x
update_authm4
7.84
KB
-rwxr-xr-x
update_conf
15.15
KB
-rwxr-xr-x
update_db
15.23
KB
-rwxr-xr-x
update_ldap
3.48
KB
-rwxr-xr-x
update_mc
10.28
KB
-rwxr-xr-x
update_mk
20.76
KB
-rwxr-xr-x
update_notices
7.19
KB
-rwxr-xr-x
update_sendmail
3.44
KB
-rwxr-xr-x
update_smrsh
2.42
KB
-rwxr-xr-x
update_sys
7.87
KB
-rwxr-xr-x
update_tcpd
1.93
KB
-rwxr-xr-x
update_tls
9.34
KB
-rwxr-xr-x
update_tlsm4
7.71
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : update_conf
#!/usr/bin/perl -w #------------------------------------------------------------------------ # # $Sendmail: update_conf,v 8.15.2 2020-03-08 00:39:49 cowboy Exp $ # # Parse and update /etc/mail/sendmail.conf and reflect its values in # /etc/cron.d/sendmail and /etc/inetd.conf. # # Copyright (c) 2001-2010 Richard Nelson. All Rights Reserved. # #------------------------------------------------------------------------ # use strict; # be kosher use Cwd; # provide cwd() use Env; # A few environmental references use integer; # Peformance use Sys::Hostname; # make sure we have a valid hostname use Getopt::Long; # parameter handling use FileHandle; # I/O # Local libraries - for Debian Sendmail Perl helper functions # BEGIN { $main::my_path = substr($0,$[,rindex($0,'/')) }; use lib ('.', substr($0,$[,rindex($0,'/')), "/usr/share/sendmail"); require Parse_conf; require Parse_mc; $main::program_name = $0; #'update_conf'; $main::program_version = '8.15.2'; $main::program_date = '2020-03-08 00:39:49 cowboy'; $main::debug = 0; my $interp_pgm = "$^X"; my $interp_vrm = $]; $interp_vrm = ("$^V" | '000') if (defined $^V); my $current_time = scalar localtime; my $user = getlogin || (getpwuid($<))[0] || "Unknown!!"; my $hostname = hostname(); my $directory = getcwd(); my $Conffile = "/etc/mail/sendmail.conf"; my $output_file = ''; my $ofh = new FileHandle; my $debug = 0; # #------------------------------------------------------------------------------ # Global variables #------------------------------------------------------------------------------ # #------------------------------------------------------------------------------ # Finally, some code (almost) #------------------------------------------------------------------------------ # # Argument handling... $main::opt_help=''; $main::opt_output_file=''; $main::opt_input_file=''; $main::opt_debug=''; $main::opt_test=''; $main::opt_static=''; my @options = qw( help|h output-file|output_file|o:s input-file|input_file|i:s debug! test! static! ); my $result = GetOptions(@options); if ( ! $result ) { die "Terminating due to parameter error"; }; if ( $main::opt_help ) { warn "$main::program_name $main::program_version $main::program_date\n"; warn "$0 \n"; warn " -help\n" if $main::opt_help; warn " -debug\n" if $main::opt_debug; warn " -test\n" if $main::opt_debug; warn " -static\n" if $main::opt_static; warn " -o $main::opt_output_file\n" if $main::opt_output_file; warn " -i $main::opt_input_file\n" if $main::opt_input_file; exit 0; }; if ( $main::opt_test ) { &sm2cron_time(""); &sm2cron_time("6s"); &sm2cron_time("5m"); &sm2cron_time("4h"); &sm2cron_time("3d"); &sm2cron_time("2w"); &sm2cron_time("2w3d4h5m6s"); &sm2cron_time("89s"); &sm2cron_time("90m"); &sm2cron_time("150m"); &sm2cron_time("125"); &sm2cron_time("31d"); &sm2cron_time("35d"); &sm2cron_time("5w"); &sm2cron_time("9w"); exit 0; }; $output_file = $main::opt_output_file if ($main::opt_output_file); my $input_file = $main::opt_input_file || $Conffile; # $main::debug is used in Parse_mc ! $main::debug = $main::opt_debug || $main::debug; # Read /etc/mail/sendmail.conf (if extant) &Parse_conf::read_config($Conffile); # [Re]write /etc/mail/sendmail.config &Parse_conf::write_config($Conffile); my ($ok, $value) = &Parse_conf::get_value('HANDS_OFF'); if ($value ne '0') { unlink "/etc/cron.d/sendmail"; exit; }; # Reflect settings in /etc/cron.d/sendmail &write_crontab; if ( $output_file eq '' ) { chown '0', '0', "/etc/cron.d/sendmail"; chmod 0644, "/etc/cron.d/sendmail"; }; # Reflect settings in /etc/inetd.conf &update_inetd; # Create/Delete files &update_files; exit (0); # #------------------------------------------------------------------------ # Check for nullclient mode in /etc/mail/sendmail.mc #------------------------------------------------------------------------ sub check_nullclient { my $nullclient = 0; my $in_file = "/etc/mail/sendmail.mc"; if ( -r $in_file ) { my $ifh; unless ( open($ifh, "<$in_file") ) { warn("Could not open $in_file($!), ignoring it.\n"); }; line: while (<$ifh>) { next line if /^$/; # skip empty lines next line if /^#/; # skip comments next line if /^dnl /; # skip comments chomp; # drop tailing \n if (/^\s*FEATURE\(\s*`?nullclient/) { $nullclient = 1; last line; }; }; }; return $nullclient; }; # #------------------------------------------------------------------------ # Compute time setting for Crontab entry (simplistic) # NOTE: It does the basics pretty darned well... *BUT* # It fails, miserably, on things that would multiple lines: # 90 minutes: does it at 30 minutes (90-60) # Or are just edge conditions: # 25 hours: treated as 24 hours # 35 days: does it the 7rd of every month (35-28) #------------------------------------------------------------------------ sub sm2cron_time { my $month = 0; my $week = 0; my $day = 0; my $hour = 0; my $minute = 0; my $second = 0; my $tmp = 0; my $t = ''; my $cron = ''; my ($sm) = @_; my $seconds = 0; my $elapsed = 0; my $randstart = '00'; if ($sm eq '') { if ( $main::opt_test ) { print "mm hh dom mon dow = sm2cron_time($sm);\n"; }; return ($cron, $seconds); }; # Convert sendmail time # 1w2d3h4m5s # to cron time # m h dom mon dow $t = $sm; if ( $t =~ /^\d+$/ ) { $minute = $sm; } else { ($week = $sm) =~ s/.*?(\d+)w.*/$1/ if ( $t =~ /w/ ); ($day = $sm) =~ s/.*?(\d+)d.*/$1/ if ( $t =~ /d/ ); ($hour = $sm) =~ s/.*?(\d+)h.*/$1/ if ( $t =~ /h/ ); ($minute = $sm) =~ s/.*?(\d+)m.*/$1/ if ( $t =~ /m/ ); ($second = $sm) =~ s/.*?(\d+)s.*/$1/ if ( $t =~ /s/ ); } # Rationalize the time $seconds = ($week * 7 * 24 * 60 * 60) + ($day * 24 * 60 * 60) + ($hour * 60 * 60) + ($minute * 60) + $second; $elapsed = $seconds; $month = $seconds / (4 * 7 * 24 * 60 * 60); $seconds = $seconds % (4 * 7 * 24 * 60 * 60); $week = $seconds / (7 * 24 * 60 * 60); $seconds = $seconds % (7 * 24 * 60 * 60); $day = $seconds / (24 * 60 * 60); $seconds = $seconds % (24 * 60 * 60); $hour = $seconds / (60 * 60); $seconds = $seconds % (60 * 60); $minute = $seconds / (60); $seconds = $seconds % (60); $second = $seconds; # Cron doesn't do seconds, round to minutes or ignore $minute = $minute + 1 if ($second > 30); # Minute of hour (0-59) $minute = sprintf("%02d", $minute); $randstart = sprintf("%02d", int(rand(60))) if (!$main::opt_static); if (0 < $hour + $day + $week + $month) { if (1 >= $minute) { $cron = "$randstart "; } else { $cron = "$minute "; } } elsif (1 >= $minute) { $cron = "* "; } else { $cron = "*/$minute"; }; # Hour of day (0-23) $hour = sprintf("%02d", $hour); $randstart = sprintf("%02d", int(rand(24))) if (!$main::opt_static); if (0 < $day + $week + $month) { if (1 >= $hour) { $cron = "$cron $randstart "; } else { $cron = "$cron $hour "; } } elsif (1 >= $hour) { $cron = "$cron * "; } else { $cron = "$cron */$hour"; }; # Day of month (1-31) $day = $day + (7 * $week); $day = sprintf("%02d", $day); $randstart = 1 + sprintf("%02d", int(rand(31))) if (!$main::opt_static); if (0 < $month) { if (1 >= $day) { $cron = "$cron $randstart "; } else { $cron = "$cron $day "; } } elsif (1 >= $day) { $cron = "$cron * "; } else { $cron = "$cron */$day"; }; # Month in year (1-12) $month = sprintf("%02d", $month); $randstart = 1 + sprintf("%02d", int(rand(12))) if (!$main::opt_static); if (1 >= $month) { $cron = "$cron * "; } else { $cron = "$cron */$month"; }; $cron = "$cron *"; # Day of week (0-7) if ( $main::opt_test ) { print "$cron = sm2cron_time($sm);\n"; }; return ($cron, $elapsed); }; # #------------------------------------------------------------------------ # Write updated cron file #------------------------------------------------------------------------ sub write_crontab { my $var; my $interval = ''; my $cronint = ''; my $test = "test -x /etc/init.d/sendmail && test -x /usr/share/sendmail/sendmail && test -x /usr/lib/sm.bin/sendmail"; my $command = ''; my $ok = ''; my $mailto = ''; my $mmode = ''; my $qmode = ''; my $msp_line = ''; my $mta_line = ''; my $age_line = ''; ($ok, $mailto) = &Parse_conf::get_value('CRON_MAILTO'); if ( ! $ok ) { return; }; my $out_file = $output_file || "/etc/cron.d/sendmail"; print STDOUT "Writing $out_file.\n"; $out_file = '&STDOUT' if ($out_file eq '-'); unless ( open($ofh, ">$out_file") ) { warn("Could not open $out_file($!), using STDOUT\n"); open($ofh, ">&STDOUT"); }; $out_file = '-' if ($out_file eq '&STDOUT'); print $ofh <<"EOT"; #################################################################### ##### This file is automagically generated -- edit at your own risk ##### ##### file: ${out_file} ##### generated via: (${interp_pgm} ${interp_vrm}) ##### ${main::program_name} ##### version: ${main::program_version} ${main::program_date} ##### by: ${user}\@${hostname} ##### on: ${current_time} ##### in: ${directory} ##### input files: EOT foreach my $file ( split(' ', $input_file) ) { print $ofh <<"EOT"; ##### ${file} EOT }; print $ofh <<"EOT"; ##### #################################################################### #------------------------------------------------------------------------------ # # $out_file # # Copyright (c) 2001-2010 Richard Nelson. All Rights Reserved. # Version: ${main::program_version} # Time-stamp: <${main::program_date}> # # Sendmail crontab - Call sendmail at various times to do the following: # 1) Age queues - move undelivered mail to a slower queue # 2) Retry any mail queued by the message submission process # 3) run the queues (deliver mail) if a standalone daemon is not desired # # Each processes is independant and guided by /etc/mail/sendmail.conf and # {sendmail,submit}.mc files. # # There isn't anything here that should need touching. # # Any requisite queue/misc parameters must be set in /etc/mail/sendmail.conf # and reflected herein via /usr/sbin/sendmailconfig (or more directly via # ${main::program_name}). # #------------------------------------------------------------------------------ # # use default path, shell, home #SHELL=/bin/sh #PATH= #HOME= # send mail to this user, as `mail/smmsp` isn't real. MAILTO=$mailto # # format of entries: # m h dom mon dow user command # #------------------------------------------------------------------------------ # Every so often, give sendmail a chance to run the MSP queues. # EOT ($ok, $interval) = &Parse_conf::get_value('MSP_INTERVAL'); ($cronint, $ok) = &sm2cron_time($interval); $command = "$test && /usr/share/sendmail/sendmail cron-msp"; ($ok, $mmode) = &Parse_conf::get_value('MSP_MODE'); ($ok, $qmode) = &Parse_conf::get_value('QUEUE_MODE'); if ($mmode eq 'Cron' and ($interval ne '') #or ($mmode eq 'None' and $qmode eq 'Cron') ) { $msp_line = "$cronint\t\tsmmsp\t$command"; } else { $msp_line = "#$cronint\t\tsmmsp\t$command"; }; print $ofh "$msp_line\n"; print $ofh <<"EOT"; # #------------------------------------------------------------------------------ # Every so often, give sendmail a chance to run the MTA queues. # Will also run MSP queues if enabled # EOT ($ok, $interval) = &Parse_conf::get_value('QUEUE_INTERVAL'); ($cronint, $ok) = &sm2cron_time($interval); $command = "$test && /usr/share/sendmail/sendmail cron-mta"; if ($qmode eq 'Cron' and ($interval ne '') ) { $mta_line = "$cronint\t\troot\t$command"; } else { $mta_line = "#$cronint\t\troot\t$command"; }; print $ofh "$mta_line\n"; print $ofh <<"EOT"; # #------------------------------------------------------------------------------ # Every so often, give sendmail a chance to age the queues. # EOT ($ok, $var) = &Parse_conf::get_value('AGE_DATA'); my $tmpval = eval $var; if ($@) { warn $@; } else { $var = $tmpval; }; if (not ref $var) { print $ofh "# No queue aging\n"; } elsif (@{$var} == 0) { print $ofh "# No queue aging\n"; } else { foreach my $entry (@{$var}) { ($interval, $ok) = &sm2cron_time(@$entry[0]); my $criteria = @$entry[1] || join('','-s ',$ok); my $to = @$entry[2]; my $from = @$entry[3]; $command = "$test && /usr/share/sendmail/qtool.pl"; $from = "/var/spool/mqueue/$from" if ($from !~ /^\//); $to = "/var/spool/mqueue/$to" if ($to !~ /^\//); $age_line = "$interval\t\troot\t$command $criteria $to $from"; print $ofh "$age_line >/dev/null\n"; }; }; print $ofh <<"EOT"; # EOT close($ofh); }; # #------------------------------------------------------------------------ # Update /etc/inetd.conf file #------------------------------------------------------------------------ sub update_inetd { # Don't try to write if we're debugging if ($output_file ne '') { return; }; my ($ok, $mode) = &Parse_conf::get_value('DAEMON_MODE'); if ( $ok and -x '/usr/sbin/update-inetd' ) { if ( $mode eq 'Inetd' ) { system 'update-inetd --enable smtp,smtps,submission' } else { system 'update-inetd --disable smtp,smtps,submission' }; }; }; # #------------------------------------------------------------------------ # Update mail statistics information (create/delete files) #------------------------------------------------------------------------ sub update_files { # Don't try to write if we're debugging if ($output_file ne '') { return; }; my ($class, $flags, $files, $options); my ($ok, $stats); my $file; # # Read the mc/m4 files &Parse_mc::read_dbs('', ''); # Obtain entry for HOST_STATUS_DIRECTORY ($class, $flags, $files, $options) = &Parse_mc::entry_dbs('confHOST_STATUS_DIRECTORY'); $file = @{$files}[0]; ($ok, $stats) = &Parse_conf::get_value('DAEMON_HOSTSTATS'); if ( $ok and $file ne '-' ) { if ( $stats and ! -d $file) { print STDOUT "Enabling HOST statistics file($file).\n"; system "mkdir ${file}"; my $gid = getgrnam('smmsp'); chown '0', $gid, $file; chmod 02755, $file; } elsif ( ! $stats and -d $file ) { print STDOUT "Disabling HOST statistics file($file).\n"; system "rm -rf ${file}"; }; }; # Obtain entry for STATUS_FILE ($class, $flags, $files, $options) = &Parse_mc::entry_dbs('STATUS_FILE'); $file = @{$files}[0]; ($ok, $stats) = &Parse_conf::get_value('DAEMON_MAILSTATS'); if ( $ok and $file ne '-' ) { if ( $stats and ! -e $file) { print STDOUT "Enabling MTA statistics file($file).\n"; open 'STATS', ">$file"; close 'STATS'; my $gid = getgrnam('smmsp'); chown '0', $gid, $file; chmod 0640, $file; } elsif ( ! $stats and -e $file ) { print STDOUT "Disabling MTA statistics file($file).\n"; unlink $file; }; }; # Obtain entry for MSP_STATUS_FILE ($class, $flags, $files, $options) = &Parse_mc::entry_dbs('MSP_STATUS_FILE'); $file = @{$files}[0]; ($ok, $stats) = &Parse_conf::get_value('MSP_MAILSTATS'); if ( $ok and $file ne '-') { if ( $stats and ! -e $file ) { print STDOUT "Enabling MSP statistics file($file).\n"; open 'STATS', ">$file"; close 'STATS'; my $gid = getgrnam('smmsp'); chown '0', $gid, $file; chmod 0660, $file; } elsif ( ! $stats and -e $file ) { print STDOUT "Disabling MSP statistics file($file).\n"; unlink $file; }; }; };
Close