[ Avaa Bypassed ]




Upload:

Command:

www-data@3.22.217.190: ~ $
#!/usr/bin/perl
# upgrade.cgi
# Upgrade webmin if possible

require './webmin-lib.pl';
&foreign_require("proc", "proc-lib.pl");
&foreign_require("acl", "acl-lib.pl");
&ReadParseMime();

$| = 1;
$theme_no_table = 1;
&ui_print_header(undef, $text{'upgrade_title'}, "");

# Do we have an install dir?
my $indir = $in{'dir'};

# Is this a minimal install?
my $mini_type;

if (!$indir) {
	my $install_dir = "$config_directory/install-dir";
	if (-e $install_dir) {
		$indir = &read_file_contents($install_dir);
		$indir = &trim($indir);
		$mini_type = -r "$indir/minimal-install" ? "-minimal" : "";
		$indir = undef if (!-d $indir);
		}
	}

# Save this CGI from being killed by the upgrade
$SIG{'TERM'} = 'IGNORE';

if ($in{'source'} == 0) {
	# from local file
	&error_setup(&text('upgrade_err1', $in{'file'}));
	$file = $in{'file'};
	if (!-r $file) { &inst_error($text{'upgrade_efile'}); }
	if ($file =~ /webmin-(\d+\.\d+)(\-(\d+))?/) {
		$version = $1;
		$release = $3;
		$full = $version.($release ? "-$release" : "");
		}
	if (!$in{'force'}) {
		&check_inst_version($full);
		}
	}
elsif ($in{'source'} == 1) {
	# from uploaded file
	&error_setup($text{'upgrade_err2'});
	$file = &transname();
	$need_unlink = 1;
	if ($no_upload) {
                &inst_error($text{'upgrade_ebrowser'});
                }
	open(MOD, ">$file");
	print MOD $in{'upload'};
	close(MOD);
	if ($in{'upload_filename'} =~ /webmin-(\d+\.\d+)(\-(\d+))?/) {
		$version = $1;
		$release = $3;
		$full = $version.($release ? "-$release" : "");
		}
	}
elsif ($in{'source'} == 2) {
	# find latest version at www.webmin.com by looking at index page
	&error_setup($text{'upgrade_err3'});
	($ok, $version, $release) = &get_latest_webmin_version();
	$ok || &inst_error($version);
	$full = $version.($release ? "-$release" : "");
	if (!$in{'force'}) {
		# Is the new version and release actually newer
		&check_inst_version($full);
		}
	my $sfx;
	if ($in{'mode'} eq 'rpm') {
		# Downloading RPM
		$release ||= 1;
		$progress_callback_url = &convert_osdn_url(
		    "http://$osdn_host/webadmin/webmin-${version}-${release}.noarch.rpm");
		$sfx = ".rpm";
		}
	elsif ($in{'mode'} eq 'deb') {
		# Downloading Debian package
		$release = $release ? "-".$release : "";
		$progress_callback_url = &convert_osdn_url(
		    "http://$osdn_host/webadmin/webmin_${version}${release}_all.deb");
		$sfx = ".deb";
		}
	elsif ($in{'mode'} eq 'solaris-pkg') {
		# Downloading my Solaris package
		$release = $release ? "-".$release : "";
		$progress_callback_url = &convert_osdn_url(
		    "http://$osdn_host/webadmin/webmin-${version}${release}.pkg.gz");
		$sfx = ".pkg";
		}
	else {
		# Downloading tar.gz file
		$release = $release ? "-".$release : "";
		$progress_callback_url = &convert_osdn_url(
			"http://$osdn_host/webadmin/webmin-${version}${release}${mini_type}.tar.gz");
		$sfx = ".tar.gz";
		}
	($host, $port, $page, $ssl) = &parse_http_url($progress_callback_url);
	$file = &transname().$sfx;
	&http_download($host, $port, $page, $file, \$error,
		       \&progress_callback, $ssl);
	$error && &inst_error($error);
	$need_unlink = 1;
	}
