4 # backup_config_files()
5 # Returns files and directories that can be backed up
6 sub backup_config_files
10 # Add primary user and group files
12 &get_miniserv_config(\%miniserv);
13 push(@rv, $miniserv{'userfile'});
14 push(@rv, &acl_filename());
16 # Add all .acl files for users and groups
17 foreach my $u (&list_users(), &list_groups()) {
19 push(@rv, "$config_directory/$u->{'name'}.acl",
20 glob("$config_directory/*/$u->{'name'}.acl"));
24 # Add /etc/webmin/config
25 system("cp $config_directory/config $config_directory/config.aclbackup");
26 push(@rv, "$config_directory/config.aclbackup");
28 # Add /etc/webmin/miniserv.conf
29 system("cp $config_directory/miniserv.conf $config_directory/miniserv.conf.aclbackup");
30 push(@rv, "$config_directory/miniserv.conf.aclbackup");
36 # Called before the files are actually read
43 # Called after the files are actually read
46 unlink("$config_directory/config.aclbackup");
47 unlink("$config_directory/miniserv.conf.aclbackup");
52 # Called before the files are restored from a backup
55 # Remove user and group .acl files
56 foreach my $u (&list_users(), &list_groups()) {
58 unlink("$config_directory/$u->{'name'}.acl",
59 glob("$config_directory/*/$u->{'name'}.acl"));
65 # post_restore(&files)
66 # Called after the files are restored from a backup
69 # Splice global config entries for users into real config
71 &read_file("$config_directory/config.aclbackup", \%aclbackup);
72 unlink("$config_directory/config.aclbackup");
73 foreach my $k (keys %gconfig) {
74 delete($gconfig{$k}) if ($k =~ /^(lang_|notabs_|skill_|risk_|theme_|ownmods_)/);
76 foreach my $k (keys %aclbackup) {
77 $gconfig{$k} = $aclbackup{$k} if ($k =~ /^(lang_|notabs_|skill_|risk_|theme_|ownmods_)/);
79 &write_file("$config_directory/config", \%gconfig);
81 # Splice miniserv.conf entries for users into real config
83 &read_file("$config_directory/miniserv.conf.aclbackup", \%aclbackup);
84 unlink("$config_directory/miniserv.conf.aclbackup");
86 &get_miniserv_config(\%miniserv);
87 foreach $k (keys %miniserv) {
88 delete($miniserv{$k}) if ($k =~ /^(preroot_)/);
90 foreach $k (keys %aclbackup) {
91 $miniserv{$k} = $aclbackup{$k} if ($k =~ /^(preroot_)/);
93 &put_miniserv_config(\%miniserv);