Linux websever 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 192.168.3.70 | : 192.168.1.99
Cant Read [ /etc/named.conf ]
8.1.2-1ubuntu2.23
urlab
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
bin /
[ HOME SHELL ]
Name
Size
Permission
Action
X11
[ DIR ]
drwxr-xr-x
GET
15.82
KB
-rwxr-xr-x
HEAD
15.82
KB
-rwxr-xr-x
NF
963
B
-rwxr-xr-x
POST
15.82
KB
-rwxr-xr-x
VGAuthService
134.54
KB
-rwxr-xr-x
[
50.42
KB
-rwxr-xr-x
aa-enabled
34.52
KB
-rwxr-xr-x
aa-exec
34.52
KB
-rwxr-xr-x
aa-features-abi
30.52
KB
-rwxr-xr-x
ab
58.43
KB
-rwxr-xr-x
add-apt-repository
14.14
KB
-rwxr-xr-x
addpart
14.38
KB
-rwxr-xr-x
addr2line
26.7
KB
-rwxr-xr-x
apport-bug
2.51
KB
-rwxr-xr-x
apport-cli
13.05
KB
-rwxr-xr-x
apport-collect
2.51
KB
-rwxr-xr-x
apport-unpack
2.02
KB
-rwxr-xr-x
appres
14.3
KB
-rwxr-xr-x
apropos
47.28
KB
-rwxr-xr-x
apt
18.38
KB
-rwxr-xr-x
apt-add-repository
14.14
KB
-rwxr-xr-x
apt-cache
82.47
KB
-rwxr-xr-x
apt-cdrom
26.47
KB
-rwxr-xr-x
apt-config
26.39
KB
-rwxr-xr-x
apt-extracttemplates
22.47
KB
-rwxr-xr-x
apt-ftparchive
230.48
KB
-rwxr-xr-x
apt-get
50.47
KB
-rwxr-xr-x
apt-key
27.51
KB
-rwxr-xr-x
apt-mark
50.47
KB
-rwxr-xr-x
apt-sortpkgs
38.4
KB
-rwxr-xr-x
ar
54.48
KB
-rwxr-xr-x
arborist
2.15
KB
-rwxr-xr-x
arch
30.5
KB
-rwxr-xr-x
aria_chk
4.51
MB
-rwxr-xr-x
aria_dump_log
4.3
MB
-rwxr-xr-x
aria_ftdump
4.31
MB
-rwxr-xr-x
aria_pack
4.34
MB
-rwxr-xr-x
aria_read_log
4.46
MB
-rwxr-xr-x
as
456.4
KB
-rwxr-xr-x
attr
14.3
KB
-rwxr-xr-x
audit2allow
14.84
KB
-rwxr-xr-x
audit2why
14.84
KB
-rwxr-xr-x
automat-visualize3
405
B
-rwxr-xr-x
awk
688.46
KB
-rwxr-xr-x
b2sum
50.51
KB
-rwxr-xr-x
base32
34.5
KB
-rwxr-xr-x
base64
34.5
KB
-rwxr-xr-x
basename
34.5
KB
-rwxr-xr-x
basenc
46.5
KB
-rwxr-xr-x
bash
1.33
MB
-rwxr-xr-x
bashbug
6.66
KB
-rwxr-xr-x
bc
90.82
KB
-rwxr-xr-x
boltctl
122.98
KB
-rwxr-xr-x
bootctl
70.49
KB
-rwxr-xr-x
broadwayd
118.3
KB
-rwxr-xr-x
browse
25.46
KB
-rwxr-xr-x
btrfs
844.13
KB
-rwxr-xr-x
btrfs-convert
483.25
KB
-rwxr-xr-x
btrfs-find-root
439.33
KB
-rwxr-xr-x
btrfs-image
467.25
KB
-rwxr-xr-x
btrfs-map-logical
439.25
KB
-rwxr-xr-x
btrfs-select-super
439.25
KB
-rwxr-xr-x
btrfsck
844.13
KB
-rwxr-xr-x
btrfstune
443.26
KB
-rwxr-xr-x
bunzip2
38.38
KB
-rwxr-xr-x
busctl
90.49
KB
-rwxr-xr-x
busybox
2.09
MB
-rwxr-xr-x
byobu
8.17
KB
-rwxr-xr-x
byobu-config
996
B
-rwxr-xr-x
byobu-ctrl-a
4.66
KB
-rwxr-xr-x
byobu-disable
1.26
KB
-rwxr-xr-x
byobu-disable-prompt
1.31
KB
-rwxr-xr-x
byobu-enable
1.15
KB
-rwxr-xr-x
byobu-enable-prompt
1.42
KB
-rwxr-xr-x
byobu-export
1.32
KB
-rwxr-xr-x
byobu-janitor
6.29
KB
-rwxr-xr-x
byobu-keybindings
1.47
KB
-rwxr-xr-x
byobu-launch
3.25
KB
-rwxr-xr-x
byobu-launcher
1.87
KB
-rwxr-xr-x
byobu-launcher-install
2.4
KB
-rwxr-xr-x
byobu-launcher-uninstall
1.52
KB
-rwxr-xr-x
byobu-layout
3.27
KB
-rwxr-xr-x
byobu-prompt
1.13
KB
-rwxr-xr-x
byobu-quiet
1.38
KB
-rwxr-xr-x
byobu-reconnect-sockets
3.22
KB
-rwxr-xr-x
byobu-screen
8.17
KB
-rwxr-xr-x
byobu-select-backend
1.42
KB
-rwxr-xr-x
byobu-select-profile
5
KB
-rwxr-xr-x
byobu-select-session
1012
B
-rwxr-xr-x
byobu-shell
1.56
KB
-rwxr-xr-x
byobu-silent
1.28
KB
-rwxr-xr-x
byobu-status
5.87
KB
-rwxr-xr-x
byobu-status-detail
1.18
KB
-rwxr-xr-x
byobu-tmux
8.17
KB
-rwxr-xr-x
byobu-ugraph
4.56
KB
-rwxr-xr-x
byobu-ulevel
11.71
KB
-rwxr-xr-x
bzcat
38.38
KB
-rwxr-xr-x
bzcmp
2.17
KB
-rwxr-xr-x
bzdiff
2.17
KB
-rwxr-xr-x
bzegrep
3.69
KB
-rwxr-xr-x
bzexe
4.78
KB
-rwxr-xr-x
bzfgrep
3.69
KB
-rwxr-xr-x
bzgrep
3.69
KB
-rwxr-xr-x
bzip2
38.38
KB
-rwxr-xr-x
bzip2recover
14.3
KB
-rwxr-xr-x
bzless
1.27
KB
-rwxr-xr-x
bzmore
1.27
KB
-rwxr-xr-x
c++
906.82
KB
-rwxr-xr-x
c++filt
22.27
KB
-rwxr-xr-x
c89
428
B
-rwxr-xr-x
c89-gcc
428
B
-rwxr-xr-x
c99
454
B
-rwxr-xr-x
c99-gcc
454
B
-rwxr-xr-x
c_rehash
6.8
KB
-rwxr-xr-x
calc_tickadj
2.78
KB
-rwxr-xr-x
captoinfo
86.41
KB
-rwxr-xr-x
cat
34.45
KB
-rwxr-xr-x
catman
34.76
KB
-rwxr-xr-x
cautious-launcher
853
B
-rwxr-xr-x
cc
906.82
KB
-rwxr-xr-x
certbot
961
B
-rwxr-xr-x
cftp3
956
B
-rwxr-xr-x
cgi-fcgi
18.15
KB
-rwxr-xr-x
chage
70.49
KB
-rwxr-sr-x
chardet
965
B
-rwxr-xr-x
chardetect
965
B
-rwxr-xr-x
chattr
14.31
KB
-rwxr-xr-x
chcat
13.52
KB
-rwxr-xr-x
chcon
58.5
KB
-rwxr-xr-x
checkgid
14.3
KB
-rwxr-xr-x
checkmodule
434.98
KB
-rwxr-xr-x
checkpolicy
491.1
KB
-rwxr-xr-x
chfn
71.01
KB
-rwsr-xr-x
chgrp
54.5
KB
-rwxr-xr-x
chmod
54.5
KB
-rwxr-xr-x
choom
22.38
KB
-rwxr-xr-x
chown
58.5
KB
-rwxr-xr-x
chrt
26.38
KB
-rwxr-xr-x
chsh
43.76
KB
-rwsr-xr-x
chvt
14.23
KB
-rwxr-xr-x
cifsdd
90.92
KB
-rwxr-xr-x
cifsiostat
22.45
KB
-rwxr-xr-x
ckbcomp
146.31
KB
-rwxr-xr-x
ckeygen3
962
B
-rwxr-xr-x
cksum
34.41
KB
-rwxr-xr-x
clear
14.31
KB
-rwxr-xr-x
clear_console
14.23
KB
-rwxr-xr-x
cloud-id
972
B
-rwxr-xr-x
cloud-init
976
B
-rwxr-xr-x
cloud-init-per
2.06
KB
-rwxr-xr-x
clusterdb
9.21
KB
-rwxr-xr-x
cmake
6.43
MB
-rwxr-xr-x
cmp
42.39
KB
-rwxr-xr-x
codepage
14.15
KB
-rwxr-xr-x
col
22.38
KB
-rwxr-xr-x
col1
963
B
-rwxr-xr-x
col2
963
B
-rwxr-xr-x
col3
963
B
-rwxr-xr-x
col4
963
B
-rwxr-xr-x
col5
963
B
-rwxr-xr-x
col6
963
B
-rwxr-xr-x
col7
963
B
-rwxr-xr-x
col8
963
B
-rwxr-xr-x
col9
963
B
-rwxr-xr-x
colcrt
14.38
KB
-rwxr-xr-x
colrm
14.38
KB
-rwxr-xr-x
column
34.38
KB
-rwxr-xr-x
comm
34.51
KB
-rwxr-xr-x
compose
18.06
KB
-rwxr-xr-x
conch3
958
B
-rwxr-xr-x
corelist
15.01
KB
-rwxr-xr-x
cp
138.5
KB
-rwxr-xr-x
cpack
6.38
MB
-rwxr-xr-x
cpan
8.16
KB
-rwxr-xr-x
cpan5.34-x86_64-linux-gnu
8.18
KB
-rwxr-xr-x
cpio
141.64
KB
-rwxr-xr-x
cpp
906.82
KB
-rwxr-xr-x
cpp-11
906.82
KB
-rwxr-xr-x
createdb
9.21
KB
-rwxr-xr-x
createlang
9.21
KB
-rwxr-xr-x
createuser
9.21
KB
-rwxr-xr-x
crontab
38.64
KB
-rwxr-sr-x
csplit
106.5
KB
-rwxr-xr-x
ctail
960
B
-rwxr-xr-x
ctest
7.33
MB
-rwxr-xr-x
ctstat
22.66
KB
-rwxr-xr-x
curl
254.23
KB
-rwxr-xr-x
cut
38.5
KB
-rwxr-xr-x
cvtsudoers
296.4
KB
-rwxr-xr-x
dash
122.74
KB
-rwxr-xr-x
date
102.5
KB
-rwxr-xr-x
dbilogstrip
1.35
KB
-rwxr-xr-x
dbiprof
6.06
KB
-rwxr-xr-x
dbiproxy
5.27
KB
-rwxr-xr-x
dbus-cleanup-sockets
14.29
KB
-rwxr-xr-x
dbus-daemon
227.32
KB
-rwxr-xr-x
dbus-monitor
26.29
KB
-rwxr-xr-x
dbus-run-session
14.29
KB
-rwxr-xr-x
dbus-send
26.29
KB
-rwxr-xr-x
dbus-update-activation-environ...
14.29
KB
-rwxr-xr-x
dbus-uuidgen
14.29
KB
-rwxr-xr-x
dbwrap_tool
26.52
KB
-rwxr-xr-x
dbxtool
26.3
KB
-rwxr-xr-x
dd
66.52
KB
-rwxr-xr-x
deallocvt
14.23
KB
-rwxr-xr-x
deb-systemd-helper
20.89
KB
-rwxr-xr-x
deb-systemd-invoke
6.01
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.92
KB
-rwxr-xr-x
debconf-show
1.78
KB
-rwxr-xr-x
debian-distro-info
22.95
KB
-rwxr-xr-x
delpart
14.38
KB
-rwxr-xr-x
delv
45.32
KB
-rwxr-xr-x
df
83.07
KB
-rwxr-xr-x
dfu-tool
110.3
KB
-rwxr-xr-x
dh_bash-completion
4.31
KB
-rwxr-xr-x
dh_numpy3
1.94
KB
-rwxr-xr-x
dh_perl_dbi
1.17
KB
-rwxr-xr-x
dh_perl_openssl
1.5
KB
-rwxr-xr-x
diff
130.55
KB
-rwxr-xr-x
diff3
54.52
KB
-rwxr-xr-x
dig
150.83
KB
-rwxr-xr-x
dir
134.97
KB
-rwxr-xr-x
dircolors
38.51
KB
-rwxr-xr-x
dirmngr
433.02
KB
-rwxr-xr-x
dirmngr-client
54.92
KB
-rwxr-xr-x
dirname
30.38
KB
-rwxr-xr-x
distro-info
22.89
KB
-rwxr-xr-x
dmesg
70.61
KB
-rwxr-xr-x
dnsdomainname
22.23
KB
-rwxr-xr-x
do-release-upgrade
10.35
KB
-rwxr-xr-x
domainname
22.23
KB
-rwxr-xr-x
dpkg
310.69
KB
-rwxr-xr-x
dpkg-architecture
13.51
KB
-rwxr-xr-x
dpkg-buildflags
7.39
KB
-rwxr-xr-x
dpkg-buildpackage
31.67
KB
-rwxr-xr-x
dpkg-checkbuilddeps
7.45
KB
-rwxr-xr-x
dpkg-deb
134.49
KB
-rwxr-xr-x
dpkg-distaddfile
2.72
KB
-rwxr-xr-x
dpkg-divert
118.49
KB
-rwxr-xr-x
dpkg-genbuildinfo
16.71
KB
-rwxr-xr-x
dpkg-genchanges
17.27
KB
-rwxr-xr-x
dpkg-gencontrol
14.24
KB
-rwxr-xr-x
dpkg-gensymbols
10.65
KB
-rwxr-xr-x
dpkg-maintscript-helper
20.71
KB
-rwxr-xr-x
dpkg-mergechangelogs
8.69
KB
-rwxr-xr-x
dpkg-name
6.63
KB
-rwxr-xr-x
dpkg-parsechangelog
4.83
KB
-rwxr-xr-x
dpkg-query
138.52
KB
-rwxr-xr-x
dpkg-realpath
4.09
KB
-rwxr-xr-x
dpkg-scanpackages
8.5
KB
-rwxr-xr-x
dpkg-scansources
8.96
KB
-rwxr-xr-x
dpkg-shlibdeps
30.96
KB
-rwxr-xr-x
dpkg-source
22.56
KB
-rwxr-xr-x
dpkg-split
98.51
KB
-rwxr-xr-x
dpkg-statoverride
46.26
KB
-rwxr-xr-x
dpkg-trigger
42.41
KB
-rwxr-xr-x
dpkg-vendor
3.19
KB
-rwxr-xr-x
dropdb
9.21
KB
-rwxr-xr-x
droplang
9.21
KB
-rwxr-xr-x
dropuser
9.21
KB
-rwxr-xr-x
du
146.5
KB
-rwxr-xr-x
dumpkeys
158.71
KB
-rwxr-xr-x
dumpmscat
14.3
KB
-rwxr-xr-x
dvipdf
1007
B
-rwxr-xr-x
dwp
1.82
MB
-rwxr-xr-x
eatmydata
2.74
KB
-rwxr-xr-x
ec2metadata
8.38
KB
-rwxr-xr-x
echo
34.3
KB
-rwxr-xr-x
ed
54.49
KB
-rwxr-xr-x
edit
18.06
KB
-rwxr-xr-x
editor
276.52
KB
-rwxr-xr-x
editres
72.69
KB
-rwxr-xr-x
egrep
28
B
-rwxr-xr-x
eject
42.23
KB
-rwxr-xr-x
elfedit
34.72
KB
-rwxr-xr-x
enc2xs
40.84
KB
-rwxr-xr-x
encguess
3.01
KB
-rwxr-xr-x
env
42.94
KB
-rwxr-xr-x
envsubst
34.38
KB
-rwxr-xr-x
eps2eps
639
B
-rwxr-xr-x
eqn
188.45
KB
-rwxr-xr-x
esparse
4.83
KB
-rwxr-xr-x
esvalidate
7.56
KB
-rwxr-xr-x
ex
3.61
MB
-rwxr-xr-x
exonpairs
123.58
KB
-rwxr-xr-x
expand
34.52
KB
-rwxr-xr-x
expiry
22.59
KB
-rwxr-sr-x
expr
106.41
KB
-rwxr-xr-x
f2py3
957
B
-rwxr-xr-x
f2py3.10
960
B
-rwxr-xr-x
factor
70.5
KB
-rwxr-xr-x
faillog
22.59
KB
-rwxr-xr-x
faked-sysv
30.39
KB
-rwxr-xr-x
faked-tcp
30.38
KB
-rwxr-xr-x
fakeroot
3.9
KB
-rwxr-xr-x
fakeroot-sysv
3.9
KB
-rwxr-xr-x
fakeroot-tcp
3.9
KB
-rwxr-xr-x
fallocate
22.38
KB
-rwxr-xr-x
false
26.3
KB
-rwxr-xr-x
fathom
155.39
KB
-rwxr-xr-x
fc-cache
22.23
KB
-rwxr-xr-x
fc-cat
18.23
KB
-rwxr-xr-x
fc-conflist
14.23
KB
-rwxr-xr-x
fc-list
14.23
KB
-rwxr-xr-x
fc-match
14.23
KB
-rwxr-xr-x
fc-pattern
14.23
KB
-rwxr-xr-x
fc-query
14.23
KB
-rwxr-xr-x
fc-scan
14.23
KB
-rwxr-xr-x
fc-validate
14.23
KB
-rwxr-xr-x
fcgistarter
14.3
KB
-rwxr-xr-x
fgconsole
14.23
KB
-rwxr-xr-x
fgrep
28
B
-rwxr-xr-x
filan
46.48
KB
-rwxr-xr-x
file
26.56
KB
-rwxr-xr-x
finalrd
2.06
KB
-rwxr-xr-x
fincore
22.42
KB
-rwxr-xr-x
find
275.48
KB
-rwxr-xr-x
findmnt
63.61
KB
-rwxr-xr-x
finger
30.63
KB
-rwxr-xr-x
flock
22.48
KB
-rwxr-xr-x
fmt
38.5
KB
-rwxr-xr-x
fold
34.5
KB
-rwxr-xr-x
forge
139.36
KB
-rwxr-xr-x
free
26.23
KB
-rwxr-xr-x
ftp
178.9
KB
-rwxr-xr-x
funzip
22.3
KB
-rwxr-xr-x
fuser
39.31
KB
-rwxr-xr-x
fusermount
34.38
KB
-rwsr-xr-x
fusermount3
34.38
KB
-rwsr-xr-x
fwupdagent
190.3
KB
-rwxr-xr-x
fwupdate
82.3
KB
-rwxr-xr-x
fwupdmgr
190.3
KB
-rwxr-xr-x
fwupdtool
394.92
KB
-rwxr-xr-x
g++
906.82
KB
-rwxr-xr-x
g++-11
906.82
KB
-rwxr-xr-x
galera_new_cluster
917
B
-rwxr-xr-x
galera_recovery
3.29
KB
-rwxr-xr-x
gapplication
22.38
KB
-rwxr-xr-x
gawk
688.46
KB
-rwxr-xr-x
gcc
906.82
KB
-rwxr-xr-x
gcc-11
906.82
KB
-rwxr-xr-x
gcc-ar
26.54
KB
-rwxr-xr-x
gcc-ar-11
26.54
KB
-rwxr-xr-x
gcc-nm
26.54
KB
-rwxr-xr-x
gcc-nm-11
26.54
KB
-rwxr-xr-x
gcc-ranlib
26.54
KB
-rwxr-xr-x
gcc-ranlib-11
26.54
KB
-rwxr-xr-x
gcov
400.01
KB
-rwxr-xr-x
gcov-11
400.01
KB
-rwxr-xr-x
gcov-dump
251.84
KB
-rwxr-xr-x
gcov-dump-11
251.84
KB
-rwxr-xr-x
gcov-tool
275.93
KB
-rwxr-xr-x
gcov-tool-11
275.93
KB
-rwxr-xr-x
gdbus
50.38
KB
-rwxr-xr-x
gdk-pixbuf-csource
14.33
KB
-rwxr-xr-x
gdk-pixbuf-pixdata
14.31
KB
-rwxr-xr-x
gdk-pixbuf-thumbnailer
18.39
KB
-rwxr-xr-x
gencat
26.37
KB
-rwxr-xr-x
geqn
188.45
KB
-rwxr-xr-x
getconf
34.29
KB
-rwxr-xr-x
getent
38.65
KB
-rwxr-xr-x
getfattr
22.76
KB
-rwxr-xr-x
getkeycodes
14.23
KB
-rwxr-xr-x
getopt
22.38
KB
-rwxr-xr-x
gettext
34.38
KB
-rwxr-xr-x
gettext.sh
5.07
KB
-rwxr-xr-x
ghostscript
14.15
KB
-rwxr-xr-x
ginstall-info
103.23
KB
-rwxr-xr-x
gio
90.4
KB
-rwxr-xr-x
gio-querymodules
14.3
KB
-rwxr-xr-x
git
3.54
MB
-rwxr-xr-x
git-receive-pack
3.54
MB
-rwxr-xr-x
git-shell
552.58
KB
-rwxr-xr-x
git-upload-archive
3.54
MB
-rwxr-xr-x
git-upload-pack
3.54
MB
-rwxr-xr-x
glib-compile-schemas
50.3
KB
-rwxr-xr-x
gmake
249.7
KB
-rwxr-xr-x
gold
3.04
MB
-rwxr-xr-x
gpasswd
70.38
KB
-rwsr-xr-x
gpg
1
MB
-rwxr-xr-x
gpg-agent
312.96
KB
-rwxr-xr-x
gpg-connect-agent
82.99
KB
-rwxr-xr-x
gpg-wks-server
115.05
KB
-rwxr-xr-x
gpg-zip
3.43
KB
-rwxr-xr-x
gpgcompose
496.48
KB
-rwxr-xr-x
gpgconf
126.73
KB
-rwxr-xr-x
gpgparsemail
34.38
KB
-rwxr-xr-x
gpgsm
418.9
KB
-rwxr-xr-x
gpgsplit
26.55
KB
-rwxr-xr-x
gpgtar
63.39
KB
-rwxr-xr-x
gpgv
271.04
KB
-rwxr-xr-x
gpic
200.04
KB
-rwxr-xr-x
gprof
111.79
KB
-rwxr-xr-x
gpu-manager
78.82
KB
-rwxr-xr-x
grep
178.45
KB
-rwxr-xr-x
gresource
22.3
KB
-rwxr-xr-x
groff
94.5
KB
-rwxr-xr-x
grog
2.71
KB
-rwxr-xr-x
grops
162.55
KB
-rwxr-xr-x
grotty
118.52
KB
-rwxr-xr-x
groups
34.5
KB
-rwxr-xr-x
growpart
26.22
KB
-rwxr-xr-x
grub-editenv
376.95
KB
-rwxr-xr-x
grub-file
816.45
KB
-rwxr-xr-x
grub-fstest
937.92
KB
-rwxr-xr-x
grub-glue-efi
247.86
KB
-rwxr-xr-x
grub-kbdcomp
1.64
KB
-rwxr-xr-x
grub-menulst2cfg
228.13
KB
-rwxr-xr-x
grub-mkfont
272.42
KB
-rwxr-xr-x
grub-mkimage
361.05
KB
-rwxr-xr-x
grub-mklayout
252.17
KB
-rwxr-xr-x
grub-mknetdir
417.66
KB
-rwxr-xr-x
grub-mkpasswd-pbkdf2
256.2
KB
-rwxr-xr-x
grub-mkrelpath
247.58
KB
-rwxr-xr-x
grub-mkrescue
998.47
KB
-rwxr-xr-x
grub-mkstandalone
493.95
KB
-rwxr-xr-x
grub-mount
760.84
KB
-rwxr-xr-x
grub-ntldr-img
38.24
KB
-rwxr-xr-x
grub-render-label
828.83
KB
-rwxr-xr-x
grub-script-check
275.7
KB
-rwxr-xr-x
grub-syslinux2cfg
781.34
KB
-rwxr-xr-x
gs
14.15
KB
-rwxr-xr-x
gsbj
350
B
-rwxr-xr-x
gsdj
352
B
-rwxr-xr-x
gsdj500
352
B
-rwxr-xr-x
gsettings
30.3
KB
-rwxr-xr-x
gslj
353
B
-rwxr-xr-x
gslp
350
B
-rwxr-xr-x
gsnd
277
B
-rwxr-xr-x
gtbl
126.48
KB
-rwxr-xr-x
gtk-builder-tool
34.73
KB
-rwxr-xr-x
gtk-encode-symbolic-svg
18.41
KB
-rwxr-xr-x
gtk-launch
18.46
KB
-rwxr-xr-x
gtk-query-settings
14.3
KB
-rwxr-xr-x
gtk-update-icon-cache
38.57
KB
-rwxr-xr-x
gunzip
2.29
KB
-rwxr-xr-x
gyp
932
B
-rwxr-xr-x
gzexe
6.3
KB
-rwxr-xr-x
gzip
91.23
KB
-rwxr-xr-x
h2ph
28.54
KB
-rwxr-xr-x
h2xs
59.51
KB
-rwxr-xr-x
hardlink
34.43
KB
-rwxr-xr-x
hd
50.39
KB
-rwxr-xr-x
head
42.5
KB
-rwxr-xr-x
helpztags
2.46
KB
-rwxr-xr-x
hexdump
50.39
KB
-rwxr-xr-x
hmm-assembler.pl
11.08
KB
-rwxr-xr-x
hmm-info
118.77
KB
-rwxr-xr-x
host
118.82
KB
-rwxr-xr-x
hostid
30.5
KB
-rwxr-xr-x
hostname
22.23
KB
-rwxr-xr-x
hostnamectl
30.38
KB
-rwxr-xr-x
htcacheclean
38.31
KB
-rwxr-xr-x
htdbm
26.3
KB
-rwxr-xr-x
htdigest
14.3
KB
-rwxr-xr-x
htop
277.19
KB
-rwxr-xr-x
htpasswd
26.3
KB
-rwxr-xr-x
hwe-support-status
10.58
KB
-rwxr-xr-x
i386
26.65
KB
-rwxr-xr-x
iceauth
42.42
KB
-rwxr-xr-x
iconv
66.41
KB
-rwxr-xr-x
id
38.5
KB
-rwxr-xr-x
info
301.74
KB
-rwxr-xr-x
infobrowser
301.74
KB
-rwxr-xr-x
infocmp
62.38
KB
-rwxr-xr-x
infotocap
86.41
KB
-rwxr-xr-x
innochecksum
3.57
MB
-rwxr-xr-x
innotop
445.44
KB
-rwxr-xr-x
install
142.52
KB
-rwxr-xr-x
install-info
103.23
KB
-rwxr-xr-x
instmodsh
4.27
KB
-rwxr-xr-x
ionice
18.38
KB
-rwxr-xr-x
iostat
54.44
KB
-rwxr-xr-x
ip
702.05
KB
-rwxr-xr-x
ipcmk
22.45
KB
-rwxr-xr-x
ipcrm
18.38
KB
-rwxr-xr-x
ipcs
38.38
KB
-rwxr-xr-x
iptables-xml
96.95
KB
-rwxr-xr-x
ischroot
14.2
KB
-rwxr-xr-x
iscsiadm
398.46
KB
-rwxr-xr-x
join
46.54
KB
-rwxr-xr-x
journalctl
78.39
KB
-rwxr-xr-x
js
26.08
KB
-rwxr-xr-x
js-yaml
2.67
KB
-rwxr-xr-x
json-patch-jsondiff
1004
B
-rwxr-xr-x
json_pp
4.88
KB
-rwxr-xr-x
json_xs
6.85
KB
-rwxr-xr-x
jsondiff
1004
B
-rwxr-xr-x
jsonpatch
3.77
KB
-rwxr-xr-x
jsonpointer
1.79
KB
-rwxr-xr-x
jsonschema
397
B
-rwxr-xr-x
k5srvutil
1.96
KB
-rwxr-xr-x
kadmin
82.44
KB
-rwxr-xr-x
kbd_mode
14.52
KB
-rwxr-xr-x
kbdinfo
18.23
KB
-rwxr-xr-x
kbxutil
62.83
KB
-rwxr-xr-x
kdestroy
14.3
KB
-rwxr-xr-x
keep-one-running
3.51
KB
-rwxr-xr-x
kernel-install
4.79
KB
-rwxr-xr-x
keyring
961
B
-rwxr-xr-x
kill
30.23
KB
-rwxr-xr-x
killall
31.34
KB
-rwxr-xr-x
kinit
30.3
KB
-rwxr-xr-x
klist
30.3
KB
-rwxr-xr-x
kmod
166.36
KB
-rwxr-xr-x
kmodsign
18.45
KB
-rwxr-xr-x
kpasswd
14.3
KB
-rwxr-xr-x
ksu
46.3
KB
-rwsr-xr-x
kswitch
14.3
KB
-rwxr-xr-x
ktutil
26.38
KB
-rwxr-xr-x
kvno
22.3
KB
-rwxr-xr-x
landscape-sysinfo
624
B
-rwxr-xr-x
last
34.38
KB
-rwxr-xr-x
lastb
34.38
KB
-rwxr-xr-x
lastlog
27.63
KB
-rwxr-xr-x
lcf
7.6
KB
-rwxr-xr-x
ld
1.66
MB
-rwxr-xr-x
ld.bfd
1.66
MB
-rwxr-xr-x
ld.gold
3.04
MB
-rwxr-xr-x
ldapadd
66.45
KB
-rwxr-xr-x
ldapcompare
62.45
KB
-rwxr-xr-x
ldapdelete
62.47
KB
-rwxr-xr-x
ldapexop
62.45
KB
-rwxr-xr-x
ldapmodify
66.45
KB
-rwxr-xr-x
ldapmodrdn
62.45
KB
-rwxr-xr-x
ldappasswd
62.45
KB
-rwxr-xr-x
ldapsearch
94.48
KB
-rwxr-xr-x
ldapurl
14.3
KB
-rwxr-xr-x
ldapwhoami
62.45
KB
-rwxr-xr-x
ldd
5.32
KB
-rwxr-xr-x
less
194.38
KB
-rwxr-xr-x
lessecho
14.31
KB
-rwxr-xr-x
lessfile
8.83
KB
-rwxr-xr-x
lesskey
23.7
KB
-rwxr-xr-x
lesspipe
8.83
KB
-rwxr-xr-x
letsencrypt
961
B
-rwxr-xr-x
lexgrog
99.75
KB
-rwxr-xr-x
libnetcfg
15.41
KB
-rwxr-xr-x
link
30.5
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
26.65
KB
-rwxr-xr-x
linux64
26.65
KB
-rwxr-xr-x
listres
14.73
KB
-rwxr-xr-x
ln
58.5
KB
-rwxr-xr-x
lnstat
22.66
KB
-rwxr-xr-x
loadkeys
198.76
KB
-rwxr-xr-x
loadunimap
30.32
KB
-rwxr-xr-x
locale
57.56
KB
-rwxr-xr-x
locale-check
14.15
KB
-rwxr-xr-x
localectl
26.37
KB
-rwxr-xr-x
localedef
326.96
KB
-rwxr-xr-x
locate
306.55
KB
-rwxr-sr-x
logger
34.97
KB
-rwxr-xr-x
login
51.73
KB
-rwxr-xr-x
loginctl
58.48
KB
-rwxr-xr-x
logname
30.5
KB
-rwxr-xr-x
logresolve
14.31
KB
-rwxr-xr-x
look
18.38
KB
-rwxr-xr-x
lowntfs-3g
114.98
KB
-rwxr-xr-x
ls
134.97
KB
-rwxr-xr-x
lsattr
14.31
KB
-rwxr-xr-x
lsb_release
3.55
KB
-rwxr-xr-x
lsblk
122.38
KB
-rwxr-xr-x
lscpu
98.38
KB
-rwxr-xr-x
lshw
901.2
KB
-rwxr-xr-x
lsinitramfs
706
B
-rwxr-xr-x
lsipc
50.38
KB
-rwxr-xr-x
lslocks
30.7
KB
-rwxr-xr-x
lslogins
50.38
KB
-rwxr-xr-x
lsmem
34.38
KB
-rwxr-xr-x
lsmod
166.36
KB
-rwxr-xr-x
lsns
38.38
KB
-rwxr-xr-x
lsof
163.62
KB
-rwxr-xr-x
lspci
92.08
KB
-rwxr-xr-x
lspgpot
1.06
KB
-rwxr-xr-x
lsusb
246.52
KB
-rwxr-xr-x
lto-dump-11
23.73
MB
-rwxr-xr-x
luit
48.44
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.82
KB
-rwxr-xr-x
lzcat
82.52
KB
-rwxr-xr-x
lzcmp
6.86
KB
-rwxr-xr-x
lzdiff
6.86
KB
-rwxr-xr-x
lzegrep
5.87
KB
-rwxr-xr-x
lzfgrep
5.87
KB
-rwxr-xr-x
lzgrep
5.87
KB
-rwxr-xr-x
lzless
1.76
KB
-rwxr-xr-x
lzma
82.52
KB
-rwxr-xr-x
lzmainfo
14.23
KB
-rwxr-xr-x
lzmore
2.11
KB
-rwxr-xr-x
m4
154.37
KB
-rwxr-xr-x
mailmail3
964
B
-rwxr-xr-x
make
249.7
KB
-rwxr-xr-x
make-first-existing-target
4.79
KB
-rwxr-xr-x
man
117.68
KB
-rwxr-xr-x
man-recode
35.68
KB
-rwxr-xr-x
mandb
139.94
KB
-rwxr-xr-x
manifest
1.9
KB
-rwxr-xr-x
manpath
30.78
KB
-rwxr-xr-x
mapscrn
30.32
KB
-rwxr-xr-x
mariadb
4.09
MB
-rwxr-xr-x
mariadb-access
109.31
KB
-rwxr-xr-x
mariadb-admin
3.86
MB
-rwxr-xr-x
mariadb-analyze
3.86
MB
-rwxr-xr-x
mariadb-binlog
4.11
MB
-rwxr-xr-x
mariadb-check
3.86
MB
-rwxr-xr-x
mariadb-conv
3.57
MB
-rwxr-xr-x
mariadb-convert-table-format
4.12
KB
-rwxr-xr-x
mariadb-dump
3.94
MB
-rwxr-xr-x
mariadb-dumpslow
8.05
KB
-rwxr-xr-x
mariadb-find-rows
3.21
KB
-rwxr-xr-x
mariadb-fix-extensions
1.22
KB
-rwxr-xr-x
mariadb-hotcopy
34.15
KB
-rwxr-xr-x
mariadb-import
3.85
MB
-rwxr-xr-x
mariadb-install-db
22.46
KB
-rwxr-xr-x
mariadb-optimize
3.86
MB
-rwxr-xr-x
mariadb-plugin
3.55
MB
-rwxr-xr-x
mariadb-repair
3.86
MB
-rwxr-xr-x
mariadb-report
48.07
KB
-rwxr-xr-x
mariadb-secure-installation
13.49
KB
-rwxr-xr-x
mariadb-service-convert
2.45
KB
-rwxr-xr-x
mariadb-setpermission
17.56
KB
-rwxr-xr-x
mariadb-show
3.84
MB
-rwxr-xr-x
mariadb-slap
3.86
MB
-rwxr-xr-x
mariadb-tzinfo-to-sql
3.55
MB
-rwxr-xr-x
mariadb-upgrade
3.98
MB
-rwxr-xr-x
mariadb-waitpid
3.53
MB
-rwxr-xr-x
mariadbcheck
3.86
MB
-rwxr-xr-x
mariadbd-multi
26.7
KB
-rwxr-xr-x
mariadbd-safe
30.42
KB
-rwxr-xr-x
mariadbd-safe-helper
3.51
MB
-rwxr-xr-x
markdown_py
969
B
-rwxr-xr-x
mawk
154.79
KB
-rwxr-xr-x
mcookie
26.45
KB
-rwxr-xr-x
md5sum
42.41
KB
-rwxr-xr-x
md5sum.textutils
42.41
KB
-rwxr-xr-x
mdig
50.4
KB
-rwxr-xr-x
mdsearch
86.3
KB
-rwxr-xr-x
memusage
7.32
KB
-rwxr-xr-x
memusagestat
22.37
KB
-rwxr-xr-x
mesg
14.38
KB
-rwxr-xr-x
migrate-pubring-from-classic-g...
2.99
KB
-rwxr-xr-x
mimeopen
9.34
KB
-rwxr-xr-x
mimetype
12.76
KB
-rwxr-xr-x
mk_modmap
15.78
KB
-rwxr-xr-x
mkdir
66.5
KB
-rwxr-xr-x
mkfifo
38.5
KB
-rwxr-xr-x
mknod
42.5
KB
-rwxr-xr-x
mksquashfs
254.68
KB
-rwxr-xr-x
mktemp
38.5
KB
-rwxr-xr-x
mmcli
273.84
KB
-rwxr-xr-x
more
42.38
KB
-rwxr-xr-x
mount
46.38
KB
-rwsr-xr-x
mountpoint
18.38
KB
-rwxr-xr-x
mpstat
50.45
KB
-rwxr-xr-x
msql2mysql
1.41
KB
-rwxr-xr-x
mt
66.73
KB
-rwxr-xr-x
mt-gnu
66.73
KB
-rwxr-xr-x
mtr
72.25
KB
-rwxr-xr-x
mtr-packet
38.3
KB
-rwxr-xr-x
mtrace
6.43
KB
-rwxr-xr-x
mv
134.52
KB
-rwxr-xr-x
mvxattr
14.3
KB
-rwxr-xr-x
my_print_defaults
3.54
MB
-rwxr-xr-x
myisam_ftdump
3.86
MB
-rwxr-xr-x
myisamchk
3.98
MB
-rwxr-xr-x
myisamlog
3.85
MB
-rwxr-xr-x
myisampack
3.88
MB
-rwxr-xr-x
mysql
4.09
MB
-rwxr-xr-x
mysql_convert_table_format
4.12
KB
-rwxr-xr-x
mysql_find_rows
3.21
KB
-rwxr-xr-x
mysql_fix_extensions
1.22
KB
-rwxr-xr-x
mysql_install_db
22.46
KB
-rwxr-xr-x
mysql_plugin
3.55
MB
-rwxr-xr-x
mysql_secure_installation
13.49
KB
-rwxr-xr-x
mysql_setpermission
17.56
KB
-rwxr-xr-x
mysql_tzinfo_to_sql
3.55
MB
-rwxr-xr-x
mysql_upgrade
3.98
MB
-rwxr-xr-x
mysql_waitpid
3.53
MB
-rwxr-xr-x
mysqlaccess
109.31
KB
-rwxr-xr-x
mysqladmin
3.86
MB
-rwxr-xr-x
mysqlanalyze
3.86
MB
-rwxr-xr-x
mysqlbinlog
4.11
MB
-rwxr-xr-x
mysqlcheck
3.86
MB
-rwxr-xr-x
mysqld_multi
26.7
KB
-rwxr-xr-x
mysqld_safe
30.42
KB
-rwxr-xr-x
mysqld_safe_helper
3.51
MB
-rwxr-xr-x
mysqldump
3.94
MB
-rwxr-xr-x
mysqldumpslow
8.05
KB
-rwxr-xr-x
mysqlhotcopy
34.15
KB
-rwxr-xr-x
mysqlimport
3.85
MB
-rwxr-xr-x
mysqloptimize
3.86
MB
-rwxr-xr-x
mysqlrepair
3.86
MB
-rwxr-xr-x
mysqlreport
48.07
KB
-rwxr-xr-x
mysqlshow
3.84
MB
-rwxr-xr-x
mysqlslap
3.86
MB
-rwxr-xr-x
mytop
71.95
KB
-rwxr-xr-x
namei
22.38
KB
-rwxr-xr-x
nano
276.52
KB
-rwxr-xr-x
nawk
688.46
KB
-rwxr-xr-x
nc
38.63
KB
-rwxr-xr-x
nc.openbsd
38.63
KB
-rwxr-xr-x
neqn
913
B
-rwxr-xr-x
net
979.24
KB
-rwxr-xr-x
netcat
38.63
KB
-rwxr-xr-x
netstat
154.59
KB
-rwxr-xr-x
networkctl
102.38
KB
-rwxr-xr-x
networkd-dispatcher
19.71
KB
-rwxr-xr-x
newgrp
39.55
KB
-rwsr-xr-x
ngettext
34.38
KB
-rwxr-xr-x
nice
34.5
KB
-rwxr-xr-x
nisdomainname
22.23
KB
-rwxr-xr-x
nl
98.56
KB
-rwxr-xr-x
nm
43.63
KB
-rwxr-xr-x
nmblookup
150.48
KB
-rwxr-xr-x
node
26.08
KB
-rwxr-xr-x
node-coveralls
322
B
-rwxr-xr-x
node-gyp
3.37
KB
-rwxr-xr-x
nodejs
26.08
KB
-rwxr-xr-x
nohup
34.41
KB
-rwxr-xr-x
notify-send
18.23
KB
-rwxr-xr-x
npm
54
B
-rwxr-xr-x
npm-arborist
2.15
KB
-rwxr-xr-x
npm-packlist
662
B
-rwxr-xr-x
nproc
34.5
KB
-rwxr-xr-x
npx
2.77
KB
-rwxr-xr-x
nroff
3.22
KB
-rwxr-xr-x
nsenter
26.6
KB
-rwxr-xr-x
nslookup
118.82
KB
-rwxr-xr-x
nstat
30.38
KB
-rwxr-xr-x
nsupdate
74.55
KB
-rwxr-xr-x
ntfs-3g
159.01
KB
-rwxr-xr-x
ntfs-3g.probe
14.38
KB
-rwxr-xr-x
ntfscat
26.38
KB
-rwxr-xr-x
ntfscluster
38.38
KB
-rwxr-xr-x
ntfscmp
30.38
KB
-rwxr-xr-x
ntfsdecrypt
42.38
KB
-rwxr-xr-x
ntfsfallocate
26.38
KB
-rwxr-xr-x
ntfsfix
34.38
KB
-rwxr-xr-x
ntfsinfo
54.38
KB
-rwxr-xr-x
ntfsls
27.45
KB
-rwxr-xr-x
ntfsmove
30.38
KB
-rwxr-xr-x
ntfsrecover
106.38
KB
-rwxr-xr-x
ntfssecaudit
78.86
KB
-rwxr-xr-x
ntfstruncate
26.3
KB
-rwxr-xr-x
ntfsusermap
18.3
KB
-rwxr-xr-x
ntfswipe
42.91
KB
-rwxr-xr-x
ntlm_auth
86.38
KB
-rwxr-xr-x
ntpdc
150.27
KB
-rwxr-xr-x
ntpq
188.3
KB
-rwxr-xr-x
ntpsweep
7.79
KB
-rwxr-xr-x
ntptrace
3.48
KB
-rwxr-xr-x
numfmt
54.53
KB
-rwxr-xr-x
nvidia-detector
270
B
-rwxr-xr-x
oLschema2ldif
26.3
KB
-rwxr-xr-x
objcopy
162.54
KB
-rwxr-xr-x
objdump
365.13
KB
-rwxr-xr-x
od
66.5
KB
-rwxr-xr-x
oddjob_request
38.3
KB
-rwxr-xr-x
oem-getlogs
8.59
KB
-rwxr-xr-x
on_ac_power
2.18
KB
-rwxr-xr-x
open
25.46
KB
-rwxr-xr-x
opener
161
B
-rwxr-xr-x
openssl
977.8
KB
-rwxr-xr-x
openvt
22.59
KB
-rwxr-xr-x
os-prober
4.44
KB
-rwxr-xr-x
pacote
3.75
KB
-rwxr-xr-x
pager
194.38
KB
-rwxr-xr-x
paperconf
14.15
KB
-rwxr-xr-x
partx
58.38
KB
-rwxr-xr-x
passwd
58.57
KB
-rwsr-xr-x
paste
34.41
KB
-rwxr-xr-x
pastebinit
16.12
KB
-rwxr-xr-x
patch
186.52
KB
-rwxr-xr-x
patch-hmm.pl
580
B
-rwxr-xr-x
pathchk
34.5
KB
-rwxr-xr-x
pbget
2.51
KB
-rwxr-xr-x
pbput
2.51
KB
-rwxr-xr-x
pbputs
2.51
KB
-rwxr-xr-x
pdb3
61.74
KB
-rwxr-xr-x
pdb3.10
61.74
KB
-rwxr-xr-x
pdbedit
50.3
KB
-rwxr-xr-x
pdf2dsc
698
B
-rwxr-xr-x
pdf2ps
909
B
-rwxr-xr-x
peekfd
14.3
KB
-rwxr-xr-x
perl
3.63
MB
-rwxr-xr-x
perl5.34-x86_64-linux-gnu
14.3
KB
-rwxr-xr-x
perl5.34.0
3.63
MB
-rwxr-xr-x
perlbug
44.12
KB
-rwxr-xr-x
perldoc
125
B
-rwxr-xr-x
perlivp
10.61
KB
-rwxr-xr-x
perlthanks
44.12
KB
-rwxr-xr-x
perror
3.73
MB
-rwxr-xr-x
pf2afm
498
B
-rwxr-xr-x
pfbtopfa
516
B
-rwxr-xr-x
pg_archivecleanup
9.21
KB
-rwxr-xr-x
pg_backupcluster
17.02
KB
-rwxr-xr-x
pg_basebackup
9.21
KB
-rwxr-xr-x
pg_buildext
14.71
KB
-rwxr-xr-x
pg_config
1.2
KB
-rwxr-xr-x
pg_config.libpq-dev
6.53
KB
-rwxr-xr-x
pg_conftool
6.12
KB
-rwxr-xr-x
pg_createcluster
34.53
KB
-rwxr-xr-x
pg_ctlcluster
22.76
KB
-rwxr-xr-x
pg_dropcluster
8.14
KB
-rwxr-xr-x
pg_dump
9.21
KB
-rwxr-xr-x
pg_dumpall
9.21
KB
-rwxr-xr-x
pg_isready
9.21
KB
-rwxr-xr-x
pg_lsclusters
5.21
KB
-rwxr-xr-x
pg_receivewal
9.21
KB
-rwxr-xr-x
pg_receivexlog
9.21
KB
-rwxr-xr-x
pg_recvlogical
9.21
KB
-rwxr-xr-x
pg_renamecluster
5.78
KB
-rwxr-xr-x
pg_restore
9.21
KB
-rwxr-xr-x
pg_restorecluster
13.46
KB
-rwxr-xr-x
pg_upgradecluster
33.58
KB
-rwxr-xr-x
pg_virtualenv
9.05
KB
-rwxr-xr-x
pgbench
9.21
KB
-rwxr-xr-x
pgrep
30.24
KB
-rwxr-xr-x
phar
14.89
KB
-rwxr-xr-x
phar.phar
14.89
KB
-rwxr-xr-x
phar.phar8.1
14.89
KB
-rwxr-xr-x
phar8.1
14.89
KB
-rwxr-xr-x
phar8.1.phar
14.89
KB
-rwxr-xr-x
php
5.28
MB
-rwxr-xr-x
php8.1
5.28
MB
-rwxr-xr-x
pic
200.04
KB
-rwxr-xr-x
pico
276.52
KB
-rwxr-xr-x
piconv
8.16
KB
-rwxr-xr-x
pidof
30.38
KB
-rwxr-xr-x
pidstat
50.45
KB
-rwxr-xr-x
pidwait
30.24
KB
-rwxr-xr-x
pinentry
58.65
KB
-rwxr-xr-x
pinentry-curses
58.65
KB
-rwxr-xr-x
ping
74.88
KB
-rwxr-xr-x
ping4
74.88
KB
-rwxr-xr-x
ping6
74.88
KB
-rwxr-xr-x
pinky
34.41
KB
-rwxr-xr-x
pip
221
B
-rwxr-xr-x
pip3
221
B
-rwxr-xr-x
pip3.10
221
B
-rwxr-xr-x
pkaction
18.3
KB
-rwxr-xr-x
pkcheck
22.3
KB
-rwxr-xr-x
pkcon
58.3
KB
-rwxr-xr-x
pkexec
30.15
KB
-rwsr-xr-x
pkill
30.24
KB
-rwxr-xr-x
pkmon
22.3
KB
-rwxr-xr-x
pkttyagent
18.3
KB
-rwxr-xr-x
pl2pm
4.43
KB
-rwxr-xr-x
pldd
22.37
KB
-rwxr-xr-x
plocate
306.55
KB
-rwxr-sr-x
plymouth
46.3
KB
-rwxr-xr-x
pmap
34.24
KB
-rwxr-xr-x
pod2html
4.04
KB
-rwxr-xr-x
pod2man
14.68
KB
-rwxr-xr-x
pod2text
10.55
KB
-rwxr-xr-x
pod2usage
4.01
KB
-rwxr-xr-x
podchecker
3.57
KB
-rwxr-xr-x
policygentool
9.49
KB
-rwxr-xr-x
pollinate
8.54
KB
-rwxr-xr-x
pphs
404
B
-rwxr-xr-x
pr
66.57
KB
-rwxr-xr-x
preconv
54.48
KB
-rwxr-xr-x
print
18.06
KB
-rwxr-xr-x
printafm
395
B
-rwxr-xr-x
printenv
30.38
KB
-rwxr-xr-x
printf
50.42
KB
-rwxr-xr-x
prlimit
26.89
KB
-rwxr-xr-x
pro
1018
B
-rwxr-xr-x
procan
30.4
KB
-rwxr-xr-x
profiles
54.3
KB
-rwxr-xr-x
prove
13.34
KB
-rwxr-xr-x
prtstat
22.38
KB
-rwxr-xr-x
ps
138.45
KB
-rwxr-xr-x
ps2ascii
631
B
-rwxr-xr-x
ps2epsi
1.23
KB
-rwxr-xr-x
ps2pdf
272
B
-rwxr-xr-x
ps2pdf12
215
B
-rwxr-xr-x
ps2pdf13
215
B
-rwxr-xr-x
ps2pdf14
215
B
-rwxr-xr-x
ps2pdfwr
1.05
KB
-rwxr-xr-x
ps2ps
647
B
-rwxr-xr-x
ps2ps2
669
B
-rwxr-xr-x
ps2txt
631
B
-rwxr-xr-x
psfaddtable
26.23
KB
-rwxr-xr-x
psfgettable
26.23
KB
-rwxr-xr-x
psfstriptable
26.23
KB
-rwxr-xr-x
psfxtable
26.23
KB
-rwxr-xr-x
pslog
14.3
KB
-rwxr-xr-x
psql
9.21
KB
-rwxr-xr-x
pstree
35.32
KB
-rwxr-xr-x
pstree.x11
35.32
KB
-rwxr-xr-x
ptar
3.48
KB
-rwxr-xr-x
ptardiff
2.58
KB
-rwxr-xr-x
ptargrep
4.29
KB
-rwxr-xr-x
ptx
126.55
KB
-rwxr-xr-x
purge-old-kernels
1.12
KB
-rwxr-xr-x
pwd
34.5
KB
-rwxr-xr-x
pwdx
14.23
KB
-rwxr-xr-x
py3clean
7.63
KB
-rwxr-xr-x
py3compile
12.88
KB
-rwxr-xr-x
py3versions
11.63
KB
-rwxr-xr-x
pybabel
953
B
-rwxr-xr-x
pybabel-python3
953
B
-rwxr-xr-x
pydoc3
79
B
-rwxr-xr-x
pydoc3.10
79
B
-rwxr-xr-x
pygettext3
23.67
KB
-rwxr-xr-x
pygettext3.10
23.67
KB
-rwxr-xr-x
pygmentize
970
B
-rwxr-xr-x
pyhtmlizer3
968
B
-rwxr-xr-x
pyserial-miniterm
975
B
-rwxr-xr-x
pyserial-ports
969
B
-rwxr-xr-x
python
5.66
MB
-rwxr-xr-x
python3
5.66
MB
-rwxr-xr-x
python3-config
3.05
KB
-rwxr-xr-x
python3.10
5.66
MB
-rwxr-xr-x
python3.10-config
3.05
KB
-rwxr-xr-x
pzstd
702.47
KB
-rwxr-xr-x
qrcode-terminal
1.79
KB
-rwxr-xr-x
quirks-handler
2.4
KB
-rwxr-xr-x
ranlib
54.48
KB
-rwxr-xr-x
rbash
1.33
MB
-rwxr-xr-x
rcp
130.59
KB
-rwxr-xr-x
rdma
98.52
KB
-rwxr-xr-x
readelf
758.44
KB
-rwxr-xr-x
readlink
38.41
KB
-rwxr-xr-x
realpath
38.41
KB
-rwxr-xr-x
red
89
B
-rwxr-xr-x
reindexdb
9.21
KB
-rwxr-xr-x
renice
14.38
KB
-rwxr-xr-x
replace
3.51
MB
-rwxr-xr-x
rescan-scsi-bus.sh
37.85
KB
-rwxr-xr-x
reset
26.31
KB
-rwxr-xr-x
resizecons
26.32
KB
-rwxr-xr-x
resizepart
22.38
KB
-rwxr-xr-x
resolve_stack_dump
3.54
MB
-rwxr-xr-x
resolvectl
130.52
KB
-rwxr-xr-x
resolveip
3.54
MB
-rwxr-xr-x
rev
14.38
KB
-rwxr-xr-x
rgrep
30
B
-rwxr-xr-x
rimraf
1.83
KB
-rwxr-xr-x
rlogin
827.04
KB
-rwxr-xr-x
rm
58.5
KB
-rwxr-xr-x
rmdir
42.41
KB
-rwxr-xr-x
rnano
276.52
KB
-rwxr-xr-x
rotatelogs
26.38
KB
-rwxr-xr-x
routef
208
B
-rwxr-xr-x
routel
1.62
KB
-rwxr-xr-x
rpcclient
1.32
MB
-rwxr-xr-x
rpcgen
94.59
KB
-rwxr-xr-x
rrsync
12.34
KB
-rwxr-xr-x
rsh
827.04
KB
-rwxr-xr-x
rsync
506.13
KB
-rwxr-xr-x
rsync-ssl
5.02
KB
-rwxr-xr-x
rtstat
22.66
KB
-rwxr-xr-x
run-mailcap
18.06
KB
-rwxr-xr-x
run-one
3.51
KB
-rwxr-xr-x
run-one-constantly
3.51
KB
-rwxr-xr-x
run-one-until-failure
3.51
KB
-rwxr-xr-x
run-one-until-success
3.51
KB
-rwxr-xr-x
run-parts
26.54
KB
-rwxr-xr-x
run-this-one
3.51
KB
-rwxr-xr-x
runcon
34.5
KB
-rwxr-xr-x
rview
3.61
MB
-rwxr-xr-x
rvim
3.61
MB
-rwxr-xr-x
sadf
390.24
KB
-rwxr-xr-x
samba-regedit
115.22
KB
-rwxr-xr-x
samba-tool
1.52
KB
-rwxr-xr-x
sandbox
17.6
KB
-rwxr-xr-x
sar
133.45
KB
-rwxr-xr-x
sar.sysstat
133.45
KB
-rwxr-xr-x
savelog
10.24
KB
-rwxr-xr-x
sbattach
26.54
KB
-rwxr-xr-x
sbkeysync
34.74
KB
-rwxr-xr-x
sbsiglist
14.6
KB
-rwxr-xr-x
sbsign
34.7
KB
-rwxr-xr-x
sbvarsign
22.73
KB
-rwxr-xr-x
sbverify
34.61
KB
-rwxr-xr-x
scandeps
6.45
KB
-rwxr-xr-x
scp
130.59
KB
-rwxr-xr-x
screen
466.24
KB
-rwxr-xr-x
screendump
14.15
KB
-rwxr-xr-x
script
50.38
KB
-rwxr-xr-x
scriptlive
42.38
KB
-rwxr-xr-x
scriptreplay
34.38
KB
-rwxr-xr-x
scsi_logging_level
8.38
KB
-rwxr-xr-x
scsi_mandat
3.52
KB
-rwxr-xr-x
scsi_readcap
1.3
KB
-rwxr-xr-x
scsi_ready
1.09
KB
-rwxr-xr-x
scsi_satl
3.74
KB
-rwxr-xr-x
scsi_start
1.25
KB
-rwxr-xr-x
scsi_stop
1.44
KB
-rwxr-xr-x
scsi_temperature
936
B
-rwxr-xr-x
sdiff
46.39
KB
-rwxr-xr-x
sechecker
2.26
KB
-rwxr-xr-x
secon
27.31
KB
-rwxr-xr-x
sed
110.57
KB
-rwxr-xr-x
sediff
77.89
KB
-rwxr-xr-x
sedta
5.56
KB
-rwxr-xr-x
see
18.06
KB
-rwxr-xr-x
seinfo
18.58
KB
-rwxr-xr-x
seinfoflow
5.72
KB
-rwxr-xr-x
select-editor
2.39
KB
-rwxr-xr-x
semodule_expand
14.3
KB
-rwxr-xr-x
semodule_link
14.3
KB
-rwxr-xr-x
semodule_package
14.57
KB
-rwxr-xr-x
semodule_unpackage
14.3
KB
-rwxr-xr-x
semver
4.26
KB
-rwxr-xr-x
sensible-browser
1.26
KB
-rwxr-xr-x
sensible-editor
1.24
KB
-rwxr-xr-x
sensible-pager
565
B
-rwxr-xr-x
sepolgen
28.73
KB
-rwxr-xr-x
sepolgen-ifgen
4.17
KB
-rwxr-xr-x
sepolgen-ifgen-attr-helper
222.31
KB
-rwxr-xr-x
sepolicy
28.73
KB
-rwxr-xr-x
seq
46.5
KB
-rwxr-xr-x
sesearch
11.71
KB
-rwxr-xr-x
session-migration
22.15
KB
-rwxr-xr-x
sessreg
14.31
KB
-rwxr-xr-x
sestatus
22.3
KB
-rwxr-xr-x
setarch
26.65
KB
-rwxr-xr-x
setfattr
18.59
KB
-rwxr-xr-x
setfont
50.32
KB
-rwxr-xr-x
setkeycodes
14.23
KB
-rwxr-xr-x
setleds
18.21
KB
-rwxr-xr-x
setlogcons
14.23
KB
-rwxr-xr-x
setmetamode
14.26
KB
-rwxr-xr-x
setpci
30.38
KB
-rwxr-xr-x
setpriv
38.38
KB
-rwxr-xr-x
setsid
14.38
KB
-rwxr-xr-x
setterm
34.38
KB
-rwxr-xr-x
setupcon
38.31
KB
-rwxr-xr-x
sftp
142.66
KB
-rwxr-xr-x
sg
39.55
KB
-rwsr-xr-x
sg_bg_ctl
14.51
KB
-rwxr-xr-x
sg_compare_and_write
26.91
KB
-rwxr-xr-x
sg_copy_results
23.3
KB
-rwxr-xr-x
sg_dd
54.33
KB
-rwxr-xr-x
sg_decode_sense
14.76
KB
-rwxr-xr-x
sg_emc_trespass
14.3
KB
-rwxr-xr-x
sg_format
39.35
KB
-rwxr-xr-x
sg_get_config
35.39
KB
-rwxr-xr-x
sg_get_elem_status
26.79
KB
-rwxr-xr-x
sg_get_lba_status
22.95
KB
-rwxr-xr-x
sg_ident
14.6
KB
-rwxr-xr-x
sg_inq
119.61
KB
-rwxr-xr-x
sg_logs
150.93
KB
-rwxr-xr-x
sg_luns
22.79
KB
-rwxr-xr-x
sg_map
18.3
KB
-rwxr-xr-x
sg_map26
26.7
KB
-rwxr-xr-x
sg_modes
46.08
KB
-rwxr-xr-x
sg_opcodes
35.01
KB
-rwxr-xr-x
sg_persist
36.08
KB
-rwxr-xr-x
sg_prevent
14.51
KB
-rwxr-xr-x
sg_raw
26.91
KB
-rwxr-xr-x
sg_rbuf
22.73
KB
-rwxr-xr-x
sg_rdac
14.3
KB
-rwxr-xr-x
sg_read
26.31
KB
-rwxr-xr-x
sg_read_attr
36.65
KB
-rwxr-xr-x
sg_read_block_limits
14.54
KB
-rwxr-xr-x
sg_read_buffer
27.56
KB
-rwxr-xr-x
sg_read_long
14.7
KB
-rwxr-xr-x
sg_readcap
22.79
KB
-rwxr-xr-x
sg_reassign
14.66
KB
-rwxr-xr-x
sg_referrals
14.66
KB
-rwxr-xr-x
sg_rep_pip
14.57
KB
-rwxr-xr-x
sg_rep_zones
26.8
KB
-rwxr-xr-x
sg_requests
22.76
KB
-rwxr-xr-x
sg_reset
14.66
KB
-rwxr-xr-x
sg_reset_wp
14.6
KB
-rwxr-xr-x
sg_rmsn
14.51
KB
-rwxr-xr-x
sg_rtpg
14.6
KB
-rwxr-xr-x
sg_safte
22.7
KB
-rwxr-xr-x
sg_sanitize
27.01
KB
-rwxr-xr-x
sg_sat_identify
18.73
KB
-rwxr-xr-x
sg_sat_phy_event
19.01
KB
-rwxr-xr-x
sg_sat_read_gplog
18.73
KB
-rwxr-xr-x
sg_sat_set_features
18.7
KB
-rwxr-xr-x
sg_scan
18.3
KB
-rwxr-xr-x
sg_seek
18.88
KB
-rwxr-xr-x
sg_senddiag
27.2
KB
-rwxr-xr-x
sg_ses
119.97
KB
-rwxr-xr-x
sg_ses_microcode
27.36
KB
-rwxr-xr-x
sg_start
18.85
KB
-rwxr-xr-x
sg_stpg
22.73
KB
-rwxr-xr-x
sg_stream_ctl
18.7
KB
-rwxr-xr-x
sg_sync
14.66
KB
-rwxr-xr-x
sg_test_rwbuf
18.6
KB
-rwxr-xr-x
sg_timestamp
18.83
KB
-rwxr-xr-x
sg_turs
26.7
KB
-rwxr-xr-x
sg_unmap
22.76
KB
-rwxr-xr-x
sg_verify
18.91
KB
-rwxr-xr-x
sg_vpd
114.42
KB
-rwxr-xr-x
sg_wr_mode
22.73
KB
-rwxr-xr-x
sg_write_buffer
27.23
KB
-rwxr-xr-x
sg_write_long
14.76
KB
-rwxr-xr-x
sg_write_same
26.95
KB
-rwxr-xr-x
sg_write_verify
26.79
KB
-rwxr-xr-x
sg_write_x
55.6
KB
-rwxr-xr-x
sg_xcopy
42.32
KB
-rwxr-xr-x
sg_zone
14.86
KB
-rwxr-xr-x
sginfo
72.01
KB
-rwxr-xr-x
sgm_dd
38.31
KB
-rwxr-xr-x
sgp_dd
46.31
KB
-rwxr-xr-x
sh
122.74
KB
-rwxr-xr-x
sha1sum
42.41
KB
-rwxr-xr-x
sha224sum
50.41
KB
-rwxr-xr-x
sha256sum
50.41
KB
-rwxr-xr-x
sha384sum
54.41
KB
-rwxr-xr-x
sha512sum
54.41
KB
-rwxr-xr-x
sharesec
38.38
KB
-rwxr-xr-x
shasum
9.75
KB
-rwxr-xr-x
showconsolefont
18.23
KB
-rwxr-xr-x
showkey
18.23
KB
-rwxr-xr-x
showrgb
14.31
KB
-rwxr-xr-x
shred
50.5
KB
-rwxr-xr-x
shuf
46.5
KB
-rwxr-xr-x
size
30.45
KB
-rwxr-xr-x
skill
30.23
KB
-rwxr-xr-x
slabtop
22.23
KB
-rwxr-xr-x
sleep
34.5
KB
-rwxr-xr-x
slogin
827.04
KB
-rwxr-xr-x
smbcacls
54.38
KB
-rwxr-xr-x
smbclient
158.49
KB
-rwxr-xr-x
smbcontrol
66.58
KB
-rwxr-xr-x
smbcquotas
34.3
KB
-rwxr-xr-x
smbget
30.39
KB
-rwxr-xr-x
smbpasswd
38.3
KB
-rwxr-xr-x
smbspool
26.3
KB
-rwxr-xr-x
smbstatus
42.3
KB
-rwxr-xr-x
smbtar
4.81
KB
-rwxr-xr-x
smbtree
22.3
KB
-rwxr-xr-x
snap
16.3
MB
-rwxr-xr-x
snap-hmm
56
B
-rwxr-xr-x
snapctl
6.26
MB
-rwxr-xr-x
snapfuse
38.23
KB
-rwxr-xr-x
snice
30.23
KB
-rwxr-xr-x
sntp
109.59
KB
-rwxr-xr-x
socat
383.62
KB
-rwxr-xr-x
soelim
30.48
KB
-rwxr-xr-x
sort
98.8
KB
-rwxr-xr-x
sos
596
B
-rwxr-xr-x
sos-collector
1.04
KB
-rwxr-xr-x
sosreport
1.03
KB
-rwxr-xr-x
sotruss
4.21
KB
-rwxr-xr-x
splain
18.96
KB
-rwxr-xr-x
split
50.96
KB
-rwxr-xr-x
splitfont
14.15
KB
-rwxr-xr-x
sprof
34.37
KB
-rwxr-xr-x
sqfscat
131.9
KB
-rwxr-xr-x
sqfstar
254.68
KB
-rwxr-xr-x
ss
125.07
KB
-rwxr-xr-x
ssh
827.04
KB
-rwxr-xr-x
ssh-add
166.42
KB
-rwxr-xr-x
ssh-agent
286.43
KB
-rwxr-sr-x
ssh-argv0
1.42
KB
-rwxr-xr-x
ssh-copy-id
12.38
KB
-rwxr-xr-x
ssh-import-id
985
B
-rwxr-xr-x
ssh-import-id-gh
785
B
-rwxr-xr-x
ssh-import-id-lp
785
B
-rwxr-xr-x
ssh-keygen
446.44
KB
-rwxr-xr-x
ssh-keyscan
190.44
KB
-rwxr-xr-x
sss_ssh_authorizedkeys
30.3
KB
-rwxr-xr-x
sss_ssh_knownhostsproxy
34.3
KB
-rwxr-xr-x
stat
78.51
KB
-rwxr-xr-x
static-sh
2.09
MB
-rwxr-xr-x
stdbuf
42.5
KB
-rwxr-xr-x
strace
1.88
MB
-rwxr-xr-x
strace-log-merge
1.78
KB
-rwxr-xr-x
streamzip
7.75
KB
-rwxr-xr-x
strings
30.61
KB
-rwxr-xr-x
strip
162.57
KB
-rwxr-xr-x
stty
74.5
KB
-rwxr-xr-x
su
54.38
KB
-rwsr-xr-x
sudo
226.97
KB
-rwsr-xr-x
sudoedit
226.97
KB
-rwsr-xr-x
sudoreplay
87.64
KB
-rwxr-xr-x
sum
34.41
KB
-rwxr-xr-x
sync
34.41
KB
-rwxr-xr-x
systemctl
1.06
MB
-rwxr-xr-x
systemd
1.76
MB
-rwxr-xr-x
systemd-analyze
1.73
MB
-rwxr-xr-x
systemd-ask-password
18.48
KB
-rwxr-xr-x
systemd-cat
18.38
KB
-rwxr-xr-x
systemd-cgls
22.48
KB
-rwxr-xr-x
systemd-cgtop
38.39
KB
-rwxr-xr-x
systemd-cryptenroll
50.53
KB
-rwxr-xr-x
systemd-delta
26.37
KB
-rwxr-xr-x
systemd-detect-virt
18.37
KB
-rwxr-xr-x
systemd-escape
22.37
KB
-rwxr-xr-x
systemd-hwdb
118.66
KB
-rwxr-xr-x
systemd-id128
26.37
KB
-rwxr-xr-x
systemd-inhibit
22.39
KB
-rwxr-xr-x
systemd-machine-id-setup
18.48
KB
-rwxr-xr-x
systemd-mount
50.59
KB
-rwxr-xr-x
systemd-notify
22.38
KB
-rwxr-xr-x
systemd-path
18.37
KB
-rwxr-xr-x
systemd-run
62.57
KB
-rwxr-xr-x
systemd-socket-activate
26.37
KB
-rwxr-xr-x
systemd-stdio-bridge
22.38
KB
-rwxr-xr-x
systemd-sysext
46.49
KB
-rwxr-xr-x
systemd-sysusers
62.68
KB
-rwxr-xr-x
systemd-tmpfiles
98.57
KB
-rwxr-xr-x
systemd-tty-ask-password-agent
34.37
KB
-rwxr-xr-x
systemd-umount
50.59
KB
-rwxr-xr-x
tabs
18.3
KB
-rwxr-xr-x
tac
102.41
KB
-rwxr-xr-x
tail
66.52
KB
-rwxr-xr-x
tap
20.06
KB
-rwxr-xr-x
tap-mocha-reporter
2.52
KB
-rwxr-xr-x
tap-parser
4.05
KB
-rwxr-xr-x
tapestat
26.44
KB
-rwxr-xr-x
tar
505.81
KB
-rwxr-xr-x
taskset
22.38
KB
-rwxr-xr-x
tbl
126.48
KB
-rwxr-xr-x
tclsh
14.15
KB
-rwxr-xr-x
tclsh8.6
14.15
KB
-rwxr-xr-x
tcpdump
1.27
MB
-rwxr-xr-x
tdbbackup
14.3
KB
-rwxr-xr-x
tdbbackup.tdbtools
14.3
KB
-rwxr-xr-x
tdbdump
14.3
KB
-rwxr-xr-x
tdbrestore
14.3
KB
-rwxr-xr-x
tdbtool
26.8
KB
-rwxr-xr-x
tee
34.5
KB
-rwxr-xr-x
telnet
107.56
KB
-rwxr-xr-x
telnet.netkit
107.56
KB
-rwxr-xr-x
tempfile
14.02
KB
-rwxr-xr-x
test
42.42
KB
-rwxr-xr-x
testparm
42.3
KB
-rwxr-xr-x
tic
86.41
KB
-rwxr-xr-x
tilix
3.17
MB
-rwxr-xr-x
tilix.wrapper
1.64
KB
-rwxr-xr-x
time
26.52
KB
-rwxr-xr-x
timedatectl
46.37
KB
-rwxr-xr-x
timeout
38.94
KB
-rwxr-xr-x
tkconch3
962
B
-rwxr-xr-x
tload
18.24
KB
-rwxr-xr-x
tmux
948.55
KB
-rwxr-xr-x
tnftp
178.9
KB
-rwxr-xr-x
toe
22.3
KB
-rwxr-xr-x
top
130.06
KB
-rwxr-xr-x
touch
90.5
KB
-rwxr-xr-x
tput
26.34
KB
-rwxr-xr-x
tr
46.5
KB
-rwxr-xr-x
tracepath
18.15
KB
-rwxr-xr-x
trial3
958
B
-rwxr-xr-x
troff
718.61
KB
-rwxr-xr-x
true
26.3
KB
-rwxr-xr-x
truncate
34.5
KB
-rwxr-xr-x
tset
26.31
KB
-rwxr-xr-x
tsort
46.5
KB
-rwxr-xr-x
tty
30.5
KB
-rwxr-xr-x
twist3
958
B
-rwxr-xr-x
twistd3
960
B
-rwxr-xr-x
tzselect
15.02
KB
-rwxr-xr-x
ua
1018
B
-rwxr-xr-x
ubuntu-advantage
1018
B
-rwxr-xr-x
ubuntu-bug
2.51
KB
-rwxr-xr-x
ubuntu-core-launcher
147.2
KB
-rwsr-xr-x
ubuntu-distro-info
22.89
KB
-rwxr-xr-x
ubuntu-drivers
16.36
KB
-rwxr-xr-x
ubuntu-security-status
22.25
KB
-rwxr-xr-x
ucf
40.9
KB
-rwxr-xr-x
ucfq
18.91
KB
-rwxr-xr-x
ucfr
10.47
KB
-rwxr-xr-x
uclampset
26.38
KB
-rwxr-xr-x
udevadm
1.08
MB
-rwxr-xr-x
udisksctl
58.38
KB
-rwxr-xr-x
ul
22.38
KB
-rwxr-xr-x
umount
34.38
KB
-rwsr-xr-x
uname
34.5
KB
-rwxr-xr-x
unattended-upgrade
97.21
KB
-rwxr-xr-x
unattended-upgrades
97.21
KB
-rwxr-xr-x
uncompress
2.29
KB
-rwxr-xr-x
unexpand
34.52
KB
-rwxr-xr-x
unicode_start
2.7
KB
-rwxr-xr-x
unicode_stop
530
B
-rwxr-xr-x
uniq
42.5
KB
-rwxr-xr-x
unlink
30.5
KB
-rwxr-xr-x
unlzma
82.52
KB
-rwxr-xr-x
unmkinitramfs
3.69
KB
-rwxr-xr-x
unshare
30.6
KB
-rwxr-xr-x
unsquashfs
131.9
KB
-rwxr-xr-x
unxz
82.52
KB
-rwxr-xr-x
unzip
170.42
KB
-rwxr-xr-x
unzipsfx
78.42
KB
-rwxr-xr-x
unzstd
854.59
KB
-rwxr-xr-x
update-alternatives
58.24
KB
-rwxr-xr-x
update-leap
11.73
KB
-rwxr-xr-x
update-mime-database
58.23
KB
-rwxr-xr-x
updatedb
98.54
KB
-rwxr-xr-x
upower
22.3
KB
-rwxr-xr-x
uptime
14.23
KB
-rwxr-xr-x
usb-devices
4.33
KB
-rwxr-xr-x
usbhid-dump
30.38
KB
-rwxr-xr-x
usbreset
14.3
KB
-rwxr-xr-x
users
34.5
KB
-rwxr-xr-x
utmpdump
22.38
KB
-rwxr-xr-x
uuidgen
18.38
KB
-rwxr-xr-x
uuidparse
22.38
KB
-rwxr-xr-x
vacuumdb
9.21
KB
-rwxr-xr-x
vacuumlo
9.21
KB
-rwxr-xr-x
vcs-run
6.75
KB
-rwxr-xr-x
vdir
134.97
KB
-rwxr-xr-x
vi
3.61
MB
-rwxr-xr-x
view
3.61
MB
-rwxr-xr-x
viewres
31.23
KB
-rwxr-xr-x
vigpg
2.58
KB
-rwxr-xr-x
vim
3.61
MB
-rwxr-xr-x
vim.basic
3.61
MB
-rwxr-xr-x
vim.tiny
1.45
MB
-rwxr-xr-x
vimdiff
3.61
MB
-rwxr-xr-x
vimtutor
2.1
KB
-rwxr-xr-x
vm-support
9.83
KB
-rwxr-xr-x
vmhgfs-fuse
46.73
KB
-rwxr-xr-x
vmstat
38.24
KB
-rwxr-xr-x
vmtoolsd
74.56
KB
-rwxr-xr-x
vmware-alias-import
42.52
KB
-rwxr-xr-x
vmware-checkvm
14.38
KB
-rwxr-xr-x
vmware-hgfsclient
14.38
KB
-rwxr-xr-x
vmware-namespace-cmd
22.3
KB
-rwxr-xr-x
vmware-rpctool
18.3
KB
-rwxr-xr-x
vmware-toolbox-cmd
58.59
KB
-rwxr-xr-x
vmware-vgauth-cmd
18.3
KB
-rwxr-xr-x
vmware-vmblock-fuse
18.78
KB
-rwxr-xr-x
vmware-xferlogs
32.33
KB
-rwxr-xr-x
vsftpdwho
54
B
-rwxr-xr-x
w
22.23
KB
-rwxr-xr-x
wall
22.38
KB
-rwxr-xr-x
watch
26.6
KB
-rwxr-xr-x
watchgnupg
18.3
KB
-rwxr-xr-x
wbinfo
54.3
KB
-rwxr-xr-x
wc
42.41
KB
-rwxr-xr-x
wdctl
30.4
KB
-rwxr-xr-x
wget
459.02
KB
-rwxr-xr-x
whatis
47.28
KB
-rwxr-xr-x
whereis
30.84
KB
-rwxr-xr-x
which
946
B
-rwxr-xr-x
which.debianutils
946
B
-rwxr-xr-x
whiptail
30.16
KB
-rwxr-xr-x
who
50.52
KB
-rwxr-xr-x
whoami
30.5
KB
-rwxr-xr-x
wifi-status
2.06
KB
-rwxr-xr-x
write
22.38
KB
-rwxr-xr-x
write.ul
22.38
KB
-rwxr-xr-x
wscat
10.26
KB
-rwxr-xr-x
wsrep_sst_backup
2.39
KB
-rwxr-xr-x
wsrep_sst_common
66.86
KB
-rwxr-xr-x
wsrep_sst_mariabackup
49.47
KB
-rwxr-xr-x
wsrep_sst_mysqldump
8.11
KB
-rwxr-xr-x
wsrep_sst_rsync
29.72
KB
-rwxr-xr-x
wsrep_sst_rsync_wan
29.72
KB
-rwxr-xr-x
x-terminal-emulator
1.64
KB
-rwxr-xr-x
x86_64
26.65
KB
-rwxr-xr-x
x86_64-linux-gnu-addr2line
26.7
KB
-rwxr-xr-x
x86_64-linux-gnu-ar
54.48
KB
-rwxr-xr-x
x86_64-linux-gnu-as
456.4
KB
-rwxr-xr-x
x86_64-linux-gnu-c++filt
22.27
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp
906.82
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp-11
906.82
KB
-rwxr-xr-x
x86_64-linux-gnu-dwp
1.82
MB
-rwxr-xr-x
x86_64-linux-gnu-elfedit
34.72
KB
-rwxr-xr-x
x86_64-linux-gnu-g++
906.82
KB
-rwxr-xr-x
x86_64-linux-gnu-g++-11
906.82
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc
906.82
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-11
906.82
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar-11
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm-11
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib-11
26.54
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov
400.01
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-11
400.01
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump
251.84
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump-11
251.84
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool
275.93
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool-11
275.93
KB
-rwxr-xr-x
x86_64-linux-gnu-gold
3.04
MB
-rwxr-xr-x
x86_64-linux-gnu-gprof
111.79
KB
-rwxr-xr-x
x86_64-linux-gnu-ld
1.66
MB
-rwxr-xr-x
x86_64-linux-gnu-ld.bfd
1.66
MB
-rwxr-xr-x
x86_64-linux-gnu-ld.gold
3.04
MB
-rwxr-xr-x
x86_64-linux-gnu-lto-dump-11
23.73
MB
-rwxr-xr-x
x86_64-linux-gnu-nm
43.63
KB
-rwxr-xr-x
x86_64-linux-gnu-objcopy
162.54
KB
-rwxr-xr-x
x86_64-linux-gnu-objdump
365.13
KB
-rwxr-xr-x
x86_64-linux-gnu-python3-confi...
3.05
KB
-rwxr-xr-x
x86_64-linux-gnu-python3.10-co...
3.05
KB
-rwxr-xr-x
x86_64-linux-gnu-ranlib
54.48
KB
-rwxr-xr-x
x86_64-linux-gnu-readelf
758.44
KB
-rwxr-xr-x
x86_64-linux-gnu-size
30.45
KB
-rwxr-xr-x
x86_64-linux-gnu-strings
30.61
KB
-rwxr-xr-x
x86_64-linux-gnu-strip
162.57
KB
-rwxr-xr-x
xargs
62.41
KB
-rwxr-xr-x
xauth
54.96
KB
-rwxr-xr-x
xcmsdb
35.05
KB
-rwxr-xr-x
xdg-desktop-icon
20.16
KB
-rwxr-xr-x
xdg-desktop-menu
42.27
KB
-rwxr-xr-x
xdg-email
26.3
KB
-rwxr-xr-x
xdg-icon-resource
29.33
KB
-rwxr-xr-x
xdg-mime
41.14
KB
-rwxr-xr-x
xdg-open
25.46
KB
-rwxr-xr-x
xdg-screensaver
37.11
KB
-rwxr-xr-x
xdg-settings
37.52
KB
-rwxr-xr-x
xdg-user-dir
234
B
-rwxr-xr-x
xdg-user-dirs-update
26.23
KB
-rwxr-xr-x
xdpyinfo
39.05
KB
-rwxr-xr-x
xdriinfo
14.3
KB
-rwxr-xr-x
xev
34.63
KB
-rwxr-xr-x
xfd
40.01
KB
-rwxr-xr-x
xfontsel
43.85
KB
-rwxr-xr-x
xgamma
14.31
KB
-rwxr-xr-x
xhost
18.31
KB
-rwxr-xr-x
xkeystone
16.58
KB
-rwxr-xr-x
xkill
14.3
KB
-rwxr-xr-x
xlsatoms
14.3
KB
-rwxr-xr-x
xlsclients
18.31
KB
-rwxr-xr-x
xlsfonts
26.4
KB
-rwxr-xr-x
xmessage
23.12
KB
-rwxr-xr-x
xmodmap
42.68
KB
-rwxr-xr-x
xprop
48.61
KB
-rwxr-xr-x
xrandr
62.41
KB
-rwxr-xr-x
xrdb
34.4
KB
-rwxr-xr-x
xrefresh
14.38
KB
-rwxr-xr-x
xset
34.31
KB
-rwxr-xr-x
xsetmode
14.31
KB
-rwxr-xr-x
xsetpointer
14.31
KB
-rwxr-xr-x
xsetroot
18.31
KB
-rwxr-xr-x
xstdcmap
14.89
KB
-rwxr-xr-x
xsubpp
5.05
KB
-rwxr-xr-x
xvidtune
43.76
KB
-rwxr-xr-x
xvinfo
18.3
KB
-rwxr-xr-x
xwininfo
50.38
KB
-rwxr-xr-x
xxd
18.28
KB
-rwxr-xr-x
xz
82.52
KB
-rwxr-xr-x
xzcat
82.52
KB
-rwxr-xr-x
xzcmp
6.86
KB
-rwxr-xr-x
xzdiff
6.86
KB
-rwxr-xr-x
xzegrep
5.87
KB
-rwxr-xr-x
xzfgrep
5.87
KB
-rwxr-xr-x
xzgrep
5.87
KB
-rwxr-xr-x
xzless
1.76
KB
-rwxr-xr-x
xzmore
2.11
KB
-rwxr-xr-x
yes
30.38
KB
-rwxr-xr-x
ypdomainname
22.23
KB
-rwxr-xr-x
zcat
1.94
KB
-rwxr-xr-x
zcmp
1.64
KB
-rwxr-xr-x
zdiff
5.76
KB
-rwxr-xr-x
zdump
26.21
KB
-rwxr-xr-x
zegrep
29
B
-rwxr-xr-x
zff2gff3.pl
684
B
-rwxr-xr-x
zfgrep
29
B
-rwxr-xr-x
zforce
2.03
KB
-rwxr-xr-x
zgrep
7.91
KB
-rwxr-xr-x
zipdetails
58.66
KB
-rwxr-xr-x
zipgrep
2.89
KB
-rwxr-xr-x
zipinfo
170.42
KB
-rwxr-xr-x
zless
2.15
KB
-rwxr-xr-x
zmore
1.8
KB
-rwxr-xr-x
znew
4.47
KB
-rwxr-xr-x
zoe-loop
130.77
KB
-rwxr-xr-x
zstd
854.59
KB
-rwxr-xr-x
zstdcat
854.59
KB
-rwxr-xr-x
zstdgrep
3.78
KB
-rwxr-xr-x
zstdless
30
B
-rwxr-xr-x
zstdmt
854.59
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : sediff
#!/usr/bin/python3 # Copyright 2015-2016, Tresys Technology, LLC # # This file is part of SETools. # # SETools 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. # # SETools 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 SETools. If not, see <http://www.gnu.org/licenses/>. # import setools import argparse import sys import logging import signal from itertools import chain from contextlib import suppress from typing import List signal.signal(signal.SIGPIPE, signal.SIG_DFL) parser = argparse.ArgumentParser( description="SELinux policy semantic difference tool.", epilog="If no differences are selected, all differences will be printed.") parser.add_argument("POLICY1", help="Path to the first SELinux policy to diff.", nargs=1) parser.add_argument("POLICY2", help="Path to the second SELinux policy to diff.", nargs=1) parser.add_argument("--version", action="version", version=setools.__version__) parser.add_argument("--stats", action="store_true", help="Display only statistics.") parser.add_argument("-v", "--verbose", action="store_true", help="Print extra informational messages") parser.add_argument("--debug", action="store_true", dest="debug", help="Enable debugging.") comp = parser.add_argument_group("component differences") comp.add_argument("--common", action="store_true", help="Print common differences") comp.add_argument("-c", "--class", action="store_true", help="Print class differences", dest="class_") comp.add_argument("-t", "--type", action="store_true", help="Print type differences", dest="type_") comp.add_argument("-a", "--attribute", action="store_true", help="Print type attribute differences") comp.add_argument("-r", "--role", action="store_true", help="Print role differences") comp.add_argument("-u", "--user", action="store_true", help="Print user differences") comp.add_argument("-b", "--bool", action="store_true", help="Print Boolean differences", dest="bool_") comp.add_argument("--sensitivity", action="store_true", help="Print MLS sensitivity differences") comp.add_argument("--category", action="store_true", help="Print MLS category differences") comp.add_argument("--level", action="store_true", help="Print MLS level definition differences") terule = parser.add_argument_group("type enforcement rule differences") terule.add_argument("-A", action="store_true", help="Print allow and allowxperm rule differences") terule.add_argument("--allow", action="store_true", help="Print allow rule differences") terule.add_argument("--neverallow", action="store_true", help="Print neverallow rule differences") terule.add_argument("--auditallow", action="store_true", help="Print auditallow rule differences") terule.add_argument("--dontaudit", action="store_true", help="Print dontaudit rule differences") terule.add_argument("--allowxperm", action="store_true", help="Print allowxperm rule differences") terule.add_argument("--neverallowxperm", action="store_true", help="Print neverallowxperm rule differences") terule.add_argument("--auditallowxperm", action="store_true", help="Print auditallowxperm rule differences") terule.add_argument("--dontauditxperm", action="store_true", help="Print dontauditxperm rule differences") terule.add_argument("-T", "--type_trans", action="store_true", help="Print type_transition rule differences") terule.add_argument("--type_change", action="store_true", help="Print type_change rule differences") terule.add_argument("--type_member", action="store_true", help="Print type_member rule differences") rbacrule = parser.add_argument_group("RBAC rule differences") rbacrule.add_argument("--role_allow", action="store_true", help="Print role allow rule differences") rbacrule.add_argument("--role_trans", action="store_true", help="Print role_transition rule differences") mlsrule = parser.add_argument_group("MLS rule differences") mlsrule.add_argument("--range_trans", action="store_true", help="Print range_transition rule differences") constrain = parser.add_argument_group("Constraint differences") constrain.add_argument("--constrain", action="store_true", help="Print constrain differences") constrain.add_argument("--mlsconstrain", action="store_true", help="Print mlsconstrain differences") constrain.add_argument("--validatetrans", action="store_true", help="Print validatetrans differences") constrain.add_argument("--mlsvalidatetrans", action="store_true", help="Print mlsvalidatetrans differences") labeling = parser.add_argument_group("labeling statement differences") labeling.add_argument("--ibendportcon", action="store_true", help="Print ibendportcon differences") labeling.add_argument("--ibpkeycon", action="store_true", help="Print ibkeycon differences") labeling.add_argument("--initialsid", action="store_true", help="Print initial SID differences") labeling.add_argument("--fs_use", action="store_true", help="Print fs_use_* differences") labeling.add_argument("--genfscon", action="store_true", help="Print genfscon differences") labeling.add_argument("--netifcon", action="store_true", help="Print netifcon differences") labeling.add_argument("--nodecon", action="store_true", help="Print nodecon differences") labeling.add_argument("--portcon", action="store_true", help="Print portcon differences") other = parser.add_argument_group("other differences") other.add_argument("--default", action="store_true", help="Print default_* differences") other.add_argument("--property", action="store_true", help="Print policy property differences (handle_unknown, version, MLS)") other.add_argument("--polcap", action="store_true", help="Print policy capability differences") other.add_argument("--typebounds", action="store_true", help="Print typebounds differences") args = parser.parse_args() if args.A: args.allow = True args.allowxperm = True all_differences = not any((args.class_, args.common, args.type_, args.attribute, args.role, args.user, args.bool_, args.sensitivity, args.category, args.level, args.allow, args.neverallow, args.auditallow, args.dontaudit, args.type_trans, args.type_change, args.type_member, args.role_allow, args.role_trans, args.range_trans, args.initialsid, args.genfscon, args.netifcon, args.nodecon, args.portcon, args.fs_use, args.polcap, args.property, args.default, args.constrain, args.mlsconstrain, args.validatetrans, args.mlsvalidatetrans, args.typebounds, args.allowxperm, args.neverallowxperm, args.auditallowxperm, args.dontauditxperm, args.ibendportcon, args.ibpkeycon)) if args.debug: logging.basicConfig(level=logging.DEBUG, format='%(asctime)s|%(levelname)s|%(name)s|%(message)s') elif args.verbose: logging.basicConfig(level=logging.INFO, format='%(message)s') else: logging.basicConfig(level=logging.WARNING, format='%(message)s') try: p1 = setools.SELinuxPolicy(args.POLICY1[0]) p2 = setools.SELinuxPolicy(args.POLICY2[0]) diff = setools.PolicyDifference(p1, p2) perms: List[str] if all_differences or args.property: if diff.modified_properties or args.property: print("Policy Properties ({0} Modified)".format(len(diff.modified_properties))) if not args.stats: for name, added, removed in sorted(diff.modified_properties, key=lambda x: x.property): print(" * {0} +{1} -{2}".format(name, added, removed)) print() del diff.modified_properties if all_differences or args.common: if diff.added_commons or diff.removed_commons or diff.modified_commons or args.common: print("Commons ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_commons), len(diff.removed_commons), len(diff.modified_commons))) if diff.added_commons and not args.stats: print(" Added Commons: {0}".format(len(diff.added_commons))) for c in sorted(diff.added_commons): print(" + {0}".format(c)) if diff.removed_commons and not args.stats: print(" Removed Commons: {0}".format(len(diff.removed_commons))) for c in sorted(diff.removed_commons): print(" - {0}".format(c)) if diff.modified_commons and not args.stats: print(" Modified Commons: {0}".format(len(diff.modified_commons))) for name, mod in sorted(diff.modified_commons.items()): change = [] if mod.added_perms: change.append("{0} Added permissions".format(len(mod.added_perms))) if mod.removed_perms: change.append("{0} Removed permissions".format(len(mod.removed_perms))) print(" * {0} ({1})".format(name, ", ".join(change))) for p in sorted(mod.added_perms): print(" + {0}".format(p)) for p in sorted(mod.removed_perms): print(" - {0}".format(p)) print() del diff.added_commons del diff.removed_commons del diff.modified_commons if all_differences or args.class_: if diff.added_classes or diff.removed_classes or diff.modified_classes or args.class_: print("Classes ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_classes), len(diff.removed_classes), len(diff.modified_classes))) if diff.added_classes and not args.stats: print(" Added Classes: {0}".format(len(diff.added_classes))) for c in sorted(diff.added_classes): print(" + {0}".format(c)) if diff.removed_classes and not args.stats: print(" Removed Classes: {0}".format(len(diff.removed_classes))) for c in sorted(diff.removed_classes): print(" - {0}".format(c)) if diff.modified_classes and not args.stats: print(" Modified Classes: {0}".format(len(diff.modified_classes))) for name, mod in sorted(diff.modified_classes.items()): change = [] if mod.added_perms: change.append("{0} Added permissions".format(len(mod.added_perms))) if mod.removed_perms: change.append("{0} Removed permissions".format(len(mod.removed_perms))) print(" * {0} ({1})".format(name, ", ".join(change))) for p in sorted(mod.added_perms): print(" + {0}".format(p)) for p in sorted(mod.removed_perms): print(" - {0}".format(p)) print() del diff.added_classes del diff.removed_classes del diff.modified_classes if all_differences or args.bool_: if diff.added_booleans or diff.removed_booleans or \ diff.modified_booleans or args.bool_: print("Booleans ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_booleans), len(diff.removed_booleans), len(diff.modified_booleans))) if diff.added_booleans and not args.stats: print(" Added Booleans: {0}".format(len(diff.added_booleans))) for a in sorted(diff.added_booleans): print(" + {0}".format(a)) if diff.removed_booleans and not args.stats: print(" Removed Booleans: {0}".format(len(diff.removed_booleans))) for a in sorted(diff.removed_booleans): print(" - {0}".format(a)) if diff.modified_booleans and not args.stats: print(" Modified Booleans: {0}".format(len(diff.modified_booleans))) for name, mod in sorted(diff.modified_booleans.items()): print(" * {0} (Modified default state)".format(name)) print(" + {0}".format(mod.added_state)) print(" - {0}".format(mod.removed_state)) print() del diff.added_booleans del diff.removed_booleans del diff.modified_booleans if all_differences or args.role: if diff.added_roles or diff.removed_roles or diff.modified_roles or args.role: print("Roles ({0} Added, {1} Removed, {2} Modified)".format(len(diff.added_roles), len(diff.removed_roles), len(diff.modified_roles))) if diff.added_roles and not args.stats: print(" Added Roles: {0}".format(len(diff.added_roles))) for r in sorted(diff.added_roles): print(" + {0}".format(r)) if diff.removed_roles and not args.stats: print(" Removed Roles: {0}".format(len(diff.removed_roles))) for r in sorted(diff.removed_roles): print(" - {0}".format(r)) if diff.modified_roles and not args.stats: print(" Modified Roles: {0}".format(len(diff.modified_roles))) for name, mod in sorted(diff.modified_roles.items()): change = [] if mod.added_types: change.append("{0} Added types".format(len(mod.added_types))) if mod.removed_types: change.append("{0} Removed types".format(len(mod.removed_types))) print(" * {0} ({1})".format(name, ", ".join(change))) for t in sorted(mod.added_types): print(" + {0}".format(t)) for t in sorted(mod.removed_types): print(" - {0}".format(t)) print() del diff.added_roles del diff.removed_roles del diff.modified_roles if all_differences or args.type_: if diff.added_types or diff.removed_types or diff.modified_types or args.type_: print("Types ({0} Added, {1} Removed, {2} Modified)".format(len(diff.added_types), len(diff.removed_types), len(diff.modified_types))) if diff.added_types and not args.stats: print(" Added Types: {0}".format(len(diff.added_types))) for r in sorted(diff.added_types): print(" + {0}".format(r)) if diff.removed_types and not args.stats: print(" Removed Types: {0}".format(len(diff.removed_types))) for r in sorted(diff.removed_types): print(" - {0}".format(r)) if diff.modified_types and not args.stats: print(" Modified Types: {0}".format(len(diff.modified_types))) for name, mod in sorted(diff.modified_types.items()): change = [] if mod.added_attributes: change.append("{0} Added attributes".format(len(mod.added_attributes))) if mod.removed_attributes: change.append("{0} Removed attributes".format(len(mod.removed_attributes))) if mod.added_aliases: change.append("{0} Added aliases".format(len(mod.added_aliases))) if mod.removed_aliases: change.append("{0} Removed aliases".format(len(mod.removed_aliases))) if mod.modified_permissive: if mod.permissive: change.append("Removed permissive") else: change.append("Added permissive") print(" * {0} ({1})".format(name, ", ".join(change))) if mod.added_attributes or mod.removed_attributes: print(" Attributes:") for t in sorted(mod.added_attributes): print(" + {0}".format(t)) for t in sorted(mod.removed_attributes): print(" - {0}".format(t)) if mod.added_aliases or mod.removed_aliases: print(" Aliases:") for t in sorted(mod.added_aliases): print(" + {0}".format(t)) for t in sorted(mod.removed_aliases): print(" - {0}".format(t)) print() del diff.added_types del diff.removed_types del diff.modified_types if all_differences or args.attribute: if diff.added_type_attributes or diff.removed_type_attributes or \ diff.modified_type_attributes or args.attribute: print("Type Attributes ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_type_attributes), len(diff.removed_type_attributes), len(diff.modified_type_attributes))) if diff.added_type_attributes and not args.stats: print(" Added Type Attributes: {0}".format(len(diff.added_type_attributes))) for a in sorted(diff.added_type_attributes): print(" + {0}".format(a)) if diff.removed_type_attributes and not args.stats: print(" Removed Type Attributes: {0}".format(len(diff.removed_type_attributes))) for a in sorted(diff.removed_type_attributes): print(" - {0}".format(a)) if diff.modified_type_attributes and not args.stats: print(" Modified Type Attributes: {0}".format(len(diff.modified_type_attributes))) for name, mod in sorted(diff.modified_type_attributes.items()): change = [] if mod.added_types: change.append("{0} Added types".format(len(mod.added_types))) if mod.removed_types: change.append("{0} Removed types".format(len(mod.removed_types))) print(" * {0} ({1})".format(name, ", ".join(change))) for t in sorted(mod.added_types): print(" + {0}".format(t)) for t in sorted(mod.removed_types): print(" - {0}".format(t)) print() del diff.added_type_attributes del diff.removed_type_attributes del diff.modified_type_attributes if all_differences or args.user: if diff.added_users or diff.removed_users or diff.modified_users or args.user: print("Users ({0} Added, {1} Removed, {2} Modified)".format(len(diff.added_users), len(diff.removed_users), len(diff.modified_users))) if diff.added_users and not args.stats: print(" Added Users: {0}".format(len(diff.added_users))) for u in sorted(diff.added_users): print(" + {0}".format(u)) if diff.removed_users and not args.stats: print(" Removed Users: {0}".format(len(diff.removed_users))) for u in sorted(diff.removed_users): print(" - {0}".format(u)) if diff.modified_users and not args.stats: print(" Modified Users: {0}".format(len(diff.modified_users))) for name, mod in sorted(diff.modified_users.items()): change = [] if mod.added_roles: change.append("{0} Added roles".format(len(mod.added_roles))) if mod.removed_roles: change.append("{0} Removed roles".format(len(mod.removed_roles))) if mod.removed_level: change.append("Modified default level") if mod.removed_range: change.append("Modified range") print(" * {0} ({1})".format(name, ", ".join(change))) if mod.added_roles or mod.removed_roles: print(" Roles:") for t in sorted(mod.added_roles): print(" + {0}".format(t)) for t in sorted(mod.removed_roles): print(" - {0}".format(t)) if mod.removed_level: print(" Default level:") print(" + {0}".format(mod.added_level)) print(" - {0}".format(mod.removed_level)) if mod.removed_range: print(" Range:") print(" + {0}".format(mod.added_range)) print(" - {0}".format(mod.removed_range)) print() del diff.added_users del diff.removed_users del diff.modified_users if all_differences or args.category: if diff.added_categories or diff.removed_categories or diff.modified_categories \ or args.category: print("Categories ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_categories), len(diff.removed_categories), len(diff.modified_categories))) if diff.added_categories and not args.stats: print(" Added Categories: {0}".format(len(diff.added_categories))) for c in sorted(diff.added_categories): print(" + {0}".format(c)) if diff.removed_categories and not args.stats: print(" Removed Categories: {0}".format(len(diff.removed_categories))) for c in sorted(diff.removed_categories): print(" - {0}".format(c)) if diff.modified_categories and not args.stats: print(" Modified Categories: {0}".format(len(diff.modified_categories))) for name, mod in sorted(diff.modified_categories.items()): change = [] if mod.added_aliases: change.append("{0} Added Aliases".format(len(mod.added_aliases))) if mod.removed_aliases: change.append("{0} Removed Aliases".format(len(mod.removed_aliases))) print(" * {0} ({1})".format(name, ", ".join(change))) print(" Aliases:") for a in sorted(mod.added_aliases): print(" + {0}".format(a)) for a in sorted(mod.removed_aliases): print(" - {0}".format(a)) print() del diff.added_categories del diff.removed_categories del diff.modified_categories if all_differences or args.sensitivity: if diff.added_sensitivities or diff.removed_sensitivities or diff.modified_sensitivities \ or args.sensitivity: print("Sensitivities ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_sensitivities), len(diff.removed_sensitivities), len(diff.modified_sensitivities))) if diff.added_sensitivities and not args.stats: print(" Added Sensitivites: {0}".format(len(diff.added_sensitivities))) for s in sorted(diff.added_sensitivities): print(" + {0}".format(s)) if diff.removed_sensitivities and not args.stats: print(" Removed Sensitivities: {0}".format(len(diff.removed_sensitivities))) for s in sorted(diff.removed_sensitivities): print(" - {0}".format(s)) if diff.modified_sensitivities and not args.stats: print(" Modified Sensitivities: {0}".format(len(diff.modified_sensitivities))) for name, mod in sorted(diff.modified_sensitivities.items()): change = [] if mod.added_aliases: change.append("{0} Added Aliases".format(len(mod.added_aliases))) if mod.removed_aliases: change.append("{0} Removed Aliases".format(len(mod.removed_aliases))) print(" * {0} ({1})".format(name, ", ".join(change))) print(" Aliases:") for a in sorted(mod.added_aliases): print(" + {0}".format(a)) for a in sorted(mod.removed_aliases): print(" - {0}".format(a)) print() del diff.added_sensitivities del diff.removed_sensitivities del diff.modified_sensitivities if all_differences or args.level: if diff.added_levels or diff.removed_levels or \ diff.modified_levels or args.level: print("Levels ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_levels), len(diff.removed_levels), len(diff.modified_levels))) if diff.added_levels and not args.stats: print(" Added Levels: {0}".format(len(diff.added_levels))) for a in sorted(diff.added_levels): print(" + {0}".format(a)) if diff.removed_levels and not args.stats: print(" Removed Levels: {0}".format(len(diff.removed_levels))) for r in sorted(diff.removed_levels): print(" - {0}".format(r)) if diff.modified_levels and not args.stats: print(" Modified Levels: {0}".format(len(diff.modified_levels))) for level, added_categories, removed_categories, _ in sorted(diff.modified_levels, key=lambda x: x.level): change = [] if added_categories: change.append("{0} Added Categories".format(len(added_categories))) if removed_categories: change.append("{0} Removed Categories".format(len(removed_categories))) print(" * {0} ({1})".format(level.sensitivity, ", ".join(change))) for c in sorted(added_categories): print(" + {0}".format(c)) for c in sorted(removed_categories): print(" - {0}".format(c)) print() del diff.added_levels del diff.removed_levels del diff.modified_levels if all_differences or args.allow: if diff.added_allows or diff.removed_allows or diff.modified_allows or args.allow: print("Allow Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_allows), len(diff.removed_allows), len(diff.modified_allows))) if diff.added_allows and not args.stats: print(" Added Allow Rules: {0}".format(len(diff.added_allows))) for r in sorted(diff.added_allows): print(" + {0}".format(r)) if diff.removed_allows and not args.stats: print(" Removed Allow Rules: {0}".format(len(diff.removed_allows))) for r in sorted(diff.removed_allows): print(" - {0}".format(r)) if diff.modified_allows and not args.stats: print(" Modified Allow Rules: {0}".format(len(diff.modified_allows))) for rule, added_perms, removed_perms, matched_perms in sorted(diff.modified_allows, key=lambda x: x.rule): perm_str = " ".join(chain((p for p in matched_perms), ("+" + p for p in added_perms), ("-" + p for p in removed_perms))) rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {{ {1} }};".format( rule, perm_str) with suppress(AttributeError): rule_string += " [ {0} ]".format(rule.conditional) print(" * {0}".format(rule_string)) print() del diff.added_allows del diff.removed_allows del diff.modified_allows if all_differences or args.allowxperm: if diff.added_allowxperms or diff.removed_allowxperms or diff.modified_allowxperms \ or args.allowxperm: print("Allowxperm Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_allowxperms), len(diff.removed_allowxperms), len(diff.modified_allowxperms))) if diff.added_allowxperms and not args.stats: print(" Added Allowxperm Rules: {0}".format(len(diff.added_allowxperms))) for r in sorted(diff.added_allowxperms): print(" + {0}".format(r)) if diff.removed_allowxperms and not args.stats: print(" Removed Allowxperm Rules: {0}".format(len(diff.removed_allowxperms))) for r in sorted(diff.removed_allowxperms): print(" - {0}".format(r)) if diff.modified_allowxperms and not args.stats: print(" Modified Allowxperm Rules: {0}".format(len(diff.modified_allowxperms))) for rule, added_perms, removed_perms, matched_perms in sorted( diff.modified_allowxperms, key=lambda x: x.rule): # Process the string representation of the sets # so hex representation and ranges are preserved. # Check if the perm sets have contents, otherwise # split on empty string will be an empty string. # Add brackets to added and removed permissions # in case there is a range of permissions. perms = [] if matched_perms: for p in str(matched_perms).split(" "): perms.append(p) if added_perms: for p in str(added_perms).split(" "): if '-' in p: perms.append("+[{0}]".format(p)) else: perms.append("+{0}".format(p)) if removed_perms: for p in str(removed_perms).split(" "): if '-' in p: perms.append("-[{0}]".format(p)) else: perms.append("-{0}".format(p)) rule_string = \ "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} {{ {1} }};". \ format(rule, perms) print(" * {0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} " "{{ {1} }};".format(rule, " ".join(perms))) print() del diff.added_allowxperms del diff.removed_allowxperms del diff.modified_allowxperms if all_differences or args.neverallow: if diff.added_neverallows or diff.removed_neverallows or diff.modified_neverallows or \ args.neverallow: print("Neverallow Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_neverallows), len(diff.removed_neverallows), len(diff.modified_neverallows))) if diff.added_neverallows and not args.stats: print(" Added Neverallow Rules: {0}".format(len(diff.added_neverallows))) for r in sorted(diff.added_neverallows): print(" + {0}".format(r)) if diff.removed_neverallows and not args.stats: print(" Removed Neverallow Rules: {0}".format(len(diff.removed_neverallows))) for r in sorted(diff.removed_neverallows): print(" - {0}".format(r)) if diff.modified_neverallows and not args.stats: print(" Modified Neverallow Rules: {0}".format(len(diff.modified_neverallows))) for rule, added_perms, removed_perms, matched_perms in sorted( diff.modified_neverallows, key=lambda x: x.rule): perm_str = " ".join(chain((p for p in matched_perms), ("+" + p for p in added_perms), ("-" + p for p in removed_perms))) rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {{ {1} }};".format( rule, perm_str) with suppress(AttributeError): rule_string += " [ {0} ]".format(rule.conditional) print(" * {0}".format(rule_string)) print() del diff.added_neverallows del diff.removed_neverallows del diff.modified_neverallows if all_differences or args.neverallowxperm: if diff.added_neverallowxperms or diff.removed_neverallowxperms or \ diff.modified_neverallowxperms or args.neverallowxperm: print("Neverallowxperm Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_neverallowxperms), len(diff.removed_neverallowxperms), len(diff.modified_neverallowxperms))) if diff.added_neverallowxperms and not args.stats: print(" Added Neverallowxperm Rules: {0}".format( len(diff.added_neverallowxperms))) for r in sorted(diff.added_neverallowxperms): print(" + {0}".format(r)) if diff.removed_neverallowxperms and not args.stats: print(" Removed Neverallowxperm Rules: {0}".format( len(diff.removed_neverallowxperms))) for r in sorted(diff.removed_neverallowxperms): print(" - {0}".format(r)) if diff.modified_neverallowxperms and not args.stats: print(" Modified Neverallowxperm Rules: {0}".format( len(diff.modified_neverallowxperms))) for rule, added_perms, removed_perms, matched_perms in sorted( diff.modified_neverallowxperms, key=lambda x: x.rule): # Process the string representation of the sets # so hex representation and ranges are preserved. # Check if the perm sets have contents, otherwise # split on empty string will be an empty string. # Add brackets to added and removed permissions # in case there is a range of permissions. perms = [] if matched_perms: for p in str(matched_perms).split(" "): perms.append(p) if added_perms: for p in str(added_perms).split(" "): if '-' in p: perms.append("+[{0}]".format(p)) else: perms.append("+{0}".format(p)) if removed_perms: for p in str(removed_perms).split(" "): if '-' in p: perms.append("-[{0}]".format(p)) else: perms.append("-{0}".format(p)) rule_string = \ "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} {{ {1} }};". \ format(rule, perms) print(" * {0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} " "{{ {1} }};".format(rule, " ".join(perms))) print() del diff.added_neverallowxperms del diff.removed_neverallowxperms del diff.modified_neverallowxperms if all_differences or args.auditallow: if diff.added_auditallows or diff.removed_auditallows or diff.modified_auditallows or \ args.auditallow: print("Auditallow Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_auditallows), len(diff.removed_auditallows), len(diff.modified_auditallows))) if diff.added_auditallows and not args.stats: print(" Added Auditallow Rules: {0}".format(len(diff.added_auditallows))) for r in sorted(diff.added_auditallows): print(" + {0}".format(r)) if diff.removed_auditallows and not args.stats: print(" Removed Auditallow Rules: {0}".format(len(diff.removed_auditallows))) for r in sorted(diff.removed_auditallows): print(" - {0}".format(r)) if diff.modified_auditallows and not args.stats: print(" Modified Auditallow Rules: {0}".format(len(diff.modified_auditallows))) for rule, added_perms, removed_perms, matched_perms in sorted( diff.modified_auditallows, key=lambda x: x.rule): perm_str = " ".join(chain((p for p in matched_perms), ("+" + p for p in added_perms), ("-" + p for p in removed_perms))) rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {{ {1} }};".format( rule, perm_str) with suppress(AttributeError): rule_string += " [ {0} ]".format(rule.conditional) print(" * {0}".format(rule_string)) print() del diff.added_auditallows del diff.removed_auditallows del diff.modified_auditallows if all_differences or args.auditallowxperm: if diff.added_auditallowxperms or diff.removed_auditallowxperms or \ diff.modified_auditallowxperms or args.auditallowxperm: print("Auditallowxperm Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_auditallowxperms), len(diff.removed_auditallowxperms), len(diff.modified_auditallowxperms))) if diff.added_auditallowxperms and not args.stats: print(" Added Auditallowxperm Rules: {0}".format( len(diff.added_auditallowxperms))) for r in sorted(diff.added_auditallowxperms): print(" + {0}".format(r)) if diff.removed_auditallowxperms and not args.stats: print(" Removed Auditallowxperm Rules: {0}".format( len(diff.removed_auditallowxperms))) for r in sorted(diff.removed_auditallowxperms): print(" - {0}".format(r)) if diff.modified_auditallowxperms and not args.stats: print(" Modified Auditallowxperm Rules: {0}".format( len(diff.modified_auditallowxperms))) for rule, added_perms, removed_perms, matched_perms in sorted( diff.modified_auditallowxperms, key=lambda x: x.rule): # Process the string representation of the sets # so hex representation and ranges are preserved. # Check if the perm sets have contents, otherwise # split on empty string will be an empty string. # Add brackets to added and removed permissions # in case there is a range of permissions. perms = [] if matched_perms: for p in str(matched_perms).split(" "): perms.append(p) if added_perms: for p in str(added_perms).split(" "): if '-' in p: perms.append("+[{0}]".format(p)) else: perms.append("+{0}".format(p)) if removed_perms: for p in str(removed_perms).split(" "): if '-' in p: perms.append("-[{0}]".format(p)) else: perms.append("-{0}".format(p)) rule_string = \ "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} {{ {1} }};". \ format(rule, perms) print(" * {0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} " "{{ {1} }};".format(rule, " ".join(perms))) print() del diff.added_auditallowxperms del diff.removed_auditallowxperms del diff.modified_auditallowxperms if all_differences or args.dontaudit: if diff.added_dontaudits or diff.removed_dontaudits or diff.modified_dontaudits or \ args.dontaudit: print("Dontaudit Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_dontaudits), len(diff.removed_dontaudits), len(diff.modified_dontaudits))) if diff.added_dontaudits and not args.stats: print(" Added Dontaudit Rules: {0}".format(len(diff.added_dontaudits))) for r in sorted(diff.added_dontaudits): print(" + {0}".format(r)) if diff.removed_dontaudits and not args.stats: print(" Removed Dontaudit Rules: {0}".format(len(diff.removed_dontaudits))) for r in sorted(diff.removed_dontaudits): print(" - {0}".format(r)) if diff.modified_dontaudits and not args.stats: print(" Modified Dontaudit Rules: {0}".format(len(diff.modified_dontaudits))) for rule, added_perms, removed_perms, matched_perms in sorted( diff.modified_dontaudits, key=lambda x: x.rule): perm_str = " ".join(chain((p for p in matched_perms), ("+" + p for p in added_perms), ("-" + p for p in removed_perms))) rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} {{ {1} }};".format( rule, perm_str) with suppress(AttributeError): rule_string += " [ {0} ]".format(rule.conditional) print(" * {0}".format(rule_string)) print() del diff.added_dontaudits del diff.removed_dontaudits del diff.modified_dontaudits if all_differences or args.dontauditxperm: if diff.added_dontauditxperms or diff.removed_dontauditxperms or \ diff.modified_dontauditxperms or args.dontauditxperm: print("Dontauditxperm Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_dontauditxperms), len(diff.removed_dontauditxperms), len(diff.modified_dontauditxperms))) if diff.added_dontauditxperms and not args.stats: print(" Added Dontauditxperm Rules: {0}".format( len(diff.added_dontauditxperms))) for r in sorted(diff.added_dontauditxperms): print(" + {0}".format(r)) if diff.removed_dontauditxperms and not args.stats: print(" Removed Dontauditxperm Rules: {0}".format( len(diff.removed_dontauditxperms))) for r in sorted(diff.removed_dontauditxperms): print(" - {0}".format(r)) if diff.modified_dontauditxperms and not args.stats: print(" Modified Dontauditxperm Rules: {0}".format( len(diff.modified_dontauditxperms))) for rule, added_perms, removed_perms, matched_perms in sorted( diff.modified_dontauditxperms, key=lambda x: x.rule): # Process the string representation of the sets # so hex representation and ranges are preserved. # Check if the perm sets have contents, otherwise # split on empty string will be an empty string. # Add brackets to added and removed permissions # in case there is a range of permissions. perms = [] if matched_perms: for p in str(matched_perms).split(" "): perms.append(p) if added_perms: for p in str(added_perms).split(" "): if '-' in p: perms.append("+[{0}]".format(p)) else: perms.append("+{0}".format(p)) if removed_perms: for p in str(removed_perms).split(" "): if '-' in p: perms.append("-[{0}]".format(p)) else: perms.append("-{0}".format(p)) rule_string = \ "{0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} {{ {1} }};". \ format(rule, perms) print(" * {0.ruletype} {0.source} {0.target}:{0.tclass} {0.xperm_type} " "{{ {1} }};".format(rule, " ".join(perms))) print() del diff.added_dontauditxperms del diff.removed_dontauditxperms del diff.modified_dontauditxperms if all_differences or args.type_trans: if diff.added_type_transitions or diff.removed_type_transitions or \ diff.modified_type_transitions or args.type_trans: print("Type_transition Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_type_transitions), len(diff.removed_type_transitions), len(diff.modified_type_transitions))) if diff.added_type_transitions and not args.stats: print(" Added Type_transition Rules: {0}".format( len(diff.added_type_transitions))) for r in sorted(diff.added_type_transitions): print(" + {0}".format(r)) if diff.removed_type_transitions and not args.stats: print(" Removed Type_transition Rules: {0}".format( len(diff.removed_type_transitions))) for r in sorted(diff.removed_type_transitions): print(" - {0}".format(r)) if diff.modified_type_transitions and not args.stats: print(" Modified Type_transition Rules: {0}".format( len(diff.modified_type_transitions))) for rule, added_default, removed_default in sorted(diff.modified_type_transitions, key=lambda x: x.rule): rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} +{1} -{2}".format( rule, added_default, removed_default) with suppress(AttributeError): rule_string += " {0}".format(rule.filename) rule_string += ";" with suppress(AttributeError): rule_string += " [ {0} ]".format(rule.conditional) print(" * {0}".format(rule_string)) print() del diff.added_type_transitions del diff.removed_type_transitions del diff.modified_type_transitions if all_differences or args.type_change: if diff.added_type_changes or diff.removed_type_changes or \ diff.modified_type_changes or args.type_change: print("Type_change Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_type_changes), len(diff.removed_type_changes), len(diff.modified_type_changes))) if diff.added_type_changes and not args.stats: print(" Added Type_change Rules: {0}".format(len(diff.added_type_changes))) for r in sorted(diff.added_type_changes): print(" + {0}".format(r)) if diff.removed_type_changes and not args.stats: print(" Removed Type_change Rules: {0}".format(len(diff.removed_type_changes))) for r in sorted(diff.removed_type_changes): print(" - {0}".format(r)) if diff.modified_type_changes and not args.stats: print(" Modified Type_change Rules: {0}".format(len(diff.modified_type_changes))) for rule, added_default, removed_default in sorted(diff.modified_type_changes, key=lambda x: x.rule): rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} +{1} -{2}".format( rule, added_default, removed_default) with suppress(AttributeError): rule_string += " {0}".format(rule.filename) rule_string += ";" with suppress(AttributeError): rule_string += " [ {0} ]".format(rule.conditional) print(" * {0}".format(rule_string)) print() del diff.added_type_changes del diff.removed_type_changes del diff.modified_type_changes if all_differences or args.type_member: if diff.added_type_members or diff.removed_type_members or \ diff.modified_type_members or args.type_member: print("Type_member Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_type_members), len(diff.removed_type_members), len(diff.modified_type_members))) if diff.added_type_members and not args.stats: print(" Added Type_member Rules: {0}".format(len(diff.added_type_members))) for r in sorted(diff.added_type_members): print(" + {0}".format(r)) if diff.removed_type_members and not args.stats: print(" Removed Type_member Rules: {0}".format(len(diff.removed_type_members))) for r in sorted(diff.removed_type_members): print(" - {0}".format(r)) if diff.modified_type_members and not args.stats: print(" Modified Type_member Rules: {0}".format(len(diff.modified_type_members))) for rule, added_default, removed_default in sorted(diff.modified_type_members, key=lambda x: x.rule): rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} +{1} -{2}".format( rule, added_default, removed_default) with suppress(AttributeError): rule_string += " {0}".format(rule.filename) rule_string += ";" with suppress(AttributeError): rule_string += " [ {0} ]".format(rule.conditional) print(" * {0}".format(rule_string)) print() del diff.added_type_members del diff.removed_type_members del diff.modified_type_members if all_differences or args.role_allow: if diff.added_role_allows or diff.removed_role_allows or args.role_allow: print("Role allow Rules ({0} Added, {1} Removed)".format( len(diff.added_role_allows), len(diff.removed_role_allows))) if diff.added_role_allows and not args.stats: print(" Added Role Allow Rules: {0}".format( len(diff.added_role_allows))) for r in sorted(diff.added_role_allows): print(" + {0}".format(r)) if diff.removed_role_allows and not args.stats: print(" Removed Role Allow Rules: {0}".format( len(diff.removed_role_allows))) for r in sorted(diff.removed_role_allows): print(" - {0}".format(r)) print() del diff.added_role_allows del diff.removed_role_allows if all_differences or args.role_trans: if diff.added_role_transitions or diff.removed_role_transitions or \ diff.modified_role_transitions or args.role_trans: print("Role_transition Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_role_transitions), len(diff.removed_role_transitions), len(diff.modified_role_transitions))) if diff.added_role_transitions and not args.stats: print(" Added Role_transition Rules: {0}".format( len(diff.added_role_transitions))) for r in sorted(diff.added_role_transitions): print(" + {0}".format(r)) if diff.removed_role_transitions and not args.stats: print(" Removed Role_transition Rules: {0}".format( len(diff.removed_role_transitions))) for r in sorted(diff.removed_role_transitions): print(" - {0}".format(r)) if diff.modified_role_transitions and not args.stats: print(" Modified Role_transition Rules: {0}".format( len(diff.modified_role_transitions))) for rule, added_default, removed_default in sorted(diff.modified_role_transitions, key=lambda x: x.rule): rule_string = \ "{0.ruletype} {0.source} {0.target}:{0.tclass} +{1} -{2}".format( rule, added_default, removed_default) print(" * {0}".format(rule_string)) print() del diff.added_role_transitions del diff.removed_role_transitions del diff.modified_role_transitions if all_differences or args.range_trans: if diff.added_range_transitions or diff.removed_range_transitions or \ diff.modified_range_transitions or args.range_trans: print("Range_transition Rules ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_range_transitions), len(diff.removed_range_transitions), len(diff.modified_range_transitions))) if diff.added_range_transitions and not args.stats: print(" Added Range_transition Rules: {0}".format( len(diff.added_range_transitions))) for r in sorted(diff.added_range_transitions): print(" + {0}".format(r)) if diff.removed_range_transitions and not args.stats: print(" Removed Range_transition Rules: {0}".format( len(diff.removed_range_transitions))) for r in sorted(diff.removed_range_transitions): print(" - {0}".format(r)) if diff.modified_range_transitions and not args.stats: print(" Modified Range_transition Rules: {0}".format( len(diff.modified_range_transitions))) for rule, added_default, removed_default in sorted(diff.modified_range_transitions, key=lambda x: x.rule): # added brackets around range change for clarity since ranges # can have '-' and spaces. rule_string = \ "{0.ruletype} {0.source} {0.target}:{0.tclass} +[{1}] -[{2}]".format( rule, added_default, removed_default) print(" * {0}".format(rule_string)) print() del diff.added_range_transitions del diff.removed_range_transitions del diff.modified_range_transitions if all_differences or args.constrain: if diff.added_constrains or diff.removed_constrains or args.constrain: print("Constraints ({0} Added, {1} Removed)".format( len(diff.added_constrains), len(diff.removed_constrains))) if diff.added_constrains and not args.stats: print(" Added Constraints: {0}".format( len(diff.added_constrains))) for r in sorted(diff.added_constrains): print(" + {0}".format(r)) if diff.removed_constrains and not args.stats: print(" Removed Constraints: {0}".format( len(diff.removed_constrains))) for r in sorted(diff.removed_constrains): print(" - {0}".format(r)) print() del diff.added_constrains del diff.removed_constrains if all_differences or args.mlsconstrain: if diff.added_mlsconstrains or diff.removed_mlsconstrains or args.mlsconstrain: print("MLS Constraints ({0} Added, {1} Removed)".format( len(diff.added_mlsconstrains), len(diff.removed_mlsconstrains))) if diff.added_mlsconstrains and not args.stats: print(" Added MLS Constraints: {0}".format( len(diff.added_mlsconstrains))) for r in sorted(diff.added_mlsconstrains): print(" + {0}".format(r)) if diff.removed_mlsconstrains and not args.stats: print(" Removed MLS Constraints: {0}".format( len(diff.removed_mlsconstrains))) for r in sorted(diff.removed_mlsconstrains): print(" - {0}".format(r)) print() del diff.added_mlsconstrains del diff.removed_mlsconstrains if all_differences or args.validatetrans: if diff.added_validatetrans or diff.removed_validatetrans or args.validatetrans: print("Validatetrans ({0} Added, {1} Removed)".format( len(diff.added_validatetrans), len(diff.removed_validatetrans))) if diff.added_validatetrans and not args.stats: print(" Added Validatetrans: {0}".format( len(diff.added_validatetrans))) for r in sorted(diff.added_validatetrans): print(" + {0}".format(r)) if diff.removed_validatetrans and not args.stats: print(" Removed Validatetrans: {0}".format( len(diff.removed_validatetrans))) for r in sorted(diff.removed_validatetrans): print(" - {0}".format(r)) print() del diff.added_validatetrans del diff.removed_validatetrans if all_differences or args.mlsvalidatetrans: if diff.added_mlsvalidatetrans or diff.removed_mlsvalidatetrans or args.mlsvalidatetrans: print("MLS Validatetrans ({0} Added, {1} Removed)".format( len(diff.added_mlsvalidatetrans), len(diff.removed_mlsvalidatetrans))) if diff.added_mlsvalidatetrans and not args.stats: print(" Added MLS Validatetrans: {0}".format( len(diff.added_mlsvalidatetrans))) for r in sorted(diff.added_mlsvalidatetrans): print(" + {0}".format(r)) if diff.removed_mlsvalidatetrans and not args.stats: print(" Removed MLS Validatetrans: {0}".format( len(diff.removed_mlsvalidatetrans))) for r in sorted(diff.removed_mlsvalidatetrans): print(" - {0}".format(r)) print() del diff.added_mlsvalidatetrans del diff.removed_mlsvalidatetrans if all_differences or args.initialsid: if diff.added_initialsids or diff.removed_initialsids or diff.modified_initialsids \ or args.initialsid: print("Initial SIDs ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_initialsids), len(diff.removed_initialsids), len(diff.modified_initialsids))) if diff.added_initialsids and not args.stats: print(" Added Initial SIDs: {0}".format(len(diff.added_initialsids))) for s in sorted(diff.added_initialsids): print(" + {0}".format(s.statement())) if diff.removed_initialsids and not args.stats: print(" Removed Initial SIDs: {0}".format(len(diff.removed_initialsids))) for s in sorted(diff.removed_initialsids): print(" - {0}".format(s.statement())) if diff.modified_initialsids and not args.stats: print(" Modified Initial SIDs: {0}".format(len(diff.modified_initialsids))) for name, mod in sorted(diff.modified_initialsids.items()): print(" * {0} +[{1.added_context}] -[{1.removed_context}];".format( name, mod)) print() del diff.added_initialsids del diff.removed_initialsids del diff.modified_initialsids if all_differences or args.ibendportcon: if diff.added_ibendportcons or diff.removed_ibendportcons or diff.modified_ibendportcons \ or args.ibendportcon: print("Ibendportcons ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_ibendportcons), len(diff.removed_ibendportcons), len(diff.modified_ibendportcons))) if diff.added_ibendportcons and not args.stats: print(" Added Ibendportcons: {0}".format(len(diff.added_ibendportcons))) for s in sorted(diff.added_ibendportcons): print(" + {0}".format(s.statement())) if diff.removed_ibendportcons and not args.stats: print(" Removed Ibendportcons: {0}".format(len(diff.removed_ibendportcons))) for s in sorted(diff.removed_ibendportcons): print(" - {0}".format(s.statement())) if diff.modified_ibendportcons and not args.stats: print(" Modified Ibendportcons: {0}".format(len(diff.modified_ibendportcons))) for entry in sorted(diff.modified_ibendportcons, key=lambda x: x.rule): print(" * ibendportcon {0.rule.name} {0.rule.port} " "+[{0.added_context}] -[{0.removed_context}]".format(entry)) print() del diff.added_ibendportcons del diff.removed_ibendportcons del diff.modified_ibendportcons if all_differences or args.ibpkeycon: if diff.added_ibpkeycons or diff.removed_ibpkeycons or diff.modified_ibpkeycons \ or args.ibpkeycon: print("Ibpkeycons ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_ibpkeycons), len(diff.removed_ibpkeycons), len(diff.modified_ibpkeycons))) if diff.added_ibpkeycons and not args.stats: print(" Added Ibpkeycons: {0}".format(len(diff.added_ibpkeycons))) for s in sorted(diff.added_ibpkeycons): print(" + {0}".format(s.statement())) if diff.removed_ibpkeycons and not args.stats: print(" Removed Ibpkeycons: {0}".format(len(diff.removed_ibpkeycons))) for s in sorted(diff.removed_ibpkeycons): print(" - {0}".format(s.statement())) if diff.modified_ibpkeycons and not args.stats: print(" Modified Ibpkeycons: {0}".format(len(diff.modified_ibpkeycons))) for entry in sorted(diff.modified_ibpkeycons, key=lambda x: x.rule): if entry.rule.pkeys.low == entry.rule.pkeys.high: print(" * ibpkeycon {0.rule.subnet_prefix} {0.rule.pkeys.low:#x} " "+[{0.added_context}] -[{0.removed_context}]".format(entry)) else: print(" * ibpkeycon {0.rule.subnet_prefix} " "{0.rule.pkeys.low:#x}-{0.rule.pkeys.high:#x} " "+[{0.added_context}] -[{0.removed_context}]".format(entry)) print() del diff.added_ibpkeycons del diff.removed_ibpkeycons del diff.modified_ibpkeycons if all_differences or args.fs_use: if diff.added_fs_uses or diff.removed_fs_uses or diff.modified_fs_uses \ or args.fs_use: print("Fs_use ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_fs_uses), len(diff.removed_fs_uses), len(diff.modified_fs_uses))) if diff.added_fs_uses and not args.stats: print(" Added Fs_use: {0}".format(len(diff.added_fs_uses))) for s in sorted(diff.added_fs_uses): print(" + {0}".format(s)) if diff.removed_fs_uses and not args.stats: print(" Removed Fs_use: {0}".format(len(diff.removed_fs_uses))) for s in sorted(diff.removed_fs_uses): print(" - {0}".format(s)) if diff.modified_fs_uses and not args.stats: print(" Modified Fs_use: {0}".format(len(diff.modified_fs_uses))) for entry in sorted(diff.modified_fs_uses, key=lambda x: x.rule): print(" * {0.ruletype} {0.fs} +[{1}] -[{2}];".format( entry.rule, entry.added_context, entry.removed_context)) print() del diff.added_fs_uses del diff.removed_fs_uses del diff.modified_fs_uses if all_differences or args.genfscon: if diff.added_genfscons or diff.removed_genfscons or diff.modified_genfscons \ or args.genfscon: print("Genfscons ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_genfscons), len(diff.removed_genfscons), len(diff.modified_genfscons))) if diff.added_genfscons and not args.stats: print(" Added Genfscons: {0}".format(len(diff.added_genfscons))) for s in sorted(diff.added_genfscons): print(" + {0}".format(s)) if diff.removed_genfscons and not args.stats: print(" Removed Genfscons: {0}".format(len(diff.removed_genfscons))) for s in sorted(diff.removed_genfscons): print(" - {0}".format(s)) if diff.modified_genfscons and not args.stats: print(" Modified Genfscons: {0}".format(len(diff.modified_genfscons))) for entry in sorted(diff.modified_genfscons, key=lambda x: x.rule): print(" * genfscon {0.fs} {0.path} {0.filetype} +[{1}] -[{2}];".format( entry.rule, entry.added_context, entry.removed_context)) print() del diff.added_genfscons del diff.removed_genfscons del diff.modified_genfscons if all_differences or args.netifcon: if diff.added_netifcons or diff.removed_netifcons or \ diff.modified_netifcons or args.netifcon: print("Netifcons ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_netifcons), len(diff.removed_netifcons), len(diff.modified_netifcons))) if diff.added_netifcons and not args.stats: print(" Added Netifcons: {0}".format(len(diff.added_netifcons))) for n in sorted(diff.added_netifcons): print(" + {0}".format(n)) if diff.removed_netifcons and not args.stats: print(" Removed Netifcons: {0}".format(len(diff.removed_netifcons))) for n in sorted(diff.removed_netifcons): print(" - {0}".format(n)) if diff.modified_netifcons and not args.stats: print(" Modified Netifcons: {0}".format(len(diff.modified_netifcons))) for entry in sorted(diff.modified_netifcons, key=lambda x: x.rule): # This output is different than other statements because # it becomes difficult to read if this was condensed # into a single line, especially if both contexts # are modified. change = [] if entry.removed_context: change.append("Modified Context") if entry.removed_packet: change.append("Modified Packet Context") print(" * {0.netif} ({1})".format(entry.rule, ", ".join(change))) if entry.removed_context: print(" Context:") print(" + {0}".format(entry.added_context)) print(" - {0}".format(entry.removed_context)) if entry.removed_packet: print(" Packet Context:") print(" + {0}".format(entry.added_packet)) print(" - {0}".format(entry.removed_packet)) print() del diff.added_netifcons del diff.removed_netifcons del diff.modified_netifcons if all_differences or args.nodecon: if diff.added_nodecons or diff.removed_nodecons or diff.modified_nodecons \ or args.nodecon: print("Nodecons ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_nodecons), len(diff.removed_nodecons), len(diff.modified_nodecons))) if diff.added_nodecons and not args.stats: print(" Added Nodecons: {0}".format(len(diff.added_nodecons))) for n in sorted(diff.added_nodecons): print(" + {0}".format(n)) if diff.removed_nodecons and not args.stats: print(" Removed Nodecons: {0}".format(len(diff.removed_nodecons))) for n in sorted(diff.removed_nodecons): print(" - {0}".format(n)) if diff.modified_nodecons and not args.stats: print(" Modified Nodecons: {0}".format(len(diff.modified_nodecons))) for entry in sorted(diff.modified_nodecons, key=lambda x: x.rule): print(" * nodecon {0} +[{1.added_context}] -[{1.removed_context}];".format( entry.rule.network.with_netmask.replace("/", " "), entry)) print() del diff.added_nodecons del diff.removed_nodecons del diff.modified_nodecons if all_differences or args.portcon: if diff.added_portcons or diff.removed_portcons or diff.modified_portcons \ or args.portcon: print("Portcons ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_portcons), len(diff.removed_portcons), len(diff.modified_portcons))) if diff.added_portcons and not args.stats: print(" Added Portcons: {0}".format(len(diff.added_portcons))) for n in sorted(diff.added_portcons): print(" + {0}".format(n)) if diff.removed_portcons and not args.stats: print(" Removed Portcons: {0}".format(len(diff.removed_portcons))) for n in sorted(diff.removed_portcons): print(" - {0}".format(n)) if diff.modified_portcons and not args.stats: print(" Modified Portcons: {0}".format(len(diff.modified_portcons))) for con, added_context, removed_context in sorted(diff.modified_portcons, key=lambda x: x.rule): low, high = con.ports if low == high: print(" * portcon {0.protocol} {1} +[{2}] -[{3}];".format( con, low, added_context, removed_context)) else: print(" * portcon {0.protocol} {1}-{2} +[{3}] -[{4}];".format( con, low, high, added_context, removed_context)) print() del diff.added_portcons del diff.removed_portcons del diff.modified_portcons if all_differences or args.polcap: if diff.added_polcaps or diff.removed_polcaps or args.polcap: print("Policy Capabilities ({0} Added, {1} Removed)".format( len(diff.added_polcaps), len(diff.removed_polcaps))) if diff.added_polcaps and not args.stats: print(" Added Policy Capabilities: {0}".format(len(diff.added_polcaps))) for n in sorted(diff.added_polcaps): print(" + {0}".format(n)) if diff.removed_polcaps and not args.stats: print(" Removed Policy Capabilities: {0}".format(len(diff.removed_polcaps))) for n in sorted(diff.removed_polcaps): print(" - {0}".format(n)) print() del diff.added_polcaps del diff.removed_polcaps if all_differences or args.default: if diff.added_defaults or diff.removed_defaults or diff.modified_defaults or args.default: print("Defaults ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_defaults), len(diff.removed_defaults), len(diff.modified_defaults))) if diff.added_defaults and not args.stats: print(" Added Defaults: {0}".format(len(diff.added_defaults))) for d in sorted(diff.added_defaults): print(" + {0}".format(d)) if diff.removed_defaults and not args.stats: print(" Removed Defaults: {0}".format(len(diff.removed_defaults))) for d in sorted(diff.removed_defaults): print(" - {0}".format(d)) if diff.modified_defaults and not args.stats: print(" Modified Defaults: {0}".format(len(diff.modified_defaults))) for default, added_default, removed_default, added_range, removed_range in sorted( diff.modified_defaults, key=lambda x: x.rule): line = " * {0.ruletype} {0.tclass} ".format(default) if removed_default: line += "+{0} -{1}".format(added_default, removed_default) else: line += default.default.name if removed_range: line += " +{0} -{1};".format(added_range, removed_range) else: try: line += " {0};".format(default.default_range) except AttributeError: line += ";" print(line) print() del diff.added_defaults del diff.removed_defaults del diff.modified_defaults if all_differences or args.typebounds: if diff.added_typebounds or diff.removed_typebounds or args.typebounds: print("Typebounds ({0} Added, {1} Removed, {2} Modified)".format( len(diff.added_typebounds), len(diff.removed_typebounds), len(diff.modified_typebounds))) if diff.added_typebounds and not args.stats: print(" Added Typebounds: {0}".format(len(diff.added_typebounds))) for d in sorted(diff.added_typebounds): print(" + {0}".format(d)) if diff.removed_typebounds and not args.stats: print(" Removed Typebounds: {0}".format(len(diff.removed_typebounds))) for d in sorted(diff.removed_typebounds): print(" - {0}".format(d)) if diff.modified_typebounds and not args.stats: print(" Modified Typebounds: {0}".format(len(diff.modified_typebounds))) for bound, added_bound, removed_bound in sorted( diff.modified_typebounds, key=lambda x: x.rule): print(" * {0.ruletype} +{1} -{2} {0.child};".format( bound, added_bound, removed_bound)) print() del diff.added_typebounds del diff.removed_typebounds except Exception as err: if args.debug: raise else: print(err) sys.exit(1)
Close