elsif ($in{'source'} == 5) {
	# Download from some URL
	&error_setup(&text('upgrade_err5', $in{'url'}));
	$file = &transname();
	$in{'url'} = &convert_osdn_url($in{'url'});
	$progress_callback_url = $in{'url'};
	if ($in{'url'} =~ /(\.(deb|rpm|pkg|tar.gz))$/i) {
		$file .= $1;
		}
	if ($in{'url'} =~ /^(http|https):\/\/([^\/]+)(\/.*)$/) {
		$ssl = $1 eq 'https';
		$host = $2; $page = $3; $port = $ssl ? 443 : 80;
		if ($host =~ /^(.*):(\d+)$/) { $host = $1; $port = $2; }
		&http_download($host, $port, $page, $file, \$error,
			       \&progress_callback, $ssl);
		}
	elsif ($in{'url'} =~ /^ftp:\/\/([^\/]+)(:21)?\/(.*)$/) {
		$host = $1; $ffile = $3;
		&ftp_download($host, $ffile, $file,
			      \$error, \&progress_callback);
		}
	else { &inst_error($text{'upgrade_eurl'}); }
	$need_unlink = 1;
	$error && &inst_error($error);
	if ($in{'url'} =~ /webmin-(\d+\.\d+)(\-(\d+))?/) {
		$version = $1;
		$release = $3;
		$full = $version.($release ? "-$release" : "");
		}
	}
elsif ($in{'source'} == 3) {
	# Get the latest version from Caldera with cupdate
	&redirect("/cupdate/");
	}
elsif ($in{'source'} == 4) {
	# Just run the command  emerge webmin
	&error_setup(&text('upgrade_err4'));
	$file = "webmin";
	$need_unlink = 0;
	}
$qfile = quotemeta($file);

# Import the signature for RPM
if ($in{'mode'} eq 'rpm') {
	system("rpm --import $module_root_directory/jcameron-key.asc >/dev/null 2>&1");
	}

# Check the signature if possible
if ($in{'sig'}) {
	# Check the package signature
	($ec, $emsg) = &gnupg_setup();
	if (!$ec) {
		if ($in{'mode'} eq 'rpm') {
			# Use rpm's gpg signature verification
			my $out = &backquote_command(
					"rpm --checksig $qfile 2>&1");
			if ($?) {
				$ec = 3;
				$emsg = &text('upgrade_echecksig',
					      "<pre>$out</pre>");
				}
			}
		else {
			# Do a manual signature check
			if ($in{'source'} == 2) {
				# Download the key for this tar.gz
				my ($sigtemp, $sigerror);
				&http_download($update_host, $update_port, "/download/sigs/webmin-${full}${mini_type}.tar.gz-sig.asc", \$sigtemp, \$sigerror);
				if ($sigerror) {
					$ec = 4;
					$emsg = &text('upgrade_edownsig',
						      $sigerror);
					}
				else {
					my $data = &read_file_contents($file);
					my ($vc, $vmsg) =
					    &verify_data($data, $sigtemp);
					if ($vc > 1) {
						$ec = 3;
						$emsg = &text(
						    "upgrade_everify$vc",
						    &html_escape($vmsg));
						}
					}
				}
			else {
				$emsg = $text{'upgrade_nosig'};
				}
			}
		}

	# Tell the user about any GnuPG error
	if ($ec) {
		&inst_error($emsg);
		}
	elsif ($emsg) {
		print "$emsg<p>\n";
		}
	else {
		print "<p></p>$text{'upgrade_sigok'}<p>\n";
		}
	}
else {
	print "$text{'upgrade_nocheck'}<p>\n";
	}

if ($in{'mode'} ne 'gentoo') {
	# gunzip the file if needed
	open(FILE, "<$file");
	read(FILE, $two, 2);
	close(FILE);
	if ($two eq "\037\213") {
		if (!&has_command("gunzip")) {
			&inst_error($text{'upgrade_egunzip'});
			}
		$newfile = &transname();
		$out = &backquote_command("gunzip -c $qfile 2>&1 >$newfile");
		if ($?) {
			unlink($newfile);
			&inst_error(&text('upgrade_egzip', "<tt>$out</tt>"));
			}
		unlink($file) if ($need_unlink);
		$need_unlink = 1;
		$file = $newfile;
		}
	}
$qfile = quotemeta($file);

if ($in{'mode'} eq 'rpm') {
	# Check if it is an RPM package
	$rpmname = "webmin";
	if (open(RPM, "<$root_directory/rpm-name")) {
		chop($rpmname = <RPM>);
		close(RPM);
		}
	$out = &backquote_command("rpm -qp $qfile");
	$out =~ /(^|\n)\Q$rpmname\E-(\d+\.\d+)-(\d+)/ ||
	        /(^|\n)\Q$rpmname\E-(\d+\.\d+)/ ||
		&inst_error($text{'upgrade_erpm'});
	$version = $2;
	$release = $3;
	$full = $version.($release ? "-$release" : "");
	if (!$in{'force'}) {
		# Is the new version and release actually newer
		&check_inst_version($full);
		}

	# Install the RPM
	$ENV{'tempdir'} = $gconfig{'tempdir'};
	print "<p>",$text{'upgrade_setuprpm'},"<p>\n";
	print "<pre>";
	if ($in{'force'}) {
		&proc::safe_process_exec(
			"rpm -Uv --force --nodeps $qfile", 0, 0,
			STDOUT, undef, 1, 1);
		}
	else {
		&proc::safe_process_exec(
			"rpm -Uv --ignoreos --ignorearch --nodeps $qfile", 0, 0,
			STDOUT, undef, 1, 1);
		}
	unlink($file) if ($need_unlink);
	print "</pre>\n";
	}
elsif ($in{'mode'} eq 'deb') {
	# Check if it is a Debian package
	$debname = "webmin";
	if (open(RPM, "<$root_directory/deb-name")) {
		chop($debname = <RPM>);
		close(RPM);
		}
	$out = &backquote_command("dpkg --info $qfile");
	$out =~ /Package:\s+(\S+)/ && $1 eq $debname ||
		&inst_error($text{'upgrade_edeb'});
	$out =~ /Version:\s+(\S+)/ ||
		&inst_error($text{'upgrade_edeb'});
	$full = $1;
	($version, $release) = split(/\-/, $full);
	if (!$in{'force'}) {
		&check_inst_version($full);
		}

	# Install the package
	$ENV{'tempdir'} = $gconfig{'tempdir'};
	print "<p>",$text{'upgrade_setupdeb'},"<p>\n";
	print "<pre>";
	$ENV{'DEBIAN_FRONTEND'} = 'noninteractive';
	my $cmd = "dpkg --install --force-depends $qfile";
	if (&has_command("apt-get")) {
		$cmd = "apt-get install $qfile || $cmd";
		}
	&proc::safe_process_exec($cmd, 0, 0, STDOUT, undef, 1, 1);
	unlink($file) if ($need_unlink);
	print "</pre>\n";
	}
elsif ($in{'mode'} eq 'solaris-pkg' || $in{'mode'} eq 'sun-pkg') {
	# Check if it is a solaris package
	&foreign_require("software", "software-lib.pl");
	&foreign_call("software", "is_package", $file) ||
		&inst_error($text{'upgrade_epackage'});
	my @p = &foreign_call("software", "file_packages", $file);
	#
	# The package name will always include "webmin" in lower case,
	# but may be preceded by the source package source ("WS" for the
	# Webmin.com package, "SUNW" for the Sun distributed package).
	# and it could have trailing characters to define a set of items
	# that are installed separately ("r" for the Sun "root" package,
	# "u" for the Sun "usr" package.
	#
	# So the problem is how to match the requested package to the
	# currently installed package.
	#

	foreach $p (@p) {
		# Hardcode till I can get a better thought for doing this
		# via a config (or other) file..
		($pkg, $description) = split(/ /, $p);
		if ($pkg =~ /^(SUNWwebminu|WSwebmin)$/) {
			break;
			}
		else {
			$pkg ='';
			}
		}

	# Fallthrough error
	if ($pkg eq '' ) {
		&inst_error($text{'upgrade_ewpackage'});
		}

	# Install the package
	print "<p>",$text{'upgrade_setuppackage'},"<p>\n";
	print "PKG: $pkg<br>";
	$ENV{'KEEP_ETC_WEBMIN'} = 1;

	# Need to do this inline, otherwise the child process won't install the
	# package.  It would be interesting, however, if this were embedded in
	# a remote script that could be nohup'd and it would restart the server.
	chdir("/");
	my $pre_install_script = "$config_directory/.pre-install";
	my $stop_script = -r $pre_install_script ? $pre_install_script : "$config_directory/stop";
	&proc::safe_process_exec_logged(
		$stop_script, 0, 0, STDOUT, undef, 1,1);

	$in{'root'} = '/';
	$in{'adminfile'} = '$module_root_directory/adminupgrade';
	$rv = &software::install_package($file, $pkg);
	&error($rv) if ($rv);
	unlink($file) if ($need_unlink);
	$ENV{'config_dir'} = $config_directory;
	$ENV{'webmin_upgrade'} = 1;
	$ENV{'autothird'} = 1;
	$ENV{'nostop'} = 1;
	$ENV{'nostart'} = 1;
	$ENV{'tempdir'} = $gconfig{'tempdir'};
	print "<p>",$text{'upgrade_setup'},"<p>\n";
	print "<pre>";

	# We now need to figure out the installed directory for
	# this package.  The best way is to find the basename
	# for the miniserv.pl file associated with this package
	# or, in grep context:
	#   grep "miniserv.pl.*$pkg"
	# and the first element includes the pathname.
	#
	$targ = &backquote_command("grep \"miniserv.pl.*$pkg\" /var/sadm/install/contents");
	if ($targ =~ /^(.*)\/miniserv.pl.*$/) {
		$dir = $1;
		}

	$setup = $indir ? "./setup.sh '$indir'" : "./setup.sh";
	print "Package Directory: $dir<br>";
	print  "cd $dir && ./setup.sh<br>";
	&proc::safe_process_exec(
		"cd $dir && ./setup.sh", 0, 0, STDOUT, undef, 1, 1);
	&proc::safe_process_exec_logged(
		"$config_directory/.post-install", 0, 0, STDOUT, undef, 1,1);
	print "</pre>\n";
	}
elsif ($in{'mode'} eq 'gentoo') {
	# Check if it is a gentoo .tar.gz or .ebuild file of webmin
	open(EMERGE, "emerge --pretend ".quotemeta($file)." 2>/dev/null |");
	while(<EMERGE>) {
		s/\r|\n//g;
		s/\033[^m]+m//g;
		if (/\s+[NRU]\s+\]\s+([^\/]+)\/webmin\-(\d\S+)/) {
			$version = $2;
			}
		}
	close(EMERGE);
	$version || &inst_error($text{'upgrade_egentoo'});
	if (!$in{'force'}) {
		&check_inst_version($version);
		}

	# Install the Gentoo package
	print "<p>",$text{'upgrade_setupgentoo'},"<p>\n";
	print "<pre>";
	&proc::safe_process_exec("emerge '$file'", 0, 0, STDOUT, undef, 1, 1);
	unlink($file) if ($need_unlink);
	print "</pre>\n";
	}
else {
	# Check if it is a webmin tarfile
	open(TAR, "tar tf $qfile 2>&1 |");
	while(<TAR>) {
		s/\r|\n//g;
		if (/^webmin-([0-9\.]+)\//) {
			$version = $1;
			}
		if (/^usermin-([0-9\.]+)\//) {
			$usermin_version = $1;
			}
		if (/^[^\/]+\/(\S+)$/) {
			$hasfile{$1}++;
			}
		if (/^(webmin-([0-9\.]+)\/([^\/]+))$/ && $3 ne ".") {
			# Found a top-level file, or *possibly* a directory
			# under some versions of tar. Keep it so we know which
			# files to extract.
			push(@topfiles, $_);
			}
		elsif (/^(webmin-[0-9\.]+\/([^\/]+))\// && $2 ne ".") {
			# Found a sub-directory, like webmin-1.xx/foo/
			# Keep this, so that we know which modules to extract.
			# Also keep the full directory like webmin-1.xx/foo
			# to avoid treating it as a file.
			$intar{$2}++;
			$tardir{$1}++;
			}
		}
	close(TAR);
	if ($usermin_version) {
		&inst_error(&text('upgrade_eusermin', $usermin_version));
		}
	if (!$version) {
		if ($hasfile{'module.info'}) {
			&inst_error(&text('upgrade_emod', 'edit_mods.cgi'));
			}
		else {
			&inst_error($text{'upgrade_etar'});
			}
		}
	if (!$in{'force'}) {
		&check_inst_version($version);
		}

	# Work out where to extract
	if ($indir) {
		# Since we are currently installed in a fixed directory,
		# just extract to a temporary location
		$extract = &transname();
		mkdir($extract, 0755);
		}
	else {
		# Next to the current directory
		$extract = "$root_directory/..";
		}

	# Do the extraction of the tar file, and run setup.sh
	$| = 1;
	if ($in{'only'}) {
		# Extact top-level files like setup.sh and os_list.txt
		$topfiles = join(" ", map { quotemeta($_) }
					  grep { !$tardir{$_} } @topfiles);
		$out = &backquote_command("cd $extract && tar xf $file $topfiles 2>&1 >/dev/null");
		if ($?) {
			&inst_error(&text('upgrade_euntar', "<tt>$out</tt>"));
			}

		# Add current modules and current non-module directories
		# (like themes and lang and images)
		@mods = grep { $intar{$_} } map { $_->{'dir'} }
			     &get_all_module_infos(1);
		opendir(DIR, $root_directory);
		foreach $d (readdir(DIR)) {
			next if ($d =~ /^\./);
			my $p = "$root_directory/$d";
			if (-d $p && !-r "$p/module.info" && $intar{$d}) {
				push(@mods, $d);
				}
			}
		closedir(DIR);

		# Extract current modules and other directories
		$mods = join(" ", map { quotemeta("webmin-$version/$_") }
				      @mods);
		$out = &backquote_command("cd $extract && tar xf $file $mods 2>&1 >/dev/null");
		if ($?) {
			&inst_error(&text('upgrade_euntar', "<tt>$out</tt>"));
			}
		}
	else {
		# Extract the whole file
		$out = &backquote_command("cd $extract && tar xf $file 2>&1 >/dev/null");
		if ($?) {
			&inst_error(&text('upgrade_euntar', "<tt>$out</tt>"));
			}
		}
	unlink($file) if ($need_unlink);
	$ENV{'config_dir'} = $config_directory;
	$ENV{'webmin_upgrade'} = 1;
	$ENV{'autothird'} = 1;
	$ENV{'tempdir'} = $gconfig{'tempdir'};
	$ENV{'deletedold'} = 1 if ($in{'delete'});
	print "<p>",$text{'upgrade_setup'},"<p>\n";
	print "<pre>";
	$setup = $indir ? "./setup.sh '$indir'" : "./setup.sh";
	&proc::safe_process_exec(
		"cd $extract/webmin-$version && $setup", 0, 0,
		STDOUT, undef, 1, 1);
	print "</pre>\n";
	if (!$?) {
		if ($in{'delete'}) {
			# Can delete the old root directory
			system("rm -rf ".quotemeta($root_directory));
			}
		elsif ($indir) {
			# Can delete the temporary source directory
			system("rm -rf ".quotemeta($extract));
			}
		&lock_file("$config_directory/config");
		$gconfig{'upgrade_delete'} = $in{'delete'};
		&write_file("$config_directory/config", \%gconfig);
		&unlock_file("$config_directory/config");
		}
	}
&webmin_log("upgrade", undef, undef, { 'version' => $version,
				       'mode' => $in{'mode'} });

if ($in{'disc'}) {
	# Forcibly disconnect all other login sessions
	&foreign_require("acl", "acl-lib.pl");
	&get_miniserv_config(\%miniserv);
	&acl::open_session_db(\%miniserv);
	foreach $s (keys %acl::sessiondb) {
		if ($s ne $main::session_id) {
			delete($acl::sessiondb{$s});
			}
		}
	dbmclose(%acl::sessiondb);
	&restart_miniserv(1);
	}

# Find out about any updates for this new version.
($updates) = &fetch_updates($update_url);
$updates = &filter_updates($updates, $version);
if (scalar(@$updates)) {
	print "<br>",&text('upgrade_updates', scalar(@$updates),
		"update.cgi?source=0&show=0&missing=0"),"<p>\n";
	}

# Force refresh of cached updates, in case webmin was included
if (&foreign_check("system-status")) {
	&foreign_require("system-status");
	&system_status::refresh_possible_packages([ "webmin" ]);
	}
if (&foreign_check("virtual-server") && @got) {
	&foreign_require("virtual-server");
	&virtual_server::refresh_possible_packages([ "webmin" ]);
	}

&ui_print_footer("", $text{'index_return'});

sub inst_error
{
unlink($file) if ($need_unlink);
unlink($updatestemp);
print "$main::whatfailed : $_[0] <p>\n";
&ui_print_footer("", $text{'index_return'});
exit;
}

sub check_inst_version
{
my ($full) = @_;
return if ($done_check_inst_version++);	  # Full version may have been checked
					  # in a previous call
my $curr_full = &get_webmin_full_version();
if (&compare_version_numbers($full, $curr_full) == 0) {
	&inst_error(&text('upgrade_elatest', $full));
	}
elsif (&compare_version_numbers($full, $curr_full) < 0) {
	&inst_error(&text('upgrade_eversion', $full));
	}
}

Filemanager

Name Type Size Permission Actions
help Folder 0755
images Folder 0755
lang Folder 0755
subdir Folder 0755
CHANGELOG File 12.02 KB 0644
acme_tiny.py File 11.24 KB 0755
adminupgrade File 299 B 0644
backup_config.pl File 1.97 KB 0755
bootup.cgi File 1.04 KB 0755
cache.cgi File 1.47 KB 0755
cgi_args.pl File 159 B 0755
change_access.cgi File 1.34 KB 0755
change_advanced.cgi File 3 KB 0755
change_anon.cgi File 712 B 0755
change_bind.cgi File 4.8 KB 0755
change_ca.cgi File 674 B 0755
change_debug.cgi File 1.38 KB 0755
change_lang.cgi File 558 B 0755
change_lock.cgi File 554 B 0755
change_log.cgi File 2.38 KB 0755
change_mobile.cgi File 940 B 0755
change_os.cgi File 1.85 KB 0755
change_osdn.cgi File 1.54 KB 0755
change_overlay.cgi File 1.16 KB 0755
change_proxy.cgi File 1.09 KB 0755
change_referers.cgi File 633 B 0755
change_session.cgi File 4.77 KB 0755
change_ssl.cgi File 3.03 KB 0755
change_startpage.cgi File 773 B 0755
change_status.cgi File 1.02 KB 0755
change_theme.cgi File 1.16 KB 0755
change_twofactor.cgi File 1.43 KB 0755
change_ui.cgi File 1.61 KB 0755
change_web.cgi File 2.47 KB 0755
clear_blocked.cgi File 154 B 0755
clear_cache.cgi File 205 B 0755
clone_mod.cgi File 2.06 KB 0755
config File 114 B 0644
config.info File 696 B 0644
config.info.ar File 414 B 0644
config.info.ca File 408 B 0644
config.info.cs File 233 B 0644
config.info.de File 368 B 0644
config.info.es File 229 B 0644
config.info.fa File 301 B 0644
config.info.fr File 577 B 0644
config.info.hr File 0 B 0644
config.info.hu File 0 B 0644
config.info.it File 245 B 0644
config.info.ja File 531 B 0644
config.info.ko File 206 B 0644
config.info.ms File 286 B 0644
config.info.nl File 299 B 0644
config.info.no File 283 B 0644
config.info.pl File 284 B 0644
config.info.pt_BR File 299 B 0644
config.info.ru File 491 B 0644
config.info.sk File 132 B 0644
config.info.sv File 202 B 0644
config.info.tr File 155 B 0644
cpan_modules.pl File 229 B 0755
defaultacl File 17 B 0644
delete_cache.cgi File 471 B 0755
delete_mod.cgi File 2.24 KB 0755
delete_webmincron.cgi File 1.51 KB 0755
download_cert.cgi File 532 B 0755
edit_access.cgi File 1.38 KB 0755
edit_advanced.cgi File 3.87 KB 0755
edit_anon.cgi File 812 B 0755
edit_assignment.cgi File 1.12 KB 0755
edit_bind.cgi File 2.95 KB 0755
edit_blocked.cgi File 944 B 0755
edit_ca.cgi File 2.82 KB 0755
edit_categories.cgi File 1.69 KB 0755
edit_debug.cgi File 2.04 KB 0755
edit_descs.cgi File 1.49 KB 0755
edit_ipkey.cgi File 1.7 KB 0755
edit_lang.cgi File 1.82 KB 0755
edit_lock.cgi File 763 B 0755
edit_log.cgi File 3.04 KB 0755
edit_mobile.cgi File 1.26 KB 0755
edit_mods.cgi File 4.45 KB 0755
edit_os.cgi File 2.72 KB 0755
edit_proxy.cgi File 3.7 KB 0755
edit_referers.cgi File 899 B 0755
edit_sendmail.cgi File 3.48 KB 0755
edit_session.cgi File 5.18 KB 0755
edit_ssl.cgi File 10.55 KB 0755
edit_startpage.cgi File 1.68 KB 0755
edit_status.cgi File 1.13 KB 0755
edit_themes.cgi File 3.72 KB 0755
edit_twofactor.cgi File 1.5 KB 0755
edit_ui.cgi File 2.51 KB 0755
edit_upgrade.cgi File 4.26 KB 0755
edit_web.cgi File 2.88 KB 0755
edit_webmincron.cgi File 1.35 KB 0755
export_mod.cgi File 1.23 KB 0755
feedback_files.pl File 126 B 0755
fix_os.cgi File 228 B 0755
gnupg-lib.pl File 13.38 KB 0755
hide.cgi File 326 B 0755
index.cgi File 4.16 KB 0755
install_mod.cgi File 3.11 KB 0755
install_theme.cgi File 2.29 KB 0755
jcameron-key.asc File 1.29 KB 0644
letsencrypt-cleanup.pl File 2.02 KB 0755
letsencrypt-dns.pl File 2.57 KB 0755
letsencrypt-lib.pl File 14.03 KB 0755
letsencrypt.cgi File 4.64 KB 0755
log_parser.pl File 1.23 KB 0755
module.info File 195 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 142 B 0644
module.info.ar File 185 B 0644
module.info.ar.auto File 22 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 208 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 218 B 0644
module.info.ca File 134 B 0644
module.info.ca.auto File 15 B 0644
module.info.cs File 28 B 0644
module.info.cs.auto File 128 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 142 B 0644
module.info.de File 126 B 0644
module.info.de.auto File 15 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 262 B 0644
module.info.es File 33 B 0644
module.info.es.auto File 109 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 158 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 202 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 141 B 0644
module.info.fr File 32 B 0644
module.info.fr.auto File 129 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 195 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 149 B 0644
module.info.hu File 30 B 0644
module.info.hu.auto File 148 B 0644
module.info.it File 33 B 0644
module.info.it.auto File 107 B 0644
module.info.ja File 180 B 0644
module.info.ko File 22 B 0644
module.info.ko.auto File 129 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 180 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 157 B 0644
module.info.ms File 119 B 0644
module.info.ms.auto File 15 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 144 B 0644
module.info.nl File 28 B 0644
module.info.nl.auto File 117 B 0644
module.info.no File 29 B 0644
module.info.no.auto File 117 B 0644
module.info.pl File 155 B 0644
module.info.pl.auto File 15 B 0644
module.info.pt File 33 B 0644
module.info.pt.auto File 113 B 0644
module.info.pt_BR File 36 B 0644
module.info.pt_BR.auto File 119 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 147 B 0644
module.info.ru File 34 B 0644
module.info.ru.auto File 172 B 0644
module.info.sk File 30 B 0644
module.info.sk.auto File 132 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 147 B 0644
module.info.sv File 30 B 0644
module.info.sv.auto File 114 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 258 B 0644
module.info.tr File 33 B 0644
module.info.tr.auto File 128 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 215 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 209 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 177 B 0644
module.info.zh File 22 B 0644
module.info.zh_TW File 25 B 0644
module.info.zh_TW.auto File 115 B 0644
newcsr.cgi File 800 B 0755
newkey.cgi File 879 B 0755
postinstall.pl File 2.01 KB 0755
refresh_modules.cgi File 664 B 0755
restart.cgi File 87 B 0755
save_assignment.cgi File 485 B 0755
save_categories.cgi File 946 B 0755
save_descs.cgi File 1006 B 0755
save_ipkey.cgi File 1.31 KB 0755
save_newmod.cgi File 278 B 0755
save_sendmail.cgi File 2.08 KB 0755
save_webmincron.cgi File 1016 B 0755
savekey.cgi File 2.8 KB 0755
setup_ca.cgi File 1.52 KB 0755
standard_chooser.cgi File 1.68 KB 0755
stop_ca.cgi File 1.03 KB 0755
syslog_logs.pl File 633 B 0755
system_info.pl File 5.02 KB 0644
test_sendmail.cgi File 784 B 0755
third_chooser.cgi File 1.55 KB 0755
twofactor-funcs-lib.pl File 8.81 KB 0644
uninstall.pl File 236 B 0755
update.cgi File 2.86 KB 0755
upgrade.cgi File 16.6 KB 0755
view_webmincron.cgi File 1.66 KB 0755
webmin-lib.pl File 68.77 KB 0755