⚝
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
/
acl
/
Edit File: backup_config.pl
use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require 'acl-lib.pl'; our ($config_directory, %gconfig); # backup_config_files() # Returns files and directories that can be backed up sub backup_config_files { my @rv; # Add primary user and group files my %miniserv; &get_miniserv_config(\%miniserv); push(@rv, $miniserv{'userfile'}); push(@rv, &acl_filename()); # Add all .acl files for users and groups foreach my $u (&list_users(), &list_groups()) { if (!$u->{'proto'}) { push(@rv, "$config_directory/$u->{'name'}.acl", glob("$config_directory/*/$u->{'name'}.acl")); } } # Add /etc/webmin/config ©_source_dest("$config_directory/config", "$config_directory/config.aclbackup"); push(@rv, "$config_directory/config.aclbackup"); # Add /etc/webmin/miniserv.conf ©_source_dest("$config_directory/miniserv.conf", "$config_directory/miniserv.conf.aclbackup"); push(@rv, "$config_directory/miniserv.conf.aclbackup"); return @rv; } # pre_backup(&files) # Called before the files are actually read sub pre_backup { return undef; } # post_backup(&files) # Called after the files are actually read sub post_backup { unlink("$config_directory/config.aclbackup"); unlink("$config_directory/miniserv.conf.aclbackup"); return undef; } # pre_restore(&files) # Called before the files are restored from a backup sub pre_restore { # Remove user and group .acl files foreach my $u (&list_users(), &list_groups()) { if (!$u->{'proto'}) { unlink("$config_directory/$u->{'name'}.acl", glob("$config_directory/*/$u->{'name'}.acl")); } } return undef; } # post_restore(&files) # Called after the files are restored from a backup sub post_restore { # Splice global config entries for users into real config my %aclbackup; &read_file("$config_directory/config.aclbackup", \%aclbackup); unlink("$config_directory/config.aclbackup"); foreach my $k (keys %gconfig) { delete($gconfig{$k}) if ($k =~ /^(lang_|notabs_|theme_|ownmods_)/); } foreach my $k (keys %aclbackup) { $gconfig{$k} = $aclbackup{$k} if ($k =~ /^(lang_|notabs_|theme_|ownmods_)/); } &write_file("$config_directory/config", \%gconfig); # Splice miniserv.conf entries for users and password restrictions into # real config %aclbackup = ( ); &read_file("$config_directory/miniserv.conf.aclbackup", \%aclbackup); unlink("$config_directory/miniserv.conf.aclbackup"); my %miniserv; &get_miniserv_config(\%miniserv); foreach my $k (keys %miniserv) { delete($miniserv{$k}) if ($k =~ /^(preroot_|pass_)/); } foreach my $k (keys %aclbackup) { $miniserv{$k} = $aclbackup{$k} if ($k =~ /^(preroot_|pass_)/); } &put_miniserv_config(\%miniserv); &restart_miniserv(); return undef; } 1;
Simpan