⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.93
Server IP:
65.108.141.171
Server:
Linux server.heloix.com 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
webmin
/
virtual-server
/
View File Name :
migrate.cgi
#!/usr/bin/perl # Migrate some virtual server backup file require './virtual-server-lib.pl'; $can = &can_migrate_servers(); $can || &error($text{'migrate_ecannot'}); &error_setup($text{'migrate_err'}); &ReadParseMime(); &require_migration(); # Parse source file input $src = &parse_backup_destination("src", \%in, $can > 1, undef, undef); ($mode) = &parse_backup_url($src); if ($mode == 0) { -r $src || &error($text{'migrate_efile'}); } if ($can < 3) { if (!$in{'user_def'}) { $in{'user'} =~ /^[a-z0-9\.\-\_]+$/i || &error($text{'migrate_euser'}); $user = $in{'user'}; defined(getpwnam($in{'user'})) && &error($text{'migrate_euserclash'}); } if (!$in{'pass_def'}) { $pass = $in{'pass'}; } } $tmpl = &get_template($in{'template'}); &can_use_template($tmpl) || &error($text{'setup_etmpl'}); if ($can < 3) { # Parent can be chosen if (!$in{'parent_def'}) { $parent = &get_domain_by("user", $in{'parent'}, "parent", ""); &can_config_domain($parent) || &error($text{'edit_ecannot'}); } } else { # This user's master domain $parent = &get_domain_by_user($base_remote_user); $parent && &can_edit_domain($parent) || &error($text{'edit_ecannot'}); } if ($parent && !$tmpl->{'for_sub'}) { &error($text{'migrate_etmplsub'}); } elsif (!$parent && !$tmpl->{'for_parent'}) { &error($text{'migrate_etmplparent'}); } $ipinfo = { }; ($ipinfo->{'ip'}, $ipinfo->{'virt'}, $ipinfo->{'virtalready'}, $ipinfo->{'netmask'}) = &parse_virtual_ip($tmpl, $parent ? $parent->{'reseller'} : &reseller_admin() ? $base_remote_user : undef); if (&supports_ip6()) { ($ipinfo->{'ip6'}, $ipinfo->{'virt6'}, $ipinfo->{'virt6already'}, $ipinfo->{'netmask6'}) = &parse_virtual_ip6($tmpl, $parent ? $parent->{'reseller'} : &reseller_admin() ? $base_remote_user : undef); } if (!$in{'prefix_def'}) { $in{'prefix'} =~ /^[a-z0-9\.\-]+$/i || &error($text{'setup_eprefix'}); $prefix = $in{'prefix'}; } $in{'email_def'} || $in{'email'} =~ /\S/ || &error($text{'setup_eemail'}); my @footer_action = &vui_footer_history_back(); &ui_print_unbuffered_header(undef, $text{'migrate_title'}, ""); # Download the file $oldsrc = $src; $nice = &nice_backup_url($oldsrc); if ($mode == 5) { # Uploaded data .. save to temp file &$first_print(&text('migrate_uploading', $in{'src_file'})); $src = &transname(); &open_tempfile(SRC, ">$src", 0, 1); &print_tempfile(SRC, $in{'src_upload'}); &close_tempfile(SRC); @st = stat($src); &$second_print(&text('migrate_uploaded', &nice_size($st[7]))); } elsif ($mode > 0) { # Fetch from some server &$first_print(&text('migrate_downloading', $nice)); $temp = &transname(); $err = &download_backup($src, $temp); if ($err) { &$second_print(&text('migrate_edownload', $err)); goto DONE; } $src = $temp; @st = stat($src); &$second_print(&text('migrate_downloaded', &nice_size($st[7]))); } # Validate the file &$first_print($text{'migrate_validating'}); $vfunc = "migration_$in{'type'}_validate"; ($err, $domain, $user, $pass) = &$vfunc($src, undef, $user, $parent, $prefix, $pass); if ($err) { &$second_print(&text('migrate_evalidate', $err)); goto DONE; } elsif (&domain_name_clash($domain)) { &$second_print($text{'migrate_eclash'}); goto DONE; } @footer_action = ("", $text{'index_return'}); &$second_print($text{'setup_done'}); # Call the migration function &lock_domain_name($domain); &$first_print(&text('migrate_doing1', "<tt>$domain</tt>", $nice)); &$indent_print(); $mfunc = "migration_$in{'type'}_migrate"; @doms = &$mfunc($src, $domain, $user, $in{'webmin'}, $in{'template'}, $ipinfo, $pass, $parent, $prefix, $in{'email_def'} ? undef : $in{'email'}); &unlock_domain_name($domain); &run_post_actions(); &$outdent_print(); # Fix htaccess files foreach my $d (@doms) { &fix_script_htaccess_files($d, &public_html_dir($d)); } # If this user is a reseller, grant any new domains to him if (&reseller_admin()) { foreach my $d (@doms) { $d->{'reseller'} = $base_remote_user; &save_domain($d); } } if (@doms) { $d = $doms[0]; &$second_print(&text('migrate_ok', "edit_domain.cgi?dom=$d->{'id'}", "<tt>".&html_escape($in->{'dom'} || $d->{'dom'})."</tt>")); # Call any theme post command if (defined(&theme_post_save_domain)) { &theme_post_save_domain($d, 'create'); } } else { @footer_action = &vui_footer_history_back(); &$second_print(&text('migrate_failed')); } DONE: &ui_print_footer(@footer_action);