Linux anchor 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
Apache/2.4.18 (Ubuntu)
Server IP : 10.10.100.4 & Your IP : 216.73.217.150
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
bin /
Delete
Unzip
Name
Size
Permission
Date
Action
2to3
96
B
-rwxr-xr-x
2021-03-01 21:41
2to3-2.7
96
B
-rwxr-xr-x
2021-03-01 21:41
2to3-3.5
96
B
-rwxr-xr-x
2021-01-26 19:45
Mail
102.24
KB
-rwxr-xr-x
2016-01-29 06:12
NF
963
B
-rwxr-xr-x
2016-04-14 21:29
VGAuthService
120.34
KB
-rwxr-xr-x
2018-05-09 01:51
[
50.7
KB
-rwxr-xr-x
2017-03-02 19:07
aa-enabled
22.16
KB
-rwxr-xr-x
2023-06-29 13:30
ab
54.14
KB
-rwxr-xr-x
2020-08-13 03:36
acpi_listen
14.72
KB
-rwxr-xr-x
2016-04-09 00:36
add-apt-repository
6.36
KB
-rwxr-xr-x
2020-08-07 20:51
addpart
18.45
KB
-rwxr-xr-x
2020-01-27 15:28
addr2line
27.12
KB
-rwxr-xr-x
2018-12-07 20:49
apport-bug
2.5
KB
-rwxr-xr-x
2025-07-11 17:07
apport-cli
13.03
KB
-rwxr-xr-x
2025-07-11 17:10
apport-collect
2.5
KB
-rwxr-xr-x
2025-07-11 17:07
apport-unpack
1.8
KB
-rwxr-xr-x
2025-07-11 17:10
apropos
46.98
KB
-rwxr-xr-x
2015-11-07 00:14
apt
14.04
KB
-rwxr-xr-x
2021-04-28 22:30
apt-add-repository
6.36
KB
-rwxr-xr-x
2020-08-07 20:51
apt-cache
78.13
KB
-rwxr-xr-x
2021-04-28 22:30
apt-cdrom
22.13
KB
-rwxr-xr-x
2021-04-28 22:30
apt-config
22.05
KB
-rwxr-xr-x
2021-04-28 22:30
apt-extracttemplates
22.13
KB
-rwxr-xr-x
2021-04-28 22:30
apt-ftparchive
230.13
KB
-rwxr-xr-x
2021-04-28 22:30
apt-get
42.12
KB
-rwxr-xr-x
2021-04-28 22:30
apt-key
20.12
KB
-rwxr-xr-x
2021-04-28 22:27
apt-mark
42.13
KB
-rwxr-xr-x
2021-04-28 22:30
apt-sortpkgs
26.05
KB
-rwxr-xr-x
2021-04-28 22:30
ar
59.12
KB
-rwxr-xr-x
2018-12-07 20:49
arch
30.7
KB
-rwxr-xr-x
2017-03-02 19:07
as
360.82
KB
-rwxr-xr-x
2018-12-07 20:49
at
50.26
KB
-rwsr-sr-x
2016-01-14 23:35
atq
50.26
KB
-rwsr-sr-x
2016-01-14 23:35
atrm
50.26
KB
-rwsr-sr-x
2016-01-14 23:35
awk
642.72
KB
-rwxr-xr-x
2015-12-24 00:11
backupMySQL
1.24
KB
-rwxr-xr-x
2016-12-23 21:30
base32
38.73
KB
-rwxr-xr-x
2017-03-02 19:07
base64
38.73
KB
-rwxr-xr-x
2017-03-02 19:07
basename
30.67
KB
-rwxr-xr-x
2017-03-02 19:07
bashbug
6.79
KB
-rwxr-xr-x
2019-07-12 21:26
batch
152
B
-rwxr-xr-x
2016-01-14 23:35
blkcalc
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
blkcat
13.99
KB
-rwxr-xr-x
2015-11-29 00:13
blkls
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
blkstat
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
bootctl
74.44
KB
-rwxr-xr-x
2021-04-02 17:51
bsd-from
10.27
KB
-rwxr-xr-x
2016-03-01 12:43
bsd-mailx
102.24
KB
-rwxr-xr-x
2016-01-29 06:12
bsd-write
14.41
KB
-rwxr-sr-x
2016-03-01 12:43
busctl
363.21
KB
-rwxr-xr-x
2021-04-02 17:51
byobu
7.26
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-config
996
B
-rwxr-xr-x
2016-04-14 21:29
byobu-ctrl-a
4.67
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-disable
1.26
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-disable-prompt
1.28
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-enable
1.15
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-enable-prompt
1.42
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-export
1.23
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-janitor
5.81
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-keybindings
1.47
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-launch
3.21
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-launcher
1.87
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-launcher-install
2.4
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-launcher-uninstall
1.52
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-layout
3.27
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-prompt
1.13
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-quiet
1.38
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-reconnect-sockets
3.22
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-screen
7.26
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-select-backend
1.42
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-select-profile
6.13
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-select-session
1012
B
-rwxr-xr-x
2016-04-14 21:29
byobu-shell
1.56
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-silent
1.28
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-status
5.86
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-status-detail
1.18
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-tmux
7.26
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-ugraph
4.56
KB
-rwxr-xr-x
2016-04-14 21:29
byobu-ulevel
11.71
KB
-rwxr-xr-x
2016-04-14 21:29
c++
898.27
KB
-rwxr-xr-x
2019-10-04 21:00
c++filt
26.61
KB
-rwxr-xr-x
2018-12-07 20:49
c2ph
35.75
KB
-rwxr-xr-x
2020-10-19 12:57
c89
428
B
-rwxr-xr-x
2006-05-07 11:28
c89-gcc
428
B
-rwxr-xr-x
2006-05-07 11:28
c99
454
B
-rwxr-xr-x
2011-04-11 09:54
c99-gcc
454
B
-rwxr-xr-x
2011-04-11 09:54
c_rehash
6.18
KB
-rwxr-xr-x
2018-05-12 08:20
cal
29.14
KB
-rwxr-xr-x
2016-03-01 12:43
calc_tickadj
2.78
KB
-rwxr-xr-x
2020-01-07 16:08
calendar
27.2
KB
-rwxr-xr-x
2016-03-01 12:43
captoinfo
70.71
KB
-rwxr-xr-x
2016-02-19 09:22
catchsegv
3.25
KB
-rwxr-xr-x
2021-04-21 20:11
catman
34.46
KB
-rwxr-xr-x
2015-11-07 00:14
cautious-launcher
853
B
-rwxr-xr-x
2015-10-30 16:39
cc
894.27
KB
-rwxr-xr-x
2019-10-04 21:23
certbot
385
B
-rwxr-xr-x
2020-12-18 22:20
chacl
14.41
KB
-rwxr-xr-x
2016-02-07 12:10
chage
60.88
KB
-rwxr-sr-x
2019-03-26 20:34
chardet3
389
B
-rwxr-xr-x
2017-10-23 11:51
chardetect3
389
B
-rwxr-xr-x
2017-10-23 11:51
chattr
10.34
KB
-rwxr-xr-x
2020-01-22 15:42
chcon
62.92
KB
-rwxr-xr-x
2017-03-02 19:07
check-language-support
2.71
KB
-rwxr-xr-x
2016-07-28 21:35
check_md5_db.sh
1.98
KB
-rwxr-xr-x
2017-10-08 14:09
checkgid
5.96
KB
-rwxr-xr-x
2020-08-13 03:36
chfn
70.14
KB
-rwsr-xr-x
2019-03-26 20:34
chrt
26.67
KB
-rwxr-xr-x
2020-01-27 15:28
chsh
39.48
KB
-rwsr-xr-x
2019-03-26 20:34
cifscreds
18.34
KB
-rwxr-xr-x
2017-03-06 14:02
ckbcomp
144.19
KB
-rwxr-xr-x
2019-04-10 23:25
cksum
30.67
KB
-rwxr-xr-x
2017-03-02 19:07
clear
6.08
KB
-rwxr-xr-x
2016-02-19 09:22
clear_console
10.27
KB
-rwxr-xr-x
2019-07-12 21:26
cloud-id
310
B
-rwxr-xr-x
2021-04-21 00:06
cloud-init
314
B
-rwxr-xr-x
2021-04-21 00:06
cloud-init-per
2.06
KB
-rwxr-xr-x
2021-03-19 15:37
cmp
42.67
KB
-rwxr-xr-x
2015-12-27 00:11
codepage
10.29
KB
-rwxr-xr-x
2016-09-22 19:33
col
10.26
KB
-rwxr-xr-x
2016-03-01 12:43
col1
963
B
-rwxr-xr-x
2016-04-14 21:29
col2
963
B
-rwxr-xr-x
2016-04-14 21:29
col3
963
B
-rwxr-xr-x
2016-04-14 21:29
col4
963
B
-rwxr-xr-x
2016-04-14 21:29
col5
963
B
-rwxr-xr-x
2016-04-14 21:29
col6
963
B
-rwxr-xr-x
2016-04-14 21:29
col7
963
B
-rwxr-xr-x
2016-04-14 21:29
col8
963
B
-rwxr-xr-x
2016-04-14 21:29
col9
963
B
-rwxr-xr-x
2016-04-14 21:29
colcrt
10.23
KB
-rwxr-xr-x
2016-03-01 12:43
colrm
10.22
KB
-rwxr-xr-x
2016-03-01 12:43
column
14.37
KB
-rwxr-xr-x
2016-03-01 12:43
comm
34.7
KB
-rwxr-xr-x
2017-03-02 19:07
compose
17.55
KB
-rwxr-xr-x
2015-10-30 16:39
corelist
12.49
KB
-rwxr-xr-x
2020-10-19 12:57
cpan
7.25
KB
-rwxr-xr-x
2020-10-19 12:57
cpan5.22-x86_64-linux-gnu
7.27
KB
-rwxr-xr-x
2020-10-19 12:57
cpp
898.27
KB
-rwxr-xr-x
2019-10-04 20:49
cpp-5
898.27
KB
-rwxr-xr-x
2019-10-04 20:49
createDBuser
647
B
-rwxr-xr-x
2016-12-23 21:31
create_md5_db.sh
918
B
-rwxr-xr-x
2017-10-08 14:09
crontab
35.23
KB
-rwxr-sr-x
2016-04-05 23:59
csplit
46.86
KB
-rwxr-xr-x
2017-03-02 19:07
ctail
958
B
-rwxr-xr-x
2016-04-14 21:29
ctstat
18.68
KB
-rwxr-xr-x
2019-04-16 14:37
curl
185.95
KB
-rwxr-xr-x
2021-03-29 17:39
cut
38.8
KB
-rwxr-xr-x
2017-03-02 19:07
dbus-cleanup-sockets
9.98
KB
-rwxr-xr-x
2020-06-11 22:06
dbus-daemon
218.95
KB
-rwxr-xr-x
2020-06-11 22:06
dbus-monitor
21.99
KB
-rwxr-xr-x
2020-06-11 22:06
dbus-run-session
9.98
KB
-rwxr-xr-x
2020-06-11 22:06
dbus-send
21.98
KB
-rwxr-xr-x
2020-06-11 22:06
dbus-update-activation-environment
13.98
KB
-rwxr-xr-x
2020-06-11 22:06
dbus-uuidgen
9.98
KB
-rwxr-xr-x
2020-06-11 22:06
dbwrap_tool
18.23
KB
-rwxr-xr-x
2021-04-14 18:00
deallocvt
10.3
KB
-rwxr-xr-x
2016-09-22 19:33
deb-systemd-helper
17.99
KB
-rwxr-xr-x
2016-02-29 13:24
deb-systemd-invoke
4.37
KB
-rwxr-xr-x
2016-02-29 13:24
debconf
2.79
KB
-rwxr-xr-x
2019-05-08 20:33
debconf-apt-progress
11.27
KB
-rwxr-xr-x
2019-05-08 20:33
debconf-communicate
608
B
-rwxr-xr-x
2019-05-08 20:33
debconf-copydb
1.68
KB
-rwxr-xr-x
2019-05-08 20:33
debconf-escape
647
B
-rwxr-xr-x
2019-05-08 20:33
debconf-set-selections
2.87
KB
-rwxr-xr-x
2019-05-08 20:33
debconf-show
1.78
KB
-rwxr-xr-x
2019-05-08 20:33
debian-distro-info
22.59
KB
-rwxr-xr-x
2021-04-21 21:04
delpart
18.45
KB
-rwxr-xr-x
2020-01-27 15:28
dh_bash-completion
2.49
KB
-rwxr-xr-x
2015-08-18 21:47
dh_installxmlcatalogs
9.44
KB
-rwxr-xr-x
2012-11-07 22:44
dh_pypy
11.71
KB
-rwxr-xr-x
2019-08-16 02:59
dh_python2
1.03
KB
-rwxr-xr-x
2017-11-24 01:52
dh_python3
11.91
KB
-rwxr-xr-x
2019-08-16 02:59
diff
123.08
KB
-rwxr-xr-x
2015-12-27 00:11
diff3
54.86
KB
-rwxr-xr-x
2015-12-27 00:11
dig
102.09
KB
-rwxr-xr-x
2021-04-27 15:10
dircolors
38.71
KB
-rwxr-xr-x
2017-03-02 19:07
dirmngr
360.2
KB
-rwxr-xr-x
2018-06-14 22:06
dirmngr-client
94.63
KB
-rwxr-xr-x
2018-06-14 22:06
dirname
30.67
KB
-rwxr-xr-x
2017-03-02 19:07
distro-info
18.59
KB
-rwxr-xr-x
2021-04-21 21:04
do-release-upgrade
7.9
KB
-rwxr-xr-x
2020-10-09 22:55
dotlockfile
14.51
KB
-rwxr-sr-x
2013-12-07 04:08
dpkg
271.74
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-architecture
12.33
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-buildflags
6.07
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-buildpackage
22.49
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-checkbuilddeps
7.33
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-deb
131.43
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-distaddfile
2.71
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-divert
135.4
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-genchanges
17.45
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-gencontrol
13.92
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-gensymbols
10.39
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-maintscript-helper
17.35
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-mergechangelogs
8.34
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-name
6.63
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-parsechangelog
4.44
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-query
143.43
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-scanpackages
8.21
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-scansources
8.94
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-shlibdeps
28.88
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-source
19.86
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-split
107.14
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-statoverride
59.08
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-trigger
70.97
KB
-rwxr-xr-x
2021-04-20 22:48
dpkg-vendor
3.19
KB
-rwxr-xr-x
2021-04-20 22:48
du
119.17
KB
-rwxr-xr-x
2017-03-02 19:07
dumpkeys
80.4
KB
-rwxr-xr-x
2016-09-22 19:33
dvipdf
1023
B
-rwxr-xr-x
2021-01-06 20:23
dwp
2.6
MB
-rwxr-xr-x
2018-12-07 20:49
eatmydata
2.74
KB
-rwxr-xr-x
2016-04-10 21:10
ec2metadata
7.12
KB
-rwxr-xr-x
2020-09-29 20:17
edit
17.55
KB
-rwxr-xr-x
2015-10-30 16:39
editor
203.59
KB
-rwxr-xr-x
2017-02-15 15:33
eject
30.69
KB
-rwxr-xr-x
2017-03-27 17:56
elfedit
30.81
KB
-rwxr-xr-x
2018-12-07 20:49
enc2xs
38.93
KB
-rwxr-xr-x
2020-10-19 12:57
encguess
2.96
KB
-rwxr-xr-x
2020-10-19 12:57
env
30.67
KB
-rwxr-xr-x
2017-03-02 19:07
envsubst
34.51
KB
-rwxr-xr-x
2018-11-07 19:33
eps2eps
639
B
-rwxr-xr-x
2021-01-06 20:23
eqn
181.19
KB
-rwxr-xr-x
2016-01-29 06:15
ex
2.33
MB
-rwxr-xr-x
2020-10-14 15:04
expand
30.73
KB
-rwxr-xr-x
2017-03-02 19:07
expiry
22.23
KB
-rwxr-sr-x
2019-03-26 20:34
expr
38.73
KB
-rwxr-xr-x
2017-03-02 19:07
factor
70.77
KB
-rwxr-xr-x
2017-03-02 19:07
faillog
18.25
KB
-rwxr-xr-x
2019-03-26 20:34
faked-sysv
26.52
KB
-rwxr-xr-x
2014-11-24 15:36
faked-tcp
26.58
KB
-rwxr-xr-x
2014-11-24 15:36
fakeroot
3.76
KB
-rwxr-xr-x
2014-11-24 15:36
fakeroot-sysv
3.76
KB
-rwxr-xr-x
2014-11-24 15:36
fakeroot-tcp
3.76
KB
-rwxr-xr-x
2014-11-24 15:36
fallocate
22.56
KB
-rwxr-xr-x
2020-01-27 15:28
fcat
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
fcgistarter
9.96
KB
-rwxr-xr-x
2020-08-13 03:36
ffind
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
figlet
18.86
KB
-rwxr-xr-x
2012-06-26 12:52
figlet-toilet
18.86
KB
-rwxr-xr-x
2012-06-26 12:52
file
18.64
KB
-rwxr-xr-x
2020-05-12 16:07
file-rename
3.1
KB
-rwxr-xr-x
2015-06-05 13:12
find
216.57
KB
-rwxr-xr-x
2016-02-08 00:18
fiwalk
211.73
KB
-rwxr-xr-x
2015-11-29 00:13
flock
26.71
KB
-rwxr-xr-x
2020-01-27 15:28
fls
13.99
KB
-rwxr-xr-x
2015-11-29 00:13
fmt
38.7
KB
-rwxr-xr-x
2017-03-02 19:07
fold
34.7
KB
-rwxr-xr-x
2017-03-02 19:07
formail
38.59
KB
-rwxr-xr-x
2017-11-17 13:44
free
18.37
KB
-rwxr-xr-x
2020-03-05 13:43
from
10.27
KB
-rwxr-xr-x
2016-03-01 12:43
fsstat
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
ftp
87.8
KB
-rwxr-xr-x
2015-05-06 15:24
funzip
22.33
KB
-rwxr-xr-x
2020-12-03 02:12
futurize
384
B
-rwxr-xr-x
2018-02-05 14:57
g++
898.27
KB
-rwxr-xr-x
2019-10-04 21:00
g++-5
898.27
KB
-rwxr-xr-x
2019-10-04 21:00
gawk
642.72
KB
-rwxr-xr-x
2015-12-24 00:11
gcc
894.27
KB
-rwxr-xr-x
2019-10-04 21:23
gcc-5
894.27
KB
-rwxr-xr-x
2019-10-04 21:23
gcc-ar
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
gcc-ar-5
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
gcc-nm
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
gcc-nm-5
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
gcc-ranlib
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
gcc-ranlib-5
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
gcov
463.84
KB
-rwxr-xr-x
2019-10-04 21:23
gcov-5
463.84
KB
-rwxr-xr-x
2019-10-04 21:23
gcov-tool
451.8
KB
-rwxr-xr-x
2019-10-04 21:23
gcov-tool-5
451.8
KB
-rwxr-xr-x
2019-10-04 21:23
gencat
22.63
KB
-rwxr-xr-x
2021-04-21 20:15
geqn
181.19
KB
-rwxr-xr-x
2016-01-29 06:15
getcifsacl
13.99
KB
-rwxr-xr-x
2017-03-06 14:02
getconf
22.41
KB
-rwxr-xr-x
2021-04-21 20:14
getent
27.3
KB
-rwxr-xr-x
2021-04-21 20:14
getfacl
23.2
KB
-rwxr-xr-x
2016-02-07 12:10
getkeycodes
10.3
KB
-rwxr-xr-x
2016-09-22 19:33
getopt
14.43
KB
-rwxr-xr-x
2020-01-27 15:28
gettext
34.48
KB
-rwxr-xr-x
2018-11-07 19:33
gettext.sh
4.52
KB
-rwxr-xr-x
2018-11-07 19:33
ghostscript
10.21
KB
-rwxr-xr-x
2021-01-06 20:23
ginstall-info
43.72
KB
-rwxr-xr-x
2016-03-12 10:46
git
1.79
MB
-rwxr-xr-x
2021-03-04 17:04
git-receive-pack
1.79
MB
-rwxr-xr-x
2021-03-04 17:04
git-shell
873.52
KB
-rwxr-xr-x
2021-03-04 17:04
git-upload-archive
1.79
MB
-rwxr-xr-x
2021-03-04 17:04
git-upload-pack
957.83
KB
-rwxr-xr-x
2021-03-04 17:04
gold
2.78
MB
-rwxr-xr-x
2018-12-07 20:49
gpasswd
73.54
KB
-rwsr-xr-x
2019-03-26 20:34
gpg
984.99
KB
-rwxr-xr-x
2018-08-06 03:11
gpg-agent
344.6
KB
-rwxr-xr-x
2018-06-14 22:06
gpg-connect-agent
138.73
KB
-rwxr-xr-x
2018-06-14 22:06
gpg-zip
3.23
KB
-rwxr-xr-x
2018-08-06 03:11
gpg2
895.54
KB
-rwxr-xr-x
2018-06-14 22:06
gpgconf
136.45
KB
-rwxr-xr-x
2018-06-14 22:06
gpgparsemail
26.07
KB
-rwxr-xr-x
2018-06-14 22:06
gpgsplit
58.88
KB
-rwxr-xr-x
2018-08-06 03:11
gpgv
363.76
KB
-rwxr-xr-x
2018-08-06 03:11
gpic
196.03
KB
-rwxr-xr-x
2016-01-29 06:15
gprof
96.3
KB
-rwxr-xr-x
2018-12-07 20:49
groff
101.31
KB
-rwxr-xr-x
2016-01-29 06:15
grog
2.71
KB
-rwxr-xr-x
2016-01-29 06:14
grops
161.72
KB
-rwxr-xr-x
2016-01-29 06:15
grotty
117.34
KB
-rwxr-xr-x
2016-01-29 06:15
groups
30.7
KB
-rwxr-xr-x
2017-03-02 19:07
growpart
20.99
KB
-rwxr-xr-x
2020-09-29 20:17
grub-editenv
228.78
KB
-rwxr-xr-x
2021-04-30 18:02
grub-file
632.44
KB
-rwxr-xr-x
2021-04-30 18:02
grub-fstest
762.52
KB
-rwxr-xr-x
2021-04-30 18:02
grub-glue-efi
224.59
KB
-rwxr-xr-x
2021-04-30 18:02
grub-kbdcomp
1.64
KB
-rwxr-xr-x
2021-04-30 18:00
grub-menulst2cfg
200.65
KB
-rwxr-xr-x
2021-04-30 18:02
grub-mkfont
249.28
KB
-rwxr-xr-x
2021-04-30 18:02
grub-mkimage
313.69
KB
-rwxr-xr-x
2021-04-30 18:02
grub-mklayout
228.91
KB
-rwxr-xr-x
2021-04-30 18:02
grub-mknetdir
350.39
KB
-rwxr-xr-x
2021-04-30 18:02
grub-mkpasswd-pbkdf2
228.98
KB
-rwxr-xr-x
2021-04-30 18:02
grub-mkrelpath
224.31
KB
-rwxr-xr-x
2021-04-30 18:02
grub-mkrescue
783.03
KB
-rwxr-xr-x
2021-04-30 18:02
grub-mkstandalone
422.73
KB
-rwxr-xr-x
2021-04-30 18:02
grub-mount
585.11
KB
-rwxr-xr-x
2021-04-30 18:02
grub-ntldr-img
34.34
KB
-rwxr-xr-x
2021-04-30 18:02
grub-render-label
649.04
KB
-rwxr-xr-x
2021-04-30 18:02
grub-script-check
248.45
KB
-rwxr-xr-x
2021-04-30 18:02
grub-syslinux2cfg
597.55
KB
-rwxr-xr-x
2021-04-30 18:02
gs
10.21
KB
-rwxr-xr-x
2021-01-06 20:23
gsbj
350
B
-rwxr-xr-x
2021-01-06 20:23
gsdj
352
B
-rwxr-xr-x
2021-01-06 20:23
gsdj500
352
B
-rwxr-xr-x
2021-01-06 20:23
gslj
353
B
-rwxr-xr-x
2021-01-06 20:23
gslp
350
B
-rwxr-xr-x
2021-01-06 20:23
gsnd
277
B
-rwxr-xr-x
2021-01-06 20:23
gtbl
118.2
KB
-rwxr-xr-x
2016-01-29 06:15
h2ph
28.48
KB
-rwxr-xr-x
2020-10-19 12:57
h2xs
59.35
KB
-rwxr-xr-x
2020-10-19 12:57
hd
30.5
KB
-rwxr-xr-x
2016-03-01 12:43
head
38.73
KB
-rwxr-xr-x
2017-03-02 19:07
helpztags
2.46
KB
-rwxr-xr-x
2016-04-08 13:39
hexdump
30.5
KB
-rwxr-xr-x
2016-03-01 12:43
hfind
13.99
KB
-rwxr-xr-x
2015-11-29 00:13
host
86.37
KB
-rwxr-xr-x
2021-04-27 15:10
hostid
26.64
KB
-rwxr-xr-x
2017-03-02 19:07
hostnamectl
287.2
KB
-rwxr-xr-x
2021-04-02 17:51
htcacheclean
29.97
KB
-rwxr-xr-x
2020-08-13 03:36
htdbm
17.95
KB
-rwxr-xr-x
2020-08-13 03:36
htdigest
13.96
KB
-rwxr-xr-x
2020-08-13 03:36
htpasswd
17.96
KB
-rwxr-xr-x
2020-08-13 03:36
i386
14.38
KB
-rwxr-xr-x
2020-01-27 15:28
icat
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
iconv
59
KB
-rwxr-xr-x
2021-04-21 20:14
id
38.83
KB
-rwxr-xr-x
2017-03-02 19:07
ifind
13.99
KB
-rwxr-xr-x
2015-11-29 00:13
igawk
3.11
KB
-rwxr-xr-x
2015-12-24 00:11
ils
13.99
KB
-rwxr-xr-x
2015-11-29 00:13
img_cat
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
img_stat
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
info
214.74
KB
-rwxr-xr-x
2016-03-12 10:46
infobrowser
214.74
KB
-rwxr-xr-x
2016-03-12 10:46
infocmp
54.57
KB
-rwxr-xr-x
2016-02-19 09:22
infotocap
70.71
KB
-rwxr-xr-x
2016-02-19 09:22
innochecksum
3.48
MB
-rwxr-xr-x
2021-01-28 17:23
innotop
390.81
KB
-rwxr-xr-x
2017-02-03 18:32
install
135.59
KB
-rwxr-xr-x
2017-03-02 19:07
install-info
43.72
KB
-rwxr-xr-x
2016-03-12 10:46
instmodsh
4.23
KB
-rwxr-xr-x
2020-10-19 12:57
ionice
22.59
KB
-rwxr-xr-x
2020-01-27 15:28
ipcmk
22.69
KB
-rwxr-xr-x
2020-01-27 15:28
ipcrm
26.54
KB
-rwxr-xr-x
2020-01-27 15:28
ipcs
46.71
KB
-rwxr-xr-x
2020-01-27 15:28
iptables-xml
85.77
KB
-rwxr-xr-x
2016-02-19 16:21
ischroot
10.34
KB
-rwxr-xr-x
2016-01-26 19:17
iscsiadm
737.26
KB
-rwxr-xr-x
2018-12-11 21:12
istat
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
jcat
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
jls
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
join
46.77
KB
-rwxr-xr-x
2017-03-02 19:07
jpeg_extract
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
json_pp
3.83
KB
-rwxr-xr-x
2020-10-19 12:57
jsondiff
976
B
-rwxr-xr-x
2015-11-27 15:19
jsonpatch
3.58
KB
-rwxr-xr-x
2015-11-27 15:19
jsonpointer
1.31
KB
-rwxr-xr-x
2015-10-24 07:34
jwt3
288
B
-rwxr-xr-x
2017-08-29 20:41
kbdinfo
10.31
KB
-rwxr-xr-x
2016-09-22 19:33
kbxutil
142.63
KB
-rwxr-xr-x
2018-06-14 22:06
keep-one-running
3.51
KB
-rwxr-xr-x
2014-01-15 23:24
killall
23.18
KB
-rwxr-xr-x
2019-08-20 20:49
last
38.84
KB
-rwxr-xr-x
2020-01-27 15:28
lastb
38.84
KB
-rwxr-xr-x
2020-01-27 15:28
lastlog
14.03
KB
-rwxr-xr-x
2019-03-26 20:34
lcf
7.6
KB
-rwxr-xr-x
2016-03-16 21:58
ld
1.16
MB
-rwxr-xr-x
2018-12-07 20:49
ld.bfd
1.16
MB
-rwxr-xr-x
2018-12-07 20:49
ld.gold
2.78
MB
-rwxr-xr-x
2018-12-07 20:49
ldd
5.3
KB
-rwxr-xr-x
2021-04-21 20:11
less
166.73
KB
-rwxr-xr-x
2017-04-05 15:09
lessecho
10.02
KB
-rwxr-xr-x
2017-04-05 15:09
lessfile
7.58
KB
-rwxr-xr-x
2017-04-05 15:09
lesskey
19.36
KB
-rwxr-xr-x
2017-04-05 15:09
lesspipe
7.58
KB
-rwxr-xr-x
2017-04-05 15:09
letsencrypt
385
B
-rwxr-xr-x
2020-12-18 22:20
lexgrog
90.57
KB
-rwxr-xr-x
2015-11-07 00:14
libnetcfg
15.35
KB
-rwxr-xr-x
2020-10-19 12:57
line
10.32
KB
-rwxr-xr-x
2020-01-27 15:28
link
26.64
KB
-rwxr-xr-x
2017-03-02 19:07
linux-boot-prober
1.54
KB
-rwxr-xr-x
2011-01-20 08:59
linux-check-removal
3.99
KB
-rwxr-xr-x
2020-03-18 12:32
linux-update-symlinks
6.17
KB
-rwxr-xr-x
2020-03-18 12:32
linux-version
2.63
KB
-rwxr-xr-x
2020-03-18 12:32
linux32
14.38
KB
-rwxr-xr-x
2020-01-27 15:28
linux64
14.38
KB
-rwxr-xr-x
2020-01-27 15:28
lnstat
18.68
KB
-rwxr-xr-x
2019-04-16 14:37
loadkeys
108.88
KB
-rwxr-xr-x
2016-09-22 19:33
loadunimap
26.66
KB
-rwxr-xr-x
2016-09-22 19:33
locale
37.91
KB
-rwxr-xr-x
2021-04-21 20:14
localectl
295.22
KB
-rwxr-xr-x
2021-04-02 17:51
localedef
315.71
KB
-rwxr-xr-x
2021-04-21 20:14
locate
38.59
KB
-rwxr-sr-x
2014-11-18 08:54
lockfile
18.32
KB
-rwxr-sr-x
2017-11-17 13:44
logger
35.35
KB
-rwxr-xr-x
2020-01-27 15:28
logname
26.67
KB
-rwxr-xr-x
2017-03-02 19:07
logresolve
9.97
KB
-rwxr-xr-x
2020-08-13 03:36
look
10.3
KB
-rwxr-xr-x
2016-03-01 12:43
lorder
2.7
KB
-rwxr-xr-x
2016-03-01 12:43
lsattr
10.33
KB
-rwxr-xr-x
2020-01-22 15:42
lsb_release
3.55
KB
-rwxr-xr-x
2015-08-26 11:44
lscpu
55.12
KB
-rwxr-xr-x
2020-01-27 15:28
lshw
624.32
KB
-rwxr-xr-x
2019-05-06 16:29
lsinitramfs
2.43
KB
-rwxr-xr-x
2019-10-07 12:53
lsipc
59
KB
-rwxr-xr-x
2020-01-27 15:28
lslocks
31.09
KB
-rwxr-xr-x
2020-01-27 15:28
lslogins
51.15
KB
-rwxr-xr-x
2020-01-27 15:28
lsof
159.4
KB
-rwxr-xr-x
2015-10-28 17:57
lspci
72.23
KB
-rwxr-xr-x
2019-02-11 14:14
lspgpot
1.06
KB
-rwxr-xr-x
2014-06-25 18:17
lsusb
102.66
KB
-rwxr-xr-x
2015-10-23 23:56
ltrace
298.25
KB
-rwxr-xr-x
2016-04-12 07:48
lxc
8.01
MB
-rwxr-xr-x
2017-12-07 22:54
lxcfs
18.07
KB
-rwxr-xr-x
2017-11-09 02:43
lxd
11.37
MB
-rwxr-xr-x
2017-12-07 22:54
lzcat
67.04
KB
-rwxr-xr-x
2014-02-12 16:14
lzcmp
5.39
KB
-rwxr-xr-x
2014-02-12 16:14
lzdiff
5.39
KB
-rwxr-xr-x
2014-02-12 16:14
lzegrep
5.29
KB
-rwxr-xr-x
2014-02-12 16:14
lzfgrep
5.29
KB
-rwxr-xr-x
2014-02-12 16:14
lzgrep
5.29
KB
-rwxr-xr-x
2014-02-12 16:14
lzless
1.78
KB
-rwxr-xr-x
2014-02-12 16:14
lzma
67.04
KB
-rwxr-xr-x
2014-02-12 16:14
lzmainfo
10.26
KB
-rwxr-xr-x
2014-02-12 16:14
lzmore
2.12
KB
-rwxr-xr-x
2014-02-12 16:14
mactime
26.63
KB
-rwxr-xr-x
2015-11-29 00:13
mail
102.24
KB
-rwxr-xr-x
2016-01-29 06:12
mailq
26.02
KB
-rwxr-xr-x
2020-07-28 23:11
mailstat
5.72
KB
-rwxr-xr-x
2017-11-17 13:44
mailx
102.24
KB
-rwxr-xr-x
2016-01-29 06:12
make
202.66
KB
-rwxr-xr-x
2016-02-15 12:13
make-first-existing-target
4.79
KB
-rwxr-xr-x
2016-02-15 12:10
man
104.5
KB
-rwxr-xr-x
2015-11-07 00:14
mandb
126.72
KB
-rwxr-xr-x
2015-11-07 00:14
manifest
1.89
KB
-rwxr-xr-x
2016-04-14 21:29
manpath
30.47
KB
-rwxr-xr-x
2015-11-07 00:14
mapscrn
18.66
KB
-rwxr-xr-x
2016-09-22 19:33
mawk
115.01
KB
-rwxr-xr-x
2014-03-24 10:53
mcookie
26.71
KB
-rwxr-xr-x
2020-01-27 15:28
md5sum
42.77
KB
-rwxr-xr-x
2017-03-02 19:07
md5sum.textutils
42.77
KB
-rwxr-xr-x
2017-03-02 19:07
mesg
10.37
KB
-rwxr-xr-x
2020-01-27 15:28
mk_modmap
15.78
KB
-rwxr-xr-x
2016-09-22 19:33
mkfifo
58.95
KB
-rwxr-xr-x
2017-03-02 19:07
mkpasswd
18.46
KB
-rwxr-xr-x
2015-12-08 18:11
mksquashfs
174.12
KB
-rwxr-xr-x
2018-08-09 00:11
mlocate
38.59
KB
-rwxr-sr-x
2014-11-18 08:54
mlock
10.34
KB
-rwxr-sr-x
2019-10-21 20:09
mmcat
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
mmls
13.99
KB
-rwxr-xr-x
2015-11-29 00:13
mmstat
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
mtr
77.66
KB
-rwxr-xr-x
2016-05-12 22:00
mtrace
6.34
KB
-rwxr-xr-x
2021-04-21 20:11
mutt
917.2
KB
-rwxr-xr-x
2021-01-22 14:44
mutt-org
917.2
KB
-rwxr-xr-x
2021-01-22 14:44
mutt_dotlock
10.41
KB
-rwxr-sr-x
2021-01-22 14:44
my_print_defaults
3.44
MB
-rwxr-xr-x
2021-01-28 17:23
myisam_ftdump
3.75
MB
-rwxr-xr-x
2021-01-28 17:23
myisamchk
3.85
MB
-rwxr-xr-x
2021-01-28 17:23
myisamlog
3.73
MB
-rwxr-xr-x
2021-01-28 17:23
myisampack
3.77
MB
-rwxr-xr-x
2021-01-28 17:23
mysql
3.93
MB
-rwxr-xr-x
2021-01-28 17:23
mysql_config_editor
3.46
MB
-rwxr-xr-x
2021-01-28 17:23
mysql_embedded
21.78
MB
-rwxr-xr-x
2021-01-28 17:23
mysql_install_db
4.99
MB
-rwxr-xr-x
2021-01-28 17:23
mysql_plugin
3.45
MB
-rwxr-xr-x
2021-01-28 17:23
mysql_secure_installation
3.61
MB
-rwxr-xr-x
2021-01-28 17:23
mysql_ssl_rsa_setup
3.48
MB
-rwxr-xr-x
2021-01-28 17:23
mysql_tzinfo_to_sql
3.4
MB
-rwxr-xr-x
2021-01-28 17:23
mysql_upgrade
4.24
MB
-rwxr-xr-x
2021-01-28 17:23
mysqladmin
3.62
MB
-rwxr-xr-x
2021-01-28 17:23
mysqlanalyze
3.65
MB
-rwxr-xr-x
2021-01-28 17:23
mysqlbinlog
3.86
MB
-rwxr-xr-x
2021-01-28 17:23
mysqlcheck
3.65
MB
-rwxr-xr-x
2021-01-28 17:23
mysqld_multi
26.32
KB
-rwxr-xr-x
2021-01-28 16:56
mysqld_safe
27.14
KB
-rwxr-xr-x
2021-01-28 16:56
mysqldump
3.69
MB
-rwxr-xr-x
2021-01-28 17:23
mysqldumpslow
7.68
KB
-rwxr-xr-x
2021-01-28 16:56
mysqlimport
3.62
MB
-rwxr-xr-x
2021-01-28 17:23
mysqloptimize
3.65
MB
-rwxr-xr-x
2021-01-28 17:23
mysqlpump
4.08
MB
-rwxr-xr-x
2021-01-28 17:23
mysqlrepair
3.65
MB
-rwxr-xr-x
2021-01-28 17:23
mysqlreport
38.1
KB
-rwxr-xr-x
2017-02-03 18:32
mysqlshow
3.61
MB
-rwxr-xr-x
2021-01-28 17:23
mysqlslap
3.63
MB
-rwxr-xr-x
2021-01-28 17:23
namei
26.58
KB
-rwxr-xr-x
2020-01-27 15:28
nawk
642.72
KB
-rwxr-xr-x
2015-12-24 00:11
ncal
29.14
KB
-rwxr-xr-x
2016-03-01 12:43
neqn
908
B
-rwxr-xr-x
2016-01-29 06:14
net
879.95
KB
-rwxr-xr-x
2021-04-14 18:00
netkit-ftp
87.8
KB
-rwxr-xr-x
2015-05-06 15:24
newaliases
26.02
KB
-rwxr-xr-x
2020-07-28 23:11
newgidmap
32.17
KB
-rwsr-xr-x
2019-03-26 20:34
newgrp
38.97
KB
-rwsr-xr-x
2019-03-26 20:34
newuidmap
32.17
KB
-rwsr-xr-x
2019-03-26 20:34
ngettext
34.5
KB
-rwxr-xr-x
2018-11-07 19:33
nice
34.7
KB
-rwxr-xr-x
2017-03-02 19:07
nl
38.83
KB
-rwxr-xr-x
2017-03-02 19:07
nm
39.79
KB
-rwxr-xr-x
2018-12-07 20:49
nmblookup
114.16
KB
-rwxr-xr-x
2021-04-14 18:00
nohup
30.7
KB
-rwxr-xr-x
2017-03-02 19:07
nproc
30.7
KB
-rwxr-xr-x
2017-03-02 19:07
nroff
3.25
KB
-rwxr-xr-x
2016-01-29 06:14
nsenter
26.88
KB
-rwxr-xr-x
2020-01-27 15:28
nslookup
90.2
KB
-rwxr-xr-x
2021-04-27 15:10
nstat
22.47
KB
-rwxr-xr-x
2019-04-16 14:37
nsupdate
62.02
KB
-rwxr-xr-x
2021-04-27 15:10
ntfsdecrypt
42.12
KB
-rwxr-xr-x
2019-03-21 22:37
ntpdc
123
KB
-rwxr-xr-x
2020-01-07 16:08
ntpq
148.91
KB
-rwxr-xr-x
2020-01-07 16:08
ntpsweep
7.79
KB
-rwxr-xr-x
2020-01-07 16:08
ntptrace
3.48
KB
-rwxr-xr-x
2020-01-07 16:08
numfmt
58.86
KB
-rwxr-xr-x
2017-03-02 19:07
objcopy
219.17
KB
-rwxr-xr-x
2018-12-07 20:49
objdump
348.4
KB
-rwxr-xr-x
2018-12-07 20:49
od
66.83
KB
-rwxr-xr-x
2017-03-02 19:07
on_ac_power
2.2
KB
-rwxr-xr-x
2009-12-02 09:57
openssl
552.87
KB
-rwxr-xr-x
2018-05-12 08:22
os-prober
4.49
KB
-rwxr-xr-x
2016-03-11 14:43
pager
166.73
KB
-rwxr-xr-x
2017-04-05 15:09
paperconf
10.36
KB
-rwxr-xr-x
2015-11-04 12:21
partx
75.63
KB
-rwxr-xr-x
2020-01-27 15:28
passwd
52.98
KB
-rwsr-xr-x
2019-03-26 20:34
paste
30.7
KB
-rwxr-xr-x
2017-03-02 19:07
pastebinit
16.25
KB
-rwxr-xr-x
2016-03-01 06:52
pasteurize
388
B
-rwxr-xr-x
2018-02-05 14:57
patch
151.35
KB
-rwxr-xr-x
2019-07-23 18:39
pathchk
30.67
KB
-rwxr-xr-x
2017-03-02 19:07
pbget
2.51
KB
-rwxr-xr-x
2016-02-29 17:14
pbput
2.51
KB
-rwxr-xr-x
2016-02-29 17:14
pbputs
2.51
KB
-rwxr-xr-x
2016-02-29 17:14
pbr
152
B
-rwxr-xr-x
2015-11-23 11:50
pcimodules
14.59
KB
-rwxr-xr-x
2019-02-11 14:14
pdb
45.02
KB
-rwxr-xr-x
2021-03-01 21:41
pdb2.7
45.02
KB
-rwxr-xr-x
2021-03-01 21:41
pdb3
59.56
KB
-rwxr-xr-x
2021-01-26 19:45
pdb3.5
59.56
KB
-rwxr-xr-x
2021-01-26 19:45
pdf2dsc
698
B
-rwxr-xr-x
2021-01-06 20:23
pdf2ps
909
B
-rwxr-xr-x
2021-01-06 20:23
pear
793
B
-rwxr-xr-x
2021-02-12 11:41
peardev
814
B
-rwxr-xr-x
2021-02-12 11:41
pecl
727
B
-rwxr-xr-x
2021-02-12 11:41
peekfd
10.3
KB
-rwxr-xr-x
2019-08-20 20:49
perl
1.82
MB
-rwxr-xr-x
2020-10-19 12:57
perl5.22-x86_64-linux-gnu
10.25
KB
-rwxr-xr-x
2020-10-19 12:57
perl5.22.1
1.82
MB
-rwxr-xr-x
2020-10-19 12:57
perlbug
44.29
KB
-rwxr-xr-x
2020-10-19 12:57
perldoc
125
B
-rwxr-xr-x
2020-10-19 12:57
perlivp
10.57
KB
-rwxr-xr-x
2020-10-19 12:57
perlthanks
44.29
KB
-rwxr-xr-x
2020-10-19 12:57
perror
3.57
MB
-rwxr-xr-x
2021-01-28 17:23
pf2afm
498
B
-rwxr-xr-x
2021-01-06 20:23
pfbtopfa
516
B
-rwxr-xr-x
2021-01-06 20:23
pftp
87.8
KB
-rwxr-xr-x
2015-05-06 15:24
pg
38.91
KB
-rwxr-xr-x
2020-01-27 15:28
pgrep
26.63
KB
-rwxr-xr-x
2020-03-05 13:43
phar
14.47
KB
-rwxr-xr-x
2021-02-23 18:58
phar.phar
14.47
KB
-rwxr-xr-x
2021-02-23 18:58
phar.phar5.6
14.48
KB
-rwxr-xr-x
2021-02-23 16:44
phar.phar7.2
14.47
KB
-rwxr-xr-x
2021-02-23 18:58
phar5.6
14.48
KB
-rwxr-xr-x
2021-02-23 16:44
phar7.2
14.47
KB
-rwxr-xr-x
2021-02-23 18:58
php
4.66
MB
-rwxr-xr-x
2021-02-23 19:01
php5.6
4.28
MB
-rwxr-xr-x
2021-02-23 16:45
php7.2
4.66
MB
-rwxr-xr-x
2021-02-23 19:01
pic
196.03
KB
-rwxr-xr-x
2016-01-29 06:15
pico
203.59
KB
-rwxr-xr-x
2017-02-15 15:33
piconv
8.12
KB
-rwxr-xr-x
2020-10-19 12:57
pinentry
55.4
KB
-rwxr-xr-x
2016-02-06 18:16
pinentry-curses
55.4
KB
-rwxr-xr-x
2016-02-06 18:16
pinky
34.86
KB
-rwxr-xr-x
2017-03-02 19:07
pkaction
10.39
KB
-rwxr-xr-x
2019-03-27 15:40
pkcheck
18.66
KB
-rwxr-xr-x
2019-03-27 15:40
pkexec
22.83
KB
-rwsr-xr-x
2019-03-27 15:40
pkill
26.63
KB
-rwxr-xr-x
2020-03-05 13:43
pkttyagent
14.44
KB
-rwxr-xr-x
2019-03-27 15:40
pl2pm
4.42
KB
-rwxr-xr-x
2020-10-19 12:57
pldd
14.59
KB
-rwxr-xr-x
2021-04-21 20:14
pmap
30.61
KB
-rwxr-xr-x
2020-03-05 13:43
pod2html
4
KB
-rwxr-xr-x
2020-10-19 12:57
pod2man
13.52
KB
-rwxr-xr-x
2020-10-19 12:57
pod2text
10.75
KB
-rwxr-xr-x
2020-10-19 12:57
pod2usage
3.58
KB
-rwxr-xr-x
2020-10-19 12:57
podchecker
3.61
KB
-rwxr-xr-x
2020-10-19 12:57
podselect
2.47
KB
-rwxr-xr-x
2020-10-19 12:57
pollinate
8.54
KB
-rwxr-xr-x
2018-05-29 22:13
pphs
404
B
-rwxr-xr-x
2021-01-06 20:23
pr
74.95
KB
-rwxr-xr-x
2017-03-02 19:07
preconv
42.2
KB
-rwxr-xr-x
2016-01-29 06:15
prename
2.92
KB
-rwxr-xr-x
2020-10-19 12:57
print
17.55
KB
-rwxr-xr-x
2015-10-30 16:39
printafm
395
B
-rwxr-xr-x
2021-01-06 20:23
printenv
30.64
KB
-rwxr-xr-x
2017-03-02 19:07
printerbanner
18.27
KB
-rwxr-xr-x
2016-03-01 12:43
printf
46.73
KB
-rwxr-xr-x
2017-03-02 19:07
prlimit
31.3
KB
-rwxr-xr-x
2020-01-27 15:28
procmail
87.2
KB
-rwsr-sr-x
2017-11-17 13:44
prove
13.23
KB
-rwxr-xr-x
2020-10-19 12:57
prtstat
14.35
KB
-rwxr-xr-x
2019-08-20 20:49
ps2ascii
631
B
-rwxr-xr-x
2021-01-06 20:23
ps2epsi
2.69
KB
-rwxr-xr-x
2021-01-06 20:23
ps2pdf
272
B
-rwxr-xr-x
2021-01-06 20:23
ps2pdf12
215
B
-rwxr-xr-x
2021-01-06 20:23
ps2pdf13
215
B
-rwxr-xr-x
2021-01-06 20:23
ps2pdf14
215
B
-rwxr-xr-x
2021-01-06 20:23
ps2pdfwr
1.07
KB
-rwxr-xr-x
2021-01-06 20:23
ps2ps
647
B
-rwxr-xr-x
2021-01-06 20:23
ps2ps2
669
B
-rwxr-xr-x
2021-01-06 20:23
ps2txt
631
B
-rwxr-xr-x
2021-01-06 20:23
psfaddtable
18.42
KB
-rwxr-xr-x
2016-09-22 19:33
psfgettable
18.42
KB
-rwxr-xr-x
2016-09-22 19:33
psfstriptable
18.42
KB
-rwxr-xr-x
2016-09-22 19:33
psfxtable
18.42
KB
-rwxr-xr-x
2016-09-22 19:33
pstree
26.82
KB
-rwxr-xr-x
2019-08-20 20:49
pstree.x11
26.82
KB
-rwxr-xr-x
2019-08-20 20:49
pstruct
35.75
KB
-rwxr-xr-x
2020-10-19 12:57
ptar
3.44
KB
-rwxr-xr-x
2020-10-19 12:57
ptardiff
2.53
KB
-rwxr-xr-x
2020-10-19 12:57
ptargrep
4.25
KB
-rwxr-xr-x
2020-10-19 12:57
ptx
66.95
KB
-rwxr-xr-x
2017-03-02 19:07
purge-old-kernels
1.76
KB
-rwxr-xr-x
2016-04-14 21:29
pwdx
10.36
KB
-rwxr-xr-x
2020-03-05 13:43
py3clean
7.62
KB
-rwxr-xr-x
2016-03-23 12:00
py3compile
11.83
KB
-rwxr-xr-x
2016-03-23 12:00
py3versions
11.44
KB
-rwxr-xr-x
2016-03-23 12:00
pybuild
21.33
KB
-rwxr-xr-x
2019-08-16 02:59
pyclean
4.03
KB
-rwxr-xr-x
2017-11-24 01:52
pycompile
11.62
KB
-rwxr-xr-x
2017-11-24 01:52
pydoc
79
B
-rwxr-xr-x
2021-03-01 21:41
pydoc2.7
79
B
-rwxr-xr-x
2021-03-01 21:41
pydoc3
79
B
-rwxr-xr-x
2021-01-26 19:45
pydoc3.5
79
B
-rwxr-xr-x
2021-01-26 19:45
pygettext
21.58
KB
-rwxr-xr-x
2021-03-01 21:41
pygettext2.7
21.58
KB
-rwxr-xr-x
2021-03-01 21:41
pygettext3
21.73
KB
-rwxr-xr-x
2021-01-26 19:45
pygettext3.5
21.73
KB
-rwxr-xr-x
2021-01-26 19:45
python
3.33
MB
-rwxr-xr-x
2021-03-01 21:47
python2
3.33
MB
-rwxr-xr-x
2021-03-01 21:47
python2.7
3.33
MB
-rwxr-xr-x
2021-03-01 21:47
python3
4.25
MB
-rwxr-xr-x
2021-01-26 19:48
python3-futurize
384
B
-rwxr-xr-x
2018-02-05 14:57
python3-jsondiff
976
B
-rwxr-xr-x
2015-11-27 15:19
python3-jsonpatch
3.58
KB
-rwxr-xr-x
2015-11-27 15:19
python3-jsonpointer
1.31
KB
-rwxr-xr-x
2015-10-24 07:34
python3-pasteurize
388
B
-rwxr-xr-x
2018-02-05 14:57
python3-pbr
152
B
-rwxr-xr-x
2015-11-23 11:50
python3.5
4.25
MB
-rwxr-xr-x
2021-01-26 19:48
python3.5m
4.25
MB
-rwxr-xr-x
2021-01-26 19:48
python3m
4.25
MB
-rwxr-xr-x
2021-01-26 19:48
pyversions
14.75
KB
-rwxr-xr-x
2017-11-24 01:52
ranlib
59.12
KB
-rwxr-xr-x
2018-12-07 20:49
rcp
86.14
KB
-rwxr-xr-x
2020-05-27 01:17
readelf
473.81
KB
-rwxr-xr-x
2018-12-07 20:49
realpath
58.83
KB
-rwxr-xr-x
2017-03-02 19:07
rename
3.1
KB
-rwxr-xr-x
2015-06-05 13:12
rename.ul
14.41
KB
-rwxr-xr-x
2020-01-27 15:28
renice
10.38
KB
-rwxr-xr-x
2020-01-27 15:28
replace
3.42
MB
-rwxr-xr-x
2021-01-28 17:23
reset
18.42
KB
-rwxr-xr-x
2016-02-19 09:22
resizecons
18.6
KB
-rwxr-xr-x
2016-09-22 19:33
resizepart
34.86
KB
-rwxr-xr-x
2020-01-27 15:28
resolveip
3.44
MB
-rwxr-xr-x
2021-01-28 17:23
restoreMySQL
872
B
-rwxr-xr-x
2016-12-23 21:32
rev
10.38
KB
-rwxr-xr-x
2020-01-27 15:28
rgrep
30
B
-rwxr-xr-x
2016-03-04 18:02
rlogin
690.67
KB
-rwxr-xr-x
2020-05-27 01:17
rmail
13.87
KB
-rwxr-xr-x
2020-07-28 23:11
rotatelogs
18.04
KB
-rwxr-xr-x
2020-08-13 03:36
routef
173
B
-rwxr-xr-x
2015-11-04 01:34
routel
1.23
KB
-rwxr-xr-x
2015-11-04 01:34
rpcgen
90.94
KB
-rwxr-xr-x
2021-04-21 20:15
rsh
690.67
KB
-rwxr-xr-x
2020-05-27 01:17
rsync
480.21
KB
-rwxr-xr-x
2020-02-20 18:38
rtstat
18.68
KB
-rwxr-xr-x
2019-04-16 14:37
run-mailcap
17.55
KB
-rwxr-xr-x
2015-10-30 16:39
run-one
3.51
KB
-rwxr-xr-x
2014-01-15 23:24
run-one-constantly
3.51
KB
-rwxr-xr-x
2014-01-15 23:24
run-one-until-failure
3.51
KB
-rwxr-xr-x
2014-01-15 23:24
run-one-until-success
3.51
KB
-rwxr-xr-x
2014-01-15 23:24
run-this-one
3.51
KB
-rwxr-xr-x
2014-01-15 23:24
runcon
34.8
KB
-rwxr-xr-x
2017-03-02 19:07
rview
2.33
MB
-rwxr-xr-x
2020-10-14 15:04
rvim
2.33
MB
-rwxr-xr-x
2020-10-14 15:04
samba-regedit
95.18
KB
-rwxr-xr-x
2021-04-14 18:00
samba-tool
1.52
KB
-rwxr-xr-x
2021-04-14 18:00
savelog
10.22
KB
-rwxr-xr-x
2016-01-26 19:17
scp
86.14
KB
-rwxr-xr-x
2020-05-27 01:17
screen
424.04
KB
-rwxr-sr-x
2021-02-23 19:14
screendump
10.33
KB
-rwxr-xr-x
2016-09-22 19:33
script
22.66
KB
-rwxr-xr-x
2020-01-27 15:28
scriptreplay
14.4
KB
-rwxr-xr-x
2020-01-27 15:28
sdiff
46.78
KB
-rwxr-xr-x
2015-12-27 00:11
see
17.55
KB
-rwxr-xr-x
2015-10-30 16:39
select-editor
1.19
KB
-rwxr-xr-x
2018-02-21 20:37
sensible-browser
1.11
KB
-rwxr-xr-x
2018-02-21 20:37
sensible-editor
1.08
KB
-rwxr-xr-x
2018-02-21 20:37
sensible-pager
288
B
-rwxr-xr-x
2018-02-21 20:37
seq
46.73
KB
-rwxr-xr-x
2017-03-02 19:07
setarch
14.38
KB
-rwxr-xr-x
2020-01-27 15:28
setcifsacl
17.99
KB
-rwxr-xr-x
2017-03-06 14:02
setfacl
35.45
KB
-rwxr-xr-x
2016-02-07 12:10
setkeycodes
10.29
KB
-rwxr-xr-x
2016-09-22 19:33
setleds
10.32
KB
-rwxr-xr-x
2016-09-22 19:33
setlogcons
10.27
KB
-rwxr-xr-x
2016-09-22 19:33
setmetamode
10.37
KB
-rwxr-xr-x
2016-09-22 19:33
setpci
22.47
KB
-rwxr-xr-x
2019-02-11 14:14
setsid
10.38
KB
-rwxr-xr-x
2020-01-27 15:28
setterm
34.61
KB
-rwxr-xr-x
2020-01-27 15:28
sftp
134.36
KB
-rwxr-xr-x
2020-05-27 01:17
sg
38.97
KB
-rwsr-xr-x
2019-03-26 20:34
sha1sum
42.77
KB
-rwxr-xr-x
2017-03-02 19:07
sha224sum
50.77
KB
-rwxr-xr-x
2017-03-02 19:07
sha256sum
50.77
KB
-rwxr-xr-x
2017-03-02 19:07
sha384sum
54.77
KB
-rwxr-xr-x
2017-03-02 19:07
sha512sum
54.77
KB
-rwxr-xr-x
2017-03-02 19:07
shasum
9.11
KB
-rwxr-xr-x
2020-10-19 12:57
showconsolefont
18.4
KB
-rwxr-xr-x
2016-09-22 19:33
showkey
14.34
KB
-rwxr-xr-x
2016-09-22 19:33
shred
54.92
KB
-rwxr-xr-x
2017-03-02 19:07
shuf
54.83
KB
-rwxr-xr-x
2017-03-02 19:07
sigfind
9.99
KB
-rwxr-xr-x
2015-11-29 00:13
size
30.96
KB
-rwxr-xr-x
2018-12-07 20:49
skill
22.61
KB
-rwxr-xr-x
2020-03-05 13:43
slabtop
18.47
KB
-rwxr-xr-x
2020-03-05 13:43
slogin
690.67
KB
-rwxr-xr-x
2020-05-27 01:17
smbpasswd
29.99
KB
-rwxr-xr-x
2021-04-14 18:00
smime_keys
30.03
KB
-rwxr-xr-x
2021-01-22 14:44
snap
18.52
MB
-rwxr-xr-x
2021-02-08 05:39
snapctl
6.59
MB
-rwxr-xr-x
2021-02-08 05:39
snapfuse
34.65
KB
-rwxr-xr-x
2021-02-08 05:39
snice
22.61
KB
-rwxr-xr-x
2020-03-05 13:43
soelim
30.2
KB
-rwxr-xr-x
2016-01-29 06:15
sort
107.46
KB
-rwxr-xr-x
2017-03-02 19:07
sorter
49.22
KB
-rwxr-xr-x
2015-11-29 00:13
sosreport
562
B
-rwxr-xr-x
2021-04-22 18:49
sotruss
4.21
KB
-rwxr-xr-x
2021-04-21 20:11
splain
18.33
KB
-rwxr-xr-x
2020-10-19 12:57
split
67.41
KB
-rwxr-xr-x
2017-03-02 19:07
splitfont
10.27
KB
-rwxr-xr-x
2016-09-22 19:33
sprof
22.71
KB
-rwxr-xr-x
2021-04-21 20:15
srch_strings
13.99
KB
-rwxr-xr-x
2015-11-29 00:13
ssh
690.67
KB
-rwxr-xr-x
2020-05-27 01:17
ssh-add
330.21
KB
-rwxr-xr-x
2020-05-27 01:17
ssh-agent
350.22
KB
-rwxr-sr-x
2020-05-27 01:17
ssh-argv0
1.42
KB
-rwxr-xr-x
2020-05-13 16:12
ssh-copy-id
10.12
KB
-rwxr-xr-x
2016-03-09 19:04
ssh-import-id
1.73
KB
-rwxr-xr-x
2016-02-18 21:44
ssh-import-id-gh
782
B
-rwxr-xr-x
2016-01-30 06:11
ssh-import-id-lp
782
B
-rwxr-xr-x
2016-01-30 06:11
ssh-keygen
390.23
KB
-rwxr-xr-x
2020-05-27 01:17
ssh-keyscan
402.23
KB
-rwxr-xr-x
2020-05-27 01:17
stat
79.05
KB
-rwxr-xr-x
2017-03-02 19:07
stdbuf
62.83
KB
-rwxr-xr-x
2017-03-02 19:07
strace
846.17
KB
-rwxr-xr-x
2016-01-13 16:34
strings
27.08
KB
-rwxr-xr-x
2018-12-07 20:49
strip
219.18
KB
-rwxr-xr-x
2018-12-07 20:49
sudo
133.6
KB
-rwsr-xr-x
2021-01-20 18:08
sudoedit
133.6
KB
-rwsr-xr-x
2021-01-20 18:08
sudoreplay
46.56
KB
-rwxr-xr-x
2021-01-20 18:08
sum
38.74
KB
-rwxr-xr-x
2017-03-02 19:07
symcryptrun
98.6
KB
-rwxr-xr-x
2018-06-14 22:06
systemd-analyze
1.43
MB
-rwxr-xr-x
2021-04-02 17:51
systemd-cat
34.43
KB
-rwxr-xr-x
2021-04-02 17:51
systemd-cgls
291.22
KB
-rwxr-xr-x
2021-04-02 17:51
systemd-cgtop
303.3
KB
-rwxr-xr-x
2021-04-02 17:51
systemd-delta
62.59
KB
-rwxr-xr-x
2021-04-02 17:51
systemd-detect-virt
34.42
KB
-rwxr-xr-x
2021-04-02 17:51
systemd-path
42.42
KB
-rwxr-xr-x
2021-04-02 17:51
systemd-resolve
327.21
KB
-rwxr-xr-x
2021-04-02 17:51
systemd-run
367.52
KB
-rwxr-xr-x
2021-04-02 17:51
systemd-stdio-bridge
343.2
KB
-rwxr-xr-x
2021-04-02 17:51
tabs
14.23
KB
-rwxr-xr-x
2016-02-19 09:22
tac
34.73
KB
-rwxr-xr-x
2017-03-02 19:07
tail
62.92
KB
-rwxr-xr-x
2017-03-02 19:07
tasksel
18.47
KB
-rwxr-xr-x
2016-01-02 03:46
taskset
30.68
KB
-rwxr-xr-x
2020-01-27 15:28
tbl
118.2
KB
-rwxr-xr-x
2016-01-29 06:15
tee
34.73
KB
-rwxr-xr-x
2017-03-02 19:07
telnet
97.5
KB
-rwxr-xr-x
2015-05-06 15:24
telnet.netkit
97.5
KB
-rwxr-xr-x
2015-05-06 15:24
test
46.7
KB
-rwxr-xr-x
2017-03-02 19:07
testparm
25.99
KB
-rwxr-xr-x
2021-04-14 18:00
tic
70.71
KB
-rwxr-xr-x
2016-02-19 09:22
time
14.72
KB
-rwxr-xr-x
2015-07-22 13:11
timedatectl
295.22
KB
-rwxr-xr-x
2021-04-02 17:51
timeout
55.38
KB
-rwxr-xr-x
2017-03-02 19:07
tload
14.44
KB
-rwxr-xr-x
2020-03-05 13:43
tmux
500.7
KB
-rwxr-xr-x
2016-02-07 11:13
toe
14.34
KB
-rwxr-xr-x
2016-02-19 09:22
toilet
18.86
KB
-rwxr-xr-x
2012-06-26 12:52
top
106.51
KB
-rwxr-xr-x
2020-03-05 13:43
touch
62.92
KB
-rwxr-xr-x
2017-03-02 19:07
tput
14.3
KB
-rwxr-xr-x
2016-02-19 09:22
tr
46.73
KB
-rwxr-xr-x
2017-03-02 19:07
tracepath
14.34
KB
-rwxr-xr-x
2014-05-07 21:45
tracepath6
14.34
KB
-rwxr-xr-x
2014-05-07 21:45
traceroute6
22.56
KB
-rwxr-xr-x
2014-05-07 21:45
traceroute6.iputils
22.56
KB
-rwxr-xr-x
2014-05-07 21:45
troff
695.34
KB
-rwxr-xr-x
2016-01-29 06:15
truncate
50.8
KB
-rwxr-xr-x
2017-03-02 19:07
tset
18.42
KB
-rwxr-xr-x
2016-02-19 09:22
tsk_comparedir
94.7
KB
-rwxr-xr-x
2015-11-29 00:13
tsk_gettimes
86.7
KB
-rwxr-xr-x
2015-11-29 00:13
tsk_loaddb
86.63
KB
-rwxr-xr-x
2015-11-29 00:13
tsk_recover
90.7
KB
-rwxr-xr-x
2015-11-29 00:13
tsort
34.67
KB
-rwxr-xr-x
2017-03-02 19:07
tty
26.67
KB
-rwxr-xr-x
2017-03-02 19:07
tzselect
14.85
KB
-rwxr-xr-x
2021-04-21 20:11
ua
362
B
-rwxr-xr-x
2022-06-20 16:29
ubuntu-advantage
362
B
-rwxr-xr-x
2022-06-20 16:29
ubuntu-bug
2.5
KB
-rwxr-xr-x
2025-07-11 17:07
ubuntu-core-launcher
108.2
KB
-rwsr-xr-x
2021-02-08 05:39
ubuntu-distro-info
18.59
KB
-rwxr-xr-x
2021-04-21 21:04
ubuntu-support-status
7.99
KB
-rwxr-xr-x
2019-11-18 21:51
ucf
39.68
KB
-rwxr-xr-x
2016-03-16 21:58
ucfq
18.91
KB
-rwxr-xr-x
2016-03-16 21:58
ucfr
10.47
KB
-rwxr-xr-x
2016-03-16 21:58
ul
14.3
KB
-rwxr-xr-x
2016-03-01 12:43
unattended-upgrade
82.55
KB
-rwxr-xr-x
2021-03-05 14:33
unattended-upgrades
82.55
KB
-rwxr-xr-x
2021-03-05 14:33
unexpand
30.73
KB
-rwxr-xr-x
2017-03-02 19:07
unicode_stop
530
B
-rwxr-xr-x
2016-09-22 19:33
uniq
42.77
KB
-rwxr-xr-x
2017-03-02 19:07
unlink
26.64
KB
-rwxr-xr-x
2017-03-02 19:07
unlzma
67.04
KB
-rwxr-xr-x
2014-02-12 16:14
unshare
18.72
KB
-rwxr-xr-x
2020-01-27 15:28
unsquashfs
92.65
KB
-rwxr-xr-x
2018-08-09 00:11
unxz
67.04
KB
-rwxr-xr-x
2014-02-12 16:14
unzip
162.89
KB
-rwxr-xr-x
2020-12-03 02:12
unzipsfx
74.8
KB
-rwxr-xr-x
2020-12-03 02:12
update-alternatives
46.61
KB
-rwxr-xr-x
2021-04-20 22:48
update-leap
11.24
KB
-rwxr-xr-x
2020-01-07 16:08
update-mime-database
672
B
-rwxr-xr-x
2018-07-13 16:07
update-mime-database.real
51.16
KB
-rwxr-xr-x
2018-07-13 16:07
updatedb
42.74
KB
-rwxr-xr-x
2014-11-18 08:54
updatedb.mlocate
42.74
KB
-rwxr-xr-x
2014-11-18 08:54
uptime
10.33
KB
-rwxr-xr-x
2020-03-05 13:43
usb-devices
4.12
KB
-rwxr-xr-x
2015-10-23 23:56
usbhid-dump
22.55
KB
-rwxr-xr-x
2015-10-23 23:56
users
30.7
KB
-rwxr-xr-x
2017-03-02 19:07
utmpdump
14.52
KB
-rwxr-xr-x
2020-01-27 15:28
uuidgen
10.35
KB
-rwxr-xr-x
2020-01-27 15:28
vcs-run
6.75
KB
-rwxr-xr-x
2020-09-29 20:17
vi
2.33
MB
-rwxr-xr-x
2020-10-14 15:04
view
2.33
MB
-rwxr-xr-x
2020-10-14 15:04
vigpg
2.58
KB
-rwxr-xr-x
2016-04-14 21:29
vim
2.33
MB
-rwxr-xr-x
2020-10-14 15:04
vim.basic
2.33
MB
-rwxr-xr-x
2020-10-14 15:04
vim.tiny
1.02
MB
-rwxr-xr-x
2020-10-14 14:59
vimdiff
2.33
MB
-rwxr-xr-x
2020-10-14 15:04
vimtutor
2.04
KB
-rwxr-xr-x
2020-10-14 14:58
vmhgfs-fuse
47.09
KB
-rwxr-xr-x
2018-05-09 01:51
vmstat
30.48
KB
-rwxr-xr-x
2020-03-05 13:43
vmtoolsd
47.55
KB
-rwxr-xr-x
2018-05-09 01:51
vmware-checkvm
10.3
KB
-rwxr-xr-x
2018-05-09 01:51
vmware-guestproxycerttool
31.45
KB
-rwxr-xr-x
2018-05-09 01:51
vmware-hgfsclient
10.38
KB
-rwxr-xr-x
2018-05-09 01:51
vmware-namespace-cmd
14.45
KB
-rwxr-xr-x
2018-05-09 01:51
vmware-rpctool
18.38
KB
-rwxr-xr-x
2018-05-09 01:51
vmware-toolbox-cmd
39.02
KB
-rwxr-xr-x
2018-05-09 01:51
vmware-vgauth-cmd
14.41
KB
-rwxr-xr-x
2018-05-09 01:51
vmware-vgauth-smoketest
18.34
KB
-rwxr-xr-x
2018-05-09 01:51
vmware-vmblock-fuse
14.8
KB
-rwxr-xr-x
2018-05-09 01:51
vmware-xferlogs
10.42
KB
-rwxr-xr-x
2018-05-09 01:51
volname
9.99
KB
-rwxr-xr-x
2017-03-27 17:56
w
18.48
KB
-rwxr-xr-x
2020-03-05 13:43
w.procps
18.48
KB
-rwxr-xr-x
2020-03-05 13:43
wall
26.73
KB
-rwxr-sr-x
2020-01-27 15:28
watch
23.14
KB
-rwxr-xr-x
2020-03-05 13:43
watchgnupg
13.99
KB
-rwxr-xr-x
2018-06-14 22:06
wc
42.8
KB
-rwxr-xr-x
2017-03-02 19:07
wget
463.53
KB
-rwxr-xr-x
2019-04-09 00:43
whatis
46.98
KB
-rwxr-xr-x
2015-11-07 00:14
whereis
23.09
KB
-rwxr-xr-x
2020-01-27 15:28
which
946
B
-rwxr-xr-x
2016-01-26 19:17
who
46.86
KB
-rwxr-xr-x
2017-03-02 19:07
whoami
26.67
KB
-rwxr-xr-x
2017-03-02 19:07
whois
72.53
KB
-rwxr-xr-x
2015-12-08 18:11
wifi-status
1.43
KB
-rwxr-xr-x
2016-04-14 21:29
write
14.41
KB
-rwxr-sr-x
2016-03-01 12:43
x86_64
14.38
KB
-rwxr-xr-x
2020-01-27 15:28
x86_64-linux-gnu-addr2line
27.12
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-ar
59.12
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-as
360.82
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-c++filt
26.61
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-cpp
898.27
KB
-rwxr-xr-x
2019-10-04 20:49
x86_64-linux-gnu-cpp-5
898.27
KB
-rwxr-xr-x
2019-10-04 20:49
x86_64-linux-gnu-dwp
2.6
MB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-elfedit
30.81
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-g++
898.27
KB
-rwxr-xr-x
2019-10-04 21:00
x86_64-linux-gnu-g++-5
898.27
KB
-rwxr-xr-x
2019-10-04 21:00
x86_64-linux-gnu-gcc
894.27
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gcc-5
894.27
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gcc-ar
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gcc-ar-5
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gcc-nm
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gcc-nm-5
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gcc-ranlib
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gcc-ranlib-5
30.41
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gcov
463.84
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gcov-5
463.84
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gcov-tool
451.8
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gcov-tool-5
451.8
KB
-rwxr-xr-x
2019-10-04 21:23
x86_64-linux-gnu-gprof
96.3
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-ld
1.16
MB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-ld.bfd
1.16
MB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-ld.gold
2.78
MB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-nm
39.79
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-objcopy
219.17
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-objdump
348.4
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-ranlib
59.12
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-readelf
473.81
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-size
30.96
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-strings
27.08
KB
-rwxr-xr-x
2018-12-07 20:49
x86_64-linux-gnu-strip
219.18
KB
-rwxr-xr-x
2018-12-07 20:49
xargs
66.21
KB
-rwxr-xr-x
2016-02-08 00:18
xauth
39.45
KB
-rwxr-xr-x
2015-03-26 23:25
xdg-user-dir
234
B
-rwxr-xr-x
2018-03-28 14:07
xdg-user-dirs-update
18.49
KB
-rwxr-xr-x
2018-03-28 14:07
xsubpp
5.01
KB
-rwxr-xr-x
2020-10-19 12:57
xxd
18.12
KB
-rwxr-xr-x
2020-10-14 15:04
xz
67.04
KB
-rwxr-xr-x
2014-02-12 16:14
xzcat
67.04
KB
-rwxr-xr-x
2014-02-12 16:14
xzcmp
5.39
KB
-rwxr-xr-x
2014-02-12 16:14
xzdiff
5.39
KB
-rwxr-xr-x
2014-02-12 16:14
xzegrep
5.29
KB
-rwxr-xr-x
2014-02-12 16:14
xzfgrep
5.29
KB
-rwxr-xr-x
2014-02-12 16:14
xzgrep
5.29
KB
-rwxr-xr-x
2014-02-12 16:14
xzless
1.78
KB
-rwxr-xr-x
2014-02-12 16:14
xzmore
2.12
KB
-rwxr-xr-x
2014-02-12 16:14
yes
30.67
KB
-rwxr-xr-x
2017-03-02 19:07
zdump
14.42
KB
-rwxr-xr-x
2021-04-21 20:14
zipdetails
47.32
KB
-rwxr-xr-x
2020-10-19 12:57
zipgrep
2.88
KB
-rwxr-xr-x
2020-12-03 02:12
zipinfo
162.89
KB
-rwxr-xr-x
2020-12-03 02:12
Save
Rename
#! /usr/bin/perl -w # Copyright (C) 2001,2002 Oliver Ehli <elmy@acm.org> # Copyright (C) 2001 Mike Schiraldi <raldi@research.netsol.com> # Copyright (C) 2003 Bjoern Jacke <bjoern@j3e.de> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. use strict; use File::Copy; use File::Glob ':glob'; use File::Temp qw(tempfile tempdir); umask 077; use Time::Local; # helper routines sub usage (); sub mutt_Q ($); sub mycopy ($$); sub query_label (); sub mkdir_recursive ($); sub verify_files_exist (@); sub create_tempfile (;$); sub new_cert_structure (); sub create_cert_chains (@); # openssl helpers sub openssl_exec (@); sub openssl_format ($); sub openssl_x509_query ($@); sub openssl_hash ($); sub openssl_fingerprint ($); sub openssl_emails ($); sub openssl_p12_to_pem ($$); sub openssl_verify ($$); sub openssl_crl_text($); sub openssl_trust_flag ($$;$); sub openssl_parse_pem ($$); sub openssl_dump_cert ($); sub openssl_purpose_flag ($); # key/certificate management methods sub cm_list_certs (); sub cm_add_entry ($$$$$$;$); sub cm_add_cert ($); sub cm_add_indexed_cert ($$$); sub cm_add_key ($$$$$$); sub cm_modify_entry ($$$;$); sub cm_find_entry ($$); sub cm_refresh_index (); # op handlers sub handle_init_paths (); sub handle_change_label ($); sub handle_add_cert ($); sub handle_add_pem ($); sub handle_add_p12 ($); sub handle_add_chain ($$$); sub handle_verify_cert($$); sub handle_remove_pair ($); sub handle_add_root_cert ($); my $mutt = $ENV{MUTT_CMDLINE} || 'mutt'; my $opensslbin = "/usr/bin/openssl"; my $tmpdir; # Get the directories mutt uses for certificate/key storage. my $private_keys_path = mutt_Q 'smime_keys'; die "smime_keys is not set in mutt's configuration file" if length $private_keys_path == 0; my $certificates_path = mutt_Q 'smime_certificates'; die "smime_certificates is not set in mutt's configuration file" if length $certificates_path == 0; my $root_certs_path = mutt_Q 'smime_ca_location'; die "smime_ca_location is not set in mutt's configuration file" if length $root_certs_path == 0; my $root_certs_switch; if ( -d $root_certs_path) { $root_certs_switch = -CApath; } else { $root_certs_switch = -CAfile; } ###### # OPS ###### if (@ARGV == 1 and $ARGV[0] eq "init") { handle_init_paths(); } elsif (@ARGV == 1 and $ARGV[0] eq "refresh") { cm_refresh_index(); } elsif (@ARGV == 1 and $ARGV[0] eq "list") { cm_list_certs(); } elsif (@ARGV == 2 and $ARGV[0] eq "label") { handle_change_label($ARGV[1]); } elsif (@ARGV == 2 and $ARGV[0] eq "add_cert") { verify_files_exist($ARGV[1]); handle_add_cert($ARGV[1]); } elsif (@ARGV == 2 and $ARGV[0] eq "add_pem") { verify_files_exist($ARGV[1]); handle_add_pem($ARGV[1]); } elsif ( @ARGV == 2 and $ARGV[0] eq "add_p12") { verify_files_exist($ARGV[1]); handle_add_p12($ARGV[1]); } elsif (@ARGV == 4 and $ARGV[0] eq "add_chain") { verify_files_exist($ARGV[1], $ARGV[2], $ARGV[3]); handle_add_chain($ARGV[1], $ARGV[2], $ARGV[3]); } elsif ((@ARGV == 2 or @ARGV == 3) and $ARGV[0] eq "verify") { verify_files_exist($ARGV[2]) if (@ARGV == 3); handle_verify_cert($ARGV[1], $ARGV[2]); } elsif (@ARGV == 2 and $ARGV[0] eq "remove") { handle_remove_pair($ARGV[1]); } elsif (@ARGV == 2 and $ARGV[0] eq "add_root") { verify_files_exist($ARGV[1]); handle_add_root_cert($ARGV[1]); } else { usage(); exit(1); } exit(0); ############## sub-routines ######################## ################### # helper routines ################### sub usage () { print <<EOF; Usage: smime_keys <operation> [file(s) | keyID [file(s)]] with operation being one of: init : no files needed, inits directory structure. refresh : refreshes certificate and key index files. Updates trust flag (expiration). Adds purpose flag if missing. list : lists the certificates stored in database. label : keyID required. changes/removes/adds label. remove : keyID required. verify : 1=keyID and optionally 2=CRL Verifies the certificate chain, and optionally wether this certificate is included in supplied CRL (PEM format). Note: to verify all certificates at the same time, replace keyID with "all" add_cert : certificate required. add_chain : three files reqd: 1=Key, 2=certificate plus 3=intermediate certificate(s). add_p12 : one file reqd. Adds keypair to database. file is PKCS12 (e.g. export from netscape). add_pem : one file reqd. Adds keypair to database. (file was converted from e.g. PKCS12). add_root : one file reqd. Adds PEM root certificate to the location specified within muttrc (smime_verify_* command) EOF } sub mutt_Q ($) { my ($var) = @_; my $cmd = "$mutt -v >/dev/null 2>/dev/null"; system ($cmd) == 0 or die<<EOF; Couldn't launch mutt. I attempted to do so by running the command "$mutt". If that's not the right command, you can override it by setting the environment variable \$MUTT_CMDLINE EOF $cmd = "$mutt -Q $var 2>/dev/null"; my $answer = `$cmd`; $? and die<<EOF; Couldn't look up the value of the mutt variable "$var". You must set this in your mutt config file. See contrib/smime.rc for an example. EOF $answer =~ /\"(.*?)\"/ and return bsd_glob($1, GLOB_TILDE | GLOB_NOCHECK); $answer =~ /^Mutt (.*?) / and die<<EOF; This script requires mutt 1.5.0 or later. You are using mutt $1. EOF die "Value of $var is weird\n"; } sub mycopy ($$) { my ($source, $dest) = @_; copy $source, $dest or die "Problem copying $source to $dest: $!\n"; } sub query_label () { my $input; my $label; my $junk; print "\nYou may assign a label to this key, so you don't have to remember\n"; print "the key ID. This has to be _one_ word (no whitespaces).\n\n"; print "Enter label: "; $input = <STDIN>; if (defined($input) && ($input !~ /^\s*$/)) { chomp($input); $input =~ s/^\s+//; ($label, $junk) = split(/\s/, $input, 2); if (defined($junk)) { print "\nUsing '$label' as label; ignoring '$junk'\n"; } } if ((! defined($label)) || ($label =~ /^\s*$/)) { $label = "-"; } return $label; } sub mkdir_recursive ($) { my ($path) = @_; my $tmp_path; for my $dir (split /\//, $path) { $tmp_path .= "$dir/"; -d $tmp_path or mkdir $tmp_path, 0700 or die "Can't mkdir $tmp_path: $!"; } } sub verify_files_exist (@) { my (@files) = @_; foreach my $file (@files) { if ((! -e $file) || (! -s $file)) { die("$file is nonexistent or empty."); } } } # Returns a list ($fh, $filename) sub create_tempfile (;$) { my ($directory) = @_; if (! defined($directory)) { if (! defined($tmpdir)) { $tmpdir = tempdir(CLEANUP => 1); } $directory = $tmpdir; } return tempfile(DIR => $directory); } # Creates a cert data structure used by openssl_parse_pem sub new_cert_structure () { my $cert_data = {}; $cert_data->{datafile} = ""; $cert_data->{type} = ""; $cert_data->{localKeyID} = ""; $cert_data->{subject} = ""; $cert_data->{issuer} = ""; return $cert_data; } sub create_cert_chains (@) { my (@certs) = @_; my (%subject_hash, @leaves, @chains); foreach my $cert (@certs) { $cert->{children} = 0; if ($cert->{subject}) { $subject_hash{$cert->{subject}} = $cert; } } foreach my $cert (@certs) { my $parent = $subject_hash{$cert->{issuer}}; if (defined($parent)) { $parent->{children} += 1; } } @leaves = grep { $_->{children} == 0 } @certs; foreach my $leaf (@leaves) { my $chain = []; my $cert = $leaf; while (defined($cert)) { push @$chain, $cert; $cert = $subject_hash{$cert->{issuer}}; if (defined($cert) && (scalar(grep {$_ == $cert} @$chain) != 0)) { $cert = undef; } } push @chains, $chain; } return @chains; } ################## # openssl helpers ################## sub openssl_exec (@) { my (@args) = @_; my $fh; open($fh, "-|", $opensslbin, @args) or die "Failed to run '$opensslbin @args': $!"; my @output = <$fh>; if (! close($fh)) { # NOTE: Callers should check the value of $? for the exit status. if ($!) { die "Syserr closing '$opensslbin @args' pipe: $!"; } } return @output; } sub openssl_format ($) { my ($filename) = @_; return -B $filename ? 'DER' : 'PEM'; } sub openssl_x509_query ($@) { my ($filename, @query) = @_; my $format = openssl_format($filename); my @args = ("x509", "-in", $filename, "-inform", $format, "-noout", @query); return openssl_exec(@args); } sub openssl_hash ($) { my ($filename) = @_; my $cert_hash = join("", openssl_x509_query($filename, "-hash")); $? and die "openssl -hash '$filename' returned $?"; chomp($cert_hash); return $cert_hash; } sub openssl_fingerprint ($) { my ($filename) = @_; my $fingerprint = join("", openssl_x509_query($filename, "-fingerprint")); $? and die "openssl -fingerprint '$filename' returned $?"; chomp($fingerprint); return $fingerprint; } sub openssl_emails ($) { my ($filename) = @_; my @mailboxes = openssl_x509_query($filename, "-email"); $? and die "openssl -email '$filename' returned $?"; chomp(@mailboxes); return @mailboxes; } sub openssl_p12_to_pem ($$) { my ($p12_file, $pem_file) = @_; my @args = ("pkcs12", "-in", $p12_file, "-out", $pem_file); openssl_exec(@args); $? and die "openssl pkcs12 conversion returned $?"; } sub openssl_verify ($$) { my ($issuer_path, $cert_path) = @_; my @args = ("verify", $root_certs_switch, $root_certs_path, "-purpose", "smimesign", "-purpose", "smimeencrypt", "-untrusted", $issuer_path, $cert_path); my $output = join("", openssl_exec(@args)); chomp($output); return $output; } sub openssl_crl_text($) { my ($crl) = @_; my @args = ("crl", "-text", "-noout", "-in", $crl); my @output = openssl_exec(@args); $? and die "openssl crl -text '$crl' returned $?"; return @output; } sub openssl_trust_flag ($$;$) { my ($cert, $issuerid, $crl) = @_; print "==> about to verify certificate of $cert\n"; my $result = 't'; my $issuer_path; my $cert_path = "$certificates_path/$cert"; if ($issuerid eq '?') { $issuer_path = "$certificates_path/$cert"; } else { $issuer_path = "$certificates_path/$issuerid"; } my $output = openssl_verify($issuer_path, $cert_path); if ($?) { print "openssl verify returned exit code " . ($? >> 8) . " with output:\n"; print "$output\n\n"; print "Marking certificate as invalid\n"; return 'i'; } print "\n$output\n"; if ($output !~ /OK/) { return 'i'; } my ($not_before, $not_after, $serial_in) = openssl_x509_query($cert_path, "-dates", "-serial"); $? and die "openssl -dates -serial '$cert_path' returned $?"; if ( defined $not_before and defined $not_after ) { my %months = ('Jan', '00', 'Feb', '01', 'Mar', '02', 'Apr', '03', 'May', '04', 'Jun', '05', 'Jul', '06', 'Aug', '07', 'Sep', '08', 'Oct', '09', 'Nov', '10', 'Dec', '11'); my @tmp = split (/\=/, $not_before); my $not_before_date = $tmp[1]; my @fields = $not_before_date =~ /(\w+)\s*(\d+)\s*(\d+):(\d+):(\d+)\s*(\d+)\s*GMT/; if ($#fields == 5) { if (timegm($fields[4], $fields[3], $fields[2], $fields[1], $months{$fields[0]}, $fields[5]) > time) { print "Certificate is not yet valid.\n"; return 'e'; } } else { print "Expiration Date: Parse Error : $not_before_date\n\n"; } @tmp = split (/\=/, $not_after); my $not_after_date = $tmp[1]; @fields = $not_after_date =~ /(\w+)\s*(\d+)\s*(\d+):(\d+):(\d+)\s*(\d+)\s*GMT/; if ($#fields == 5) { if (timegm($fields[4], $fields[3], $fields[2], $fields[1], $months{$fields[0]}, $fields[5]) < time) { print "Certificate has expired.\n"; return 'e'; } } else { print "Expiration Date: Parse Error : $not_after_date\n\n"; } } if ( defined $crl ) { chomp($serial_in); my @serial = split (/\=/, $serial_in); my $match_line = undef; my @crl_lines = openssl_crl_text($crl); for (my $index = 0; $index <= $#crl_lines; $index++) { if ($crl_lines[$index] =~ /Serial Number:\s*\Q$serial[1]\E\b/) { $match_line = $crl_lines[$index + 1]; last; } } if ( defined $match_line ) { my @revoke_date = split (/:\s/, $match_line); print "FAILURE: Certificate $cert has been revoked on $revoke_date[1]\n"; $result = 'r'; } } print "\n"; return $result; } sub openssl_parse_pem ($$) { my ($filename, $attrs_required) = @_; my $state = 0; my $cert_data; my @certs; my $cert_count = 0; my $bag_count = 0; my $cert_tmp_fh; my $cert_tmp_filename; $cert_data = new_cert_structure(); ($cert_tmp_fh, $cert_data->{datafile}) = create_tempfile(); open(PEM_FILE, "<$filename") or die("Can't open $filename: $!"); while (<PEM_FILE>) { if (/^Bag Attributes/) { $bag_count++; $state == 0 or die("PEM-parse error at: $."); $state = 1; } # Allow attributes without the "Bag Attributes" header if ($state != 2) { if (/localKeyID:\s*(.*)/) { $cert_data->{localKeyID} = $1; } if (/subject=\s*(.*)/) { $cert_data->{subject} = $1; } if (/issuer=\s*(.*)/) { $cert_data->{issuer} = $1; } } if (/^-----/) { if (/BEGIN/) { print $cert_tmp_fh $_; $state = 2; if (/PRIVATE/) { $cert_data->{type} = "K"; next; } if (/CERTIFICATE/) { $cert_data->{type} = "C"; next; } die("What's this: $_"); } if (/END/) { $state = 0; print $cert_tmp_fh $_; close($cert_tmp_fh); $cert_count++; push (@certs, $cert_data); $cert_data = new_cert_structure(); ($cert_tmp_fh, $cert_data->{datafile}) = create_tempfile(); next; } } print $cert_tmp_fh $_; } close($cert_tmp_fh); close(PEM_FILE); if ($attrs_required && ($bag_count != $cert_count)) { die("Not all contents were bagged. can't continue."); } return @certs; } sub openssl_dump_cert ($) { my ($filename) = @_; my $format = openssl_format($filename); my @args = ("x509", "-in", $filename, "-inform", $format); my $output = join("", openssl_exec(@args)); $? and die "openssl x509 certicate dump returned $?"; return $output; } sub openssl_purpose_flag ($) { my ($filename) = @_; my $purpose = ""; my @output = openssl_x509_query($filename, "-purpose"); $? and die "openssl -purpose '$filename' returned $?"; foreach my $line (@output) { if ($line =~ /^S\/MIME signing\s*:\s*Yes/) { $purpose .= "s"; } elsif ($line =~ /^S\/MIME encryption\s*:\s*Yes/) { $purpose .= "e"; } } if (! $purpose) { $purpose = "-"; } return $purpose; } ################################# # certificate management methods ################################# sub cm_list_certs () { my %keyflags = ( 'i', '(Invalid)', 'r', '(Revoked)', 'e', '(Expired)', 'u', '(Unverified)', 'v', '(Valid)', 't', '(Trusted)'); open(INDEX, "<$certificates_path/.index") or die "Couldn't open $certificates_path/.index: $!"; print "\n"; while (<INDEX>) { my $tmp; my @tmp; my $tab = " "; my @fields = split; if ($fields[2] eq '-') { print "$fields[1]: Issued for: $fields[0] $keyflags{$fields[4]}\n"; } else { print "$fields[1]: Issued for: $fields[0] \"$fields[2]\" $keyflags{$fields[4]}\n"; } my $certfile = "$certificates_path/$fields[1]"; my $cert; { open F, $certfile or die "Couldn't open $certfile: $!"; local $/; $cert = <F>; close F; } my ($subject_in, $issuer_in, $date1_in, $date2_in) = openssl_x509_query($certfile, "-subject", "-issuer", "-dates"); $? and print "ERROR: openssl -subject -issuer -dates '$certfile' returned $?\n\n" and next; my @subject = split(/\//, $subject_in); while (@subject) { $tmp = shift @subject; ($tmp =~ /^CN\=/) and last; undef $tmp; } defined $tmp and @tmp = split (/\=/, $tmp) and print $tab."Subject: $tmp[1]\n"; my @issuer = split(/\//, $issuer_in); while (@issuer) { $tmp = shift @issuer; ($tmp =~ /^CN\=/) and last; undef $tmp; } defined $tmp and @tmp = split (/\=/, $tmp) and print $tab."Issued by: $tmp[1]"; if ( defined $date1_in and defined $date2_in ) { @tmp = split (/\=/, $date1_in); $tmp = $tmp[1]; @tmp = split (/\=/, $date2_in); print $tab."Certificate is not valid before $tmp". $tab." or after ".$tmp[1]; } -e "$private_keys_path/$fields[1]" and print "$tab - Matching private key installed -\n"; my @purpose = openssl_x509_query($certfile, "-purpose"); $? and die "openssl -purpose '$certfile' returned $?"; chomp(@purpose); print "$tab$purpose[0] (displays S/MIME options only)\n"; while (@purpose) { $tmp = shift @purpose; ($tmp =~ /^S\/MIME/ and $tmp =~ /Yes/) or next; my @tmptmp = split (/:/, $tmp); print "$tab $tmptmp[0]\n"; } print "\n"; } close(INDEX); } sub cm_add_entry ($$$$$$;$) { my ($mailbox, $hashvalue, $use_cert, $label, $trust, $purpose, $issuer_hash) = @_; if (! defined($issuer_hash) ) { $issuer_hash = "?"; } if ($use_cert) { open(INDEX, "+<$certificates_path/.index") or die "Couldn't open $certificates_path/.index: $!"; } else { open(INDEX, "+<$private_keys_path/.index") or die "Couldn't open $private_keys_path/.index: $!"; } while (<INDEX>) { my @fields = split; if (($fields[0] eq $mailbox) && ($fields[1] eq $hashvalue)) { close(INDEX); return; } } print INDEX "$mailbox $hashvalue $label $issuer_hash $trust $purpose\n"; close(INDEX); } # Returns the hashvalue.index of the stored cert sub cm_add_cert ($) { my ($filename) = @_; my $iter = 0; my $hashvalue = openssl_hash($filename); my $fp1 = openssl_fingerprint($filename); while (-e "$certificates_path/$hashvalue.$iter") { my $fp2 = openssl_fingerprint("$certificates_path/$hashvalue.$iter"); last if $fp1 eq $fp2; $iter++; } $hashvalue .= ".$iter"; if (-e "$certificates_path/$hashvalue") { print "\nCertificate: $certificates_path/$hashvalue already installed.\n"; } else { mycopy $filename, "$certificates_path/$hashvalue"; } return $hashvalue; } # Returns a reference containing the hashvalue, mailboxes, trust flag, and purpose # flag of the stored cert. sub cm_add_indexed_cert ($$$) { my ($filename, $label, $issuer_hash) = @_; my $cert_data = {}; $cert_data->{hashvalue} = cm_add_cert($filename); $cert_data->{mailboxes} = [ openssl_emails($filename) ]; $cert_data->{trust} = openssl_trust_flag($cert_data->{hashvalue}, $issuer_hash); $cert_data->{purpose} = openssl_purpose_flag($filename); foreach my $mailbox (@{$cert_data->{mailboxes}}) { cm_add_entry($mailbox, $cert_data->{hashvalue}, 1, $label, $cert_data->{trust}, $cert_data->{purpose}, $issuer_hash); print "\ncertificate ", $cert_data->{hashvalue}, " ($label) for $mailbox added.\n"; } return $cert_data; } sub cm_add_key ($$$$$$) { my ($file, $hashvalue, $mailbox, $label, $trust, $purpose) = @_; unless (-e "$private_keys_path/$hashvalue") { mycopy $file, "$private_keys_path/$hashvalue"; } cm_add_entry($mailbox, $hashvalue, 0, $label, $trust, $purpose); print "added private key: " . "$private_keys_path/$hashvalue for $mailbox\n"; } sub cm_modify_entry ($$$;$) { my ($op, $hashvalue, $use_cert, $opt_param) = @_; my $label; my $trust; my $purpose; my $path; my @fields; $op eq 'L' and ($label = $opt_param); $op eq 'T' and ($trust = $opt_param); $op eq 'P' and ($purpose = $opt_param); if ($use_cert) { $path = $certificates_path; } else { $path = $private_keys_path; } open(INDEX, "<$path/.index") or die "Couldn't open $path/.index: $!"; my ($newindex_fh, $newindex) = create_tempfile(); while (<INDEX>) { chomp; # fields: mailbox hash label issuer_hash trust purpose @fields = split; if ($fields[1] eq $hashvalue or $hashvalue eq 'all') { $op eq 'R' and next; if ($op eq 'L') { $fields[2] = $label; } if ($op eq 'T') { $fields[3] = "?" if ($#fields < 3); $fields[4] = $trust; } if ($op eq 'P') { $fields[3] = "?" if ($#fields < 3); $fields[4] = "u" if ($#fields < 4); $fields[5] = $purpose; } print $newindex_fh join(" ", @fields), "\n"; } else { print $newindex_fh $_, "\n"; } } close(INDEX); close($newindex_fh); move $newindex, "$path/.index" or die "Couldn't move $newindex to $path/.index: $!\n"; } # This returns the first matching entry. sub cm_find_entry ($$) { my ($hashvalue, $use_cert) = @_; my ($path, $index_fh); if ($use_cert) { $path = $certificates_path; } else { $path = $private_keys_path; } open($index_fh, "<$path/.index") or die "Couldn't open $path/.index: $!"; while (<$index_fh>) { chomp; my @fields = split; if ($fields[1] eq $hashvalue) { close($index_fh); return @fields; } } close($index_fh); return; } # Refreshes trust flags, and adds purpose if missing # (e.g. from an older index format) sub cm_refresh_index () { my $index_fh; my ($last_hash, $last_trust, $last_purpose) = ("", "", ""); open($index_fh, "<$certificates_path/.index") or die "Couldn't open $certificates_path/.index: $!"; my ($newindex_fh, $newindex) = create_tempfile(); while (<$index_fh>) { chomp; # fields: mailbox hash label issuer_hash trust purpose my @fields = split; if ($fields[1] eq $last_hash) { $fields[4] = $last_trust; $fields[5] = $last_purpose; } else { # Don't overwrite a revoked flag, because we don't have the CRL if ($fields[4] ne "r") { $fields[4] = openssl_trust_flag($fields[1], $fields[3]); } if ($#fields < 5) { $fields[5] = openssl_purpose_flag("$certificates_path/$fields[1]"); } # To update an old private keys index format, always push the trust # and purpose out. if (-e "$private_keys_path/$fields[1]") { cm_modify_entry ("T", $fields[1], 0, $fields[4]); cm_modify_entry ("P", $fields[1], 0, $fields[5]); } $last_hash = $fields[1]; $last_trust = $fields[4]; $last_purpose = $fields[5]; } print $newindex_fh join(" ", @fields), "\n"; } close($index_fh); close($newindex_fh); move $newindex, "$certificates_path/.index" or die "Couldn't move $newindex to $certificates_path/.index: $!\n"; } ############## # Op handlers ############## sub handle_init_paths () { mkdir_recursive($certificates_path); mkdir_recursive($private_keys_path); my $file; $file = $certificates_path . "/.index"; -f $file or open(TMP_FILE, ">$file") and close(TMP_FILE) or die "Can't touch $file: $!"; $file = $private_keys_path . "/.index"; -f $file or open(TMP_FILE, ">$file") and close(TMP_FILE) or die "Can't touch $file: $!"; } sub handle_change_label ($) { my ($keyid) = @_; my $label = query_label(); if (-e "$certificates_path/$keyid") { cm_modify_entry('L', $keyid, 1, $label); print "Changed label for certificate $keyid.\n"; } else { die "No such certificate: $keyid"; } if (-e "$private_keys_path/$keyid") { cm_modify_entry('L', $keyid, 0, $label); print "Changed label for private key $keyid.\n"; } } sub handle_add_cert($) { my ($filename) = @_; my $label = query_label(); my @cert_contents = openssl_parse_pem($filename, 0); @cert_contents = grep { $_->{type} eq "C" } @cert_contents; my @cert_chains = create_cert_chains(@cert_contents); print "Found " . scalar(@cert_chains) . " certificate chains\n"; foreach my $chain (@cert_chains) { my $leaf = shift(@$chain); my $issuer_chain_hash = "?"; print "Processing chain:\n"; if ($leaf->{subject}) { print "subject=" . $leaf->{subject} . "\n"; } if (scalar(@$chain) > 0) { my ($issuer_chain_fh, $issuer_chain_file) = create_tempfile(); foreach my $issuer (@$chain) { my $issuer_datafile = $issuer->{datafile}; open(my $issuer_fh, "< $issuer_datafile") or die "can't open $issuer_datafile: $?"; print $issuer_chain_fh $_ while (<$issuer_fh>); close($issuer_fh); } close($issuer_chain_fh); $issuer_chain_hash = cm_add_cert($issuer_chain_file); } cm_add_indexed_cert($leaf->{datafile}, $label, $issuer_chain_hash); } } sub handle_add_pem ($) { my ($filename) = @_; my @pem_contents; my $iter; my $key; my $certificate; my $root_cert; my $issuer_cert_file; @pem_contents = openssl_parse_pem($filename, 1); # look for key $iter = 0; while ($iter <= $#pem_contents) { if ($pem_contents[$iter]->{type} eq "K") { $key = $pem_contents[$iter]; splice(@pem_contents, $iter, 1); last; } $iter++; } defined($key) or die("Couldn't find private key!"); $key->{localKeyID} or die("Attribute 'localKeyID' wasn't set."); # private key and certificate use the same 'localKeyID' $iter = 0; while ($iter <= $#pem_contents) { if (($pem_contents[$iter]->{type} eq "C") && ($pem_contents[$iter]->{localKeyID} eq $key->{localKeyID})) { $certificate = $pem_contents[$iter]; splice(@pem_contents, $iter, 1); last; } $iter++; } defined($certificate) or die("Couldn't find matching certificate!"); if ($#pem_contents < 0) { die("No root and no intermediate certificates. Can't continue."); } # Look for a self signed root certificate $iter = 0; while ($iter <= $#pem_contents) { if ($pem_contents[$iter]->{subject} eq $pem_contents[$iter]->{issuer}) { $root_cert = $pem_contents[$iter]; splice(@pem_contents, $iter, 1); last; } $iter++; } if (defined($root_cert)) { $issuer_cert_file = $root_cert->{datafile}; } else { print "Couldn't identify root certificate!\n"; } # what's left are intermediate certificates. if ($#pem_contents >= 0) { my ($tmp_issuer_cert_fh, $tmp_issuer_cert) = create_tempfile(); $issuer_cert_file = $tmp_issuer_cert; $iter = 0; while ($iter <= $#pem_contents) { my $cert_datafile = $pem_contents[$iter]->{datafile}; open (CERT, "< $cert_datafile") or die "can't open $cert_datafile: $?"; print $tmp_issuer_cert_fh $_ while (<CERT>); close CERT; $iter++; } close $tmp_issuer_cert_fh; } handle_add_chain($key->{datafile}, $certificate->{datafile}, $issuer_cert_file); } sub handle_add_p12 ($) { my ($filename) = @_; print "\nNOTE: This will ask you for two passphrases:\n"; print " 1. The passphrase you used for exporting\n"; print " 2. The passphrase you wish to secure your private key with.\n\n"; my ($pem_fh, $pem_file) = create_tempfile(); close($pem_fh); openssl_p12_to_pem($filename, $pem_file); -e $pem_file and -s $pem_file or die("Conversion of $filename failed."); handle_add_pem($pem_file); } sub handle_add_chain ($$$) { my ($key_file, $cert_file, $issuer_file) = @_; my $label = query_label(); my $issuer_hash = cm_add_cert($issuer_file); my $cert_data = cm_add_indexed_cert($cert_file, $label, $issuer_hash); foreach my $mailbox (@{$cert_data->{mailboxes}}) { cm_add_key($key_file, $cert_data->{hashvalue}, $mailbox, $label, $cert_data->{trust}, $cert_data->{purpose}); } } sub handle_verify_cert ($$) { my ($keyid, $crl) = @_; -e "$certificates_path/$keyid" or $keyid eq 'all' or die "No such certificate: $keyid"; my @fields = cm_find_entry($keyid, 1); if (scalar(@fields)) { my $issuer_hash = $fields[3]; my $trust = openssl_trust_flag($keyid, $issuer_hash, $crl); cm_modify_entry('T', $keyid, 0, $trust); cm_modify_entry('T', $keyid, 1, $trust); } } sub handle_remove_pair ($) { my ($keyid) = @_; if (-e "$certificates_path/$keyid") { unlink "$certificates_path/$keyid"; cm_modify_entry('R', $keyid, 1); print "Removed certificate $keyid.\n"; } else { die "No such certificate: $keyid"; } if (-e "$private_keys_path/$keyid") { unlink "$private_keys_path/$keyid"; cm_modify_entry('R', $keyid, 0); print "Removed private key $keyid.\n"; } } sub handle_add_root_cert ($) { my ($root_cert) = @_; my $root_hash = openssl_hash($root_cert); if (-d $root_certs_path) { -e "$root_certs_path/$root_hash" or mycopy $root_cert, "$root_certs_path/$root_hash"; } else { open(ROOT_CERTS, ">>$root_certs_path") or die ("Couldn't open $root_certs_path for writing"); my $md5fp = openssl_fingerprint($root_cert); my @cert_text = openssl_x509_query($root_cert, "-text"); $? and die "openssl -text '$root_cert' returned $?"; print "Enter a label, name or description for this certificate: "; my $input = <STDIN>; my $line = "=======================================\n"; print ROOT_CERTS "\n$input$line$md5fp\nPEM-Data:\n"; my $cert = openssl_dump_cert($root_cert); print ROOT_CERTS $cert; print ROOT_CERTS @cert_text; close (ROOT_CERTS); } }