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.217.129
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
webmin /
Delete
Unzip
Name
Size
Permission
Date
Action
acl
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
adsl-client
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
apache
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
at
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
authentic-theme
[ DIR ]
drwxr-xr-x
2026-07-25 20:56
backup-config
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
bacula-backup
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
bandwidth
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
bin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
bind8
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
blue-theme
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
change-user
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
cluster-copy
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
cluster-cron
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
cluster-passwd
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
cluster-shell
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
cluster-software
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
cluster-useradmin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
cluster-usermin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
cluster-webmin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
cpan
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
cron
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
custom
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
dfsadmin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
dhcpd
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
dovecot
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
exim
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
exports
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
fail2ban
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
fdisk
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
fetchmail
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
filemin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
filter
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
firewall
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
firewall6
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
firewalld
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
fsdump
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
gray-theme
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
grub2
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
heartbeat
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
htaccess-htpasswd
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
idmapd
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
images
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
inetd
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
init
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
inittab
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
ipfilter
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
ipfw
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
ipsec
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
iscsi-client
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
iscsi-server
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
iscsi-target
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
iscsi-tgtd
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
kea-dhcp
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
krb5
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
lang
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
ldap-client
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
ldap-server
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
ldap-useradmin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
logrotate
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
logviewer
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
lpadmin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
lvm
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
mailboxes
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
mailcap
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
man
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
mount
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
mysql
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
net
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
nftables
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
nginx
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
nis
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
openslp
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
package-updates
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
pam
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
pap
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
passwd
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
phpini
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
postfix
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
postgresql
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
ppp-client
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
pptp-client
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
pptp-server
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
proc
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
procmail
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
proftpd
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
qmailadmin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
quota
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
raid
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
samba
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
sarg
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
sendmail
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
servers
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
shell
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
shorewall
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
shorewall6
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
smart-status
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
smf
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
software
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
spam
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
squid
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
sshd
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
status
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
stunnel
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
syslog
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
syslog-ng
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
system-status
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
systemd
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
tcpwrappers
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
time
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
tunnel
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
unauthenticated
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
updown
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
useradmin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
usermin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
vendor_perl
[ DIR ]
drwxr-xr-x
2026-06-10 18:25
webalizer
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
webmin
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
webmincron
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
webminlog
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
xinetd
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
xterm
[ DIR ]
drwxr-xr-x
2026-07-25 20:55
LICENCE
1.48
KB
-rw-r--r--
2026-07-17 21:17
LICENCE.ja
1.62
KB
-rw-r--r--
2026-07-17 21:17
README.md
4.23
KB
-rw-r--r--
2026-07-17 21:17
WebminCore.pm
9.05
KB
-rw-r--r--
2026-07-17 21:17
acl_security.pl
4.87
KB
-rwxr-xr-x
2026-07-17 21:17
changepass.pl
868
B
-rwxr-xr-x
2026-07-17 21:22
chooser.cgi
7.21
KB
-rwxr-xr-x
2026-07-17 21:22
config-aix
227
B
-rw-r--r--
2026-07-17 21:17
config-cobalt-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-coherent-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-corel-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-debian-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-freebsd
256
B
-rw-r--r--
2026-07-17 21:17
config-generic-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-gentoo-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-hpux
243
B
-rw-r--r--
2026-07-17 21:17
config-irix
284
B
-rw-r--r--
2026-07-17 21:17
config-lib.pl
11.84
KB
-rwxr-xr-x
2026-07-17 21:17
config-macos
260
B
-rw-r--r--
2026-07-17 21:17
config-mandrake-linux
278
B
-rw-r--r--
2026-07-17 21:17
config-msc-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-netbsd
283
B
-rw-r--r--
2026-07-17 21:17
config-open-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-openbsd
241
B
-rw-r--r--
2026-07-17 21:17
config-openmamba-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-openserver
236
B
-rw-r--r--
2026-07-17 21:17
config-osf1
266
B
-rw-r--r--
2026-07-17 21:17
config-pardus-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-redhat-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-slackware-linux
280
B
-rw-r--r--
2026-07-17 21:17
config-sol-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-solaris
417
B
-rw-r--r--
2026-07-17 21:17
config-suse-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-syno-linux
364
B
-rw-r--r--
2026-07-17 21:17
config-trustix-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-turbo-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-united-linux
264
B
-rw-r--r--
2026-07-17 21:17
config-unixware
286
B
-rw-r--r--
2026-07-17 21:17
config-windows
88
B
-rw-r--r--
2026-07-17 21:17
config.cgi
1.64
KB
-rwxr-xr-x
2026-07-17 21:22
config_save.cgi
1.68
KB
-rwxr-xr-x
2026-07-17 21:22
copyconfig.pl
4.33
KB
-rwxr-xr-x
2026-07-17 21:22
create-module.pl
3.95
KB
-rwxr-xr-x
2026-07-17 21:22
date_chooser.cgi
2.19
KB
-rwxr-xr-x
2026-07-17 21:22
deb-name
7
B
-rw-r--r--
2026-07-17 21:22
defaultacl
124
B
-rw-r--r--
2026-07-17 21:17
defaulttheme
16
B
-rw-r--r--
2026-07-17 21:17
entities_map.txt
1.47
KB
-rw-r--r--
2026-07-17 21:17
fastrpc.cgi
11.87
KB
-rwxr-xr-x
2026-07-17 21:22
favicon.ico
14.73
KB
-rw-r--r--
2026-07-17 21:17
forgot.cgi
6.27
KB
-rwxr-xr-x
2026-07-17 21:22
forgot_form.cgi
1.14
KB
-rwxr-xr-x
2026-07-17 21:22
forgot_send.cgi
5.11
KB
-rwxr-xr-x
2026-07-17 21:22
group_chooser.cgi
7.51
KB
-rwxr-xr-x
2026-07-17 21:22
help.cgi
2.26
KB
-rwxr-xr-x
2026-07-17 21:22
html-editor-lib.pl
17.72
KB
-rw-r--r--
2026-07-17 21:17
index.cgi
5.61
KB
-rwxr-xr-x
2026-07-17 21:22
install-module.pl
1.54
KB
-rwxr-xr-x
2026-07-17 21:22
install-type
4
B
-rw-r--r--
2026-07-17 21:22
javascript-lib.pl
14.69
KB
-rwxr-xr-x
2026-07-17 21:17
lang_list.txt
2.51
KB
-rw-r--r--
2026-07-17 21:17
maketemp.pl
424
B
-rwxr-xr-x
2026-07-17 21:17
mime.types
12.42
KB
-rw-r--r--
2026-07-17 21:17
miniserv-lib.pl
175.51
KB
-rw-r--r--
2026-07-17 21:17
miniserv.pem
2.9
KB
-rw-r--r--
2026-07-17 21:17
miniserv.pl
33.88
KB
-rwxr-xr-x
2026-07-17 21:22
module_chooser.cgi
4.14
KB
-rwxr-xr-x
2026-07-17 21:22
negativeacl
29
B
-rw-r--r--
2026-07-17 21:17
newmods.pl
1.25
KB
-rwxr-xr-x
2026-07-17 21:17
os_eol.json
50.05
KB
-rw-r--r--
2026-07-17 21:17
os_list.txt
35.22
KB
-rw-r--r--
2026-07-17 21:17
oschooser.pl
4.55
KB
-rwxr-xr-x
2026-07-17 21:22
pam_login.cgi
4.33
KB
-rwxr-xr-x
2026-07-17 21:22
password_change.cgi
7.02
KB
-rwxr-xr-x
2026-07-17 21:22
password_form.cgi
1.3
KB
-rwxr-xr-x
2026-07-17 21:22
perlpath.pl
571
B
-rwxr-xr-x
2026-07-17 21:22
record-failed.pl
503
B
-rwxr-xr-x
2026-07-17 21:22
record-login.pl
513
B
-rwxr-xr-x
2026-07-17 21:22
record-logout.pl
516
B
-rwxr-xr-x
2026-07-17 21:22
robots.txt
26
B
-rw-r--r--
2026-07-17 21:17
rpc.cgi
4.03
KB
-rwxr-xr-x
2026-07-17 21:22
run-postinstalls.pl
971
B
-rwxr-xr-x
2026-07-17 21:22
run-uninstalls.pl
1004
B
-rwxr-xr-x
2026-07-17 21:22
safeacl
73
B
-rw-r--r--
2026-07-17 21:17
session_login.cgi
5.11
KB
-rwxr-xr-x
2026-07-17 21:22
setup-repos.sh
766
B
-rw-r--r--
2026-07-17 21:17
setup.bat
3.08
KB
-rw-r--r--
2026-07-17 21:17
setup.pl
32.4
KB
-rwxr-xr-x
2026-07-17 21:22
setup.sh
35.21
KB
-rwxr-xr-x
2026-07-17 21:17
switch_theme.cgi
1.22
KB
-rwxr-xr-x
2026-07-17 21:22
switch_user.cgi
404
B
-rwxr-xr-x
2026-07-17 21:22
thirdparty.pl
1.73
KB
-rwxr-xr-x
2026-07-17 21:17
ui-lib.pl
123.52
KB
-rwxr-xr-x
2026-07-17 21:17
update-from-repo.sh
14.77
KB
-rwxr-xr-x
2026-07-17 21:17
uptracker.cgi
2.89
KB
-rwxr-xr-x
2026-07-17 21:22
user_chooser.cgi
7.39
KB
-rwxr-xr-x
2026-07-17 21:22
version
6
B
-rw-r--r--
2026-07-17 21:17
web-lib-funcs.pl
417.23
KB
-rwxr-xr-x
2026-07-17 21:17
web-lib.pl
856
B
-rwxr-xr-x
2026-07-17 21:17
webmin-daemon
80
B
-rw-r--r--
2026-07-17 21:17
webmin-init
1.93
KB
-rwxr-xr-x
2026-07-17 21:17
webmin-pam
101
B
-rw-r--r--
2026-07-17 21:17
webmin-search-lib.pl
9.47
KB
-rwxr-xr-x
2026-07-17 21:17
webmin-systemd
374
B
-rw-r--r--
2026-07-17 21:17
webmin_search.cgi
2.63
KB
-rwxr-xr-x
2026-07-17 21:22
xmlrpc.cgi
4.14
KB
-rwxr-xr-x
2026-07-17 21:22
Save
Rename
#!/usr/bin/perl # Linked to from the forgotten password email BEGIN { push(@INC, "."); }; use WebminCore; $no_acl_check++; $trust_unknown_referers = 1; &init_config(); &ReadParse(); &load_theme_library(); &theme_forgot_handler($0) if (defined(&theme_forgot_handler)); &error_setup($text{'forgot_err'}); $gconfig{'forgot_pass'} || &error($text{'forgot_ecannot'}); my $timeout = $gconfig{'passreset_timeout'} || 15; $remote_user && &error($text{'forgot_elogin'}); $ENV{'HTTPS'} eq 'ON' || $gconfig{'forgot_pass'} == 2 || &error($text{'forgot_essl'}); $ENV{'SSL_CN_CERT'} == 1 || &error(&text('forgot_esslhost', &html_escape($ENV{'HTTP_HOST'} || $ENV{'SSL_CN'}))) if ($ENV{'HTTPS'} eq 'ON'); # Check that the random ID is valid $in{'id'} =~ /^[a-f0-9]+$/i || &error($text{'forgot_eid'}); my %link; my $linkfile = $main::forgot_password_link_dir."/".$in{'id'}; &read_file($linkfile, \%link) || &error($text{'forgot_eid2'}); time() - $link{'time'} > 60*$timeout && &error(&text('forgot_etime', $timeout)); # Check that the hostname in the original email matches the current hostname my ($basehost) = &parse_http_url(&get_webmin_email_url()); if ($basehost ne $link{'host'}) { &error($text{'forgot_ehost'}); } # Get the Webmin user &foreign_require("acl"); my ($wuser) = grep { $_->{'name'} eq $link{'user'} } &acl::list_users(); # Get the Virtualmin mail Unix user if Webmin user is not found my ($muser, $muserdom); if (!$wuser && $link{'muser'}) { # Probably Virtualmin mail user, so try to find it &foreign_require("virtual-server"); my $d = &virtual_server::get_user_domain(lc($link{'muser'})); if ($d) { my @u = &virtual_server::list_domain_users($d, 0, 0, 1, 1, 0); ($muser) = grep { $_->{'user'} eq lc($link{'muser'}) } @u; } } # Show an error if neither user was found !$muser && $link{'muser'} && &error(&text('forgot_euser3', "<tt>".&html_escape($link{'muser'})."</tt>")); $wuser || $muser || &error(&text('forgot_euser2', "<tt>".&html_escape($link{'user'})."</tt>")); # Set the username whichever is available my $username = $link{'muser'} || $link{'uuser'} || $link{'user'}; my $email = $wuser ? $wuser->{'email'} : $muser ? $muser->{'recovery'} || $muser->{'email'} : undef; &ui_print_header(undef, $text{'forgot_title'}, "", undef, undef, 1, 1); if (defined($in{'newpass'})) { # Validate the password $in{'newpass'} =~ /\S/ || &error($text{'forgot_enewpass'}); $in{'newpass'} eq $in{'newpass2'} || &error($text{'forgot_enewpass2'}); my $perr = &acl::check_password_restrictions( $wuser->{'name'}, $in{'newpass'}); $perr && &error(&text('forgot_equality', $perr)); # Actually update the password my $d; if (&foreign_check("virtual-server")) { # Is this a Virtualmin domain owner? &foreign_require("virtual-server"); $d = &virtual_server::get_domain_by("user", $link{'user'}, "parent", ""); $d && $d->{'disabled'} && &error($text{'forgot_edisabled'}); } if ($d) { # Update in Virtualmin print &text('forgot_vdoing', &virtual_server::show_domain_name($d)),"<br>\n"; &virtual_server::push_all_print(); &virtual_server::set_all_null_print(); foreach my $d (&virtual_server::get_domain_by("user", $link{'user'})) { &virtual_server::lock_domain($d); my $oldd = { %$d }; $d->{'pass'} = $in{'newpass'}; $d->{'pass_set'} = 1; &virtual_server::generate_domain_password_hashes($d, 0); # Update all features foreach my $f (&virtual_server::domain_features($d)) { if ($virtual_server::config{$f} && $d->{$f}) { my $mfunc = "virtual_server::modify_$f"; &$mfunc($d, $oldd); } } # Update all plugins foreach my $f (&virtual_server::list_feature_plugins()) { if ($d->{$f}) { &virtual_server::plugin_call( $f, "feature_modify", $d, $oldd); } } &virtual_server::save_domain($d); &virtual_server::unlock_domain($d); } &virtual_server::run_post_actions(); &virtual_server::pop_all_print(); print $text{'forgot_done'},"<p>\n"; } elsif ($muser) { # Update in Virtualmin if this is a mail user my %oldmuser = %$muser; $muser->{'plainpass'} = $in{'newpass'}; $muser->{'pass'} = &virtual_server::encrypt_user_password( $muser, $muser->{'plainpass'}); $muser->{'passmode'} = 3; &virtual_server::set_pass_change($muser); &virtual_server::modify_user($muser, \%oldmuser, $muserdom); } elsif ($link{'uuser'} || $wuser->{'pass'} eq 'x') { # Update in Users and Groups print &text('forgot_udoing', "<tt>".&html_escape($username)."</tt>"),"<br>\n"; &foreign_require("useradmin"); my ($user) = grep { $_->{'user'} eq $username } &useradmin::list_users(); $user || &error($text{'forgot_eunix'}); $user->{'pass'} eq $useradmin::config{'lock_string'} && &error($text{'forgot_eunixlock'}); my $olduser = { %$user }; $user->{'passmode'} = 3; $user->{'plainpass'} = $in{'newpass'}; $user->{'pass'} = &useradmin::encrypt_password($in{'newpass'}, undef, 1); &useradmin::modify_user($olduser, $user); &useradmin::other_modules("useradmin_modify_user", $user, $olduser); &reload_miniserv(); print $text{'forgot_done'},"<p>\n"; } else { # Update in Webmin print &text('forgot_wdoing', "<tt>".&html_escape($link{'user'})."</tt>"),"<br>\n"; $wuser->{'pass'} = &acl::encrypt_password($in{'newpass'}); &acl::modify_user($wuser->{'name'}, $wuser); &reload_miniserv(); print $text{'forgot_done'},"<p>\n"; } # Print link to login for Webmin user if (!$muser) { print &text('forgot_retry', &get_webprefix()."/", "<tt>".$username."</tt>"),"<p>\n"; } else { print &text('forgot_retry2', "<tt>".$username."</tt>"),"<p>\n"; } &webmin_log("forgot", "reset", undef, { 'user' => $username, 'unix' => $link{'uuser'} ? 1 : 0, 'email' => $email }, "acl"); &unlink_logged($linkfile); } else { # Show password selection form print "<center>\n"; print &ui_form_start("forgot.cgi", "post"); print &ui_hidden("id", $in{'id'}); print &ui_table_start(undef, undef, 2); print &ui_table_row( &text('forgot_newpass', "<tt>".&html_escape($username)."</tt>"), &ui_password("newpass", undef, 30)); print &ui_table_row( $text{'forgot_newpass2'}, &ui_password("newpass2", undef, 30)); print &ui_table_end(); print &ui_form_end([ [ undef, $text{'forgot_passok'} ] ]); print "</center>\n"; } &ui_print_footer();