Linux 00830bc4dc40 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64
Apache/2.4
: 172.19.0.2 | : 216.73.217.74
Cant Read [ /etc/named.conf ]
7.4.33
flexusfire
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
bin /
[ HOME SHELL ]
Name
Size
Permission
Action
X11
[ DIR ]
drwxr-xr-x
2to3-2.7
96
B
-rwxr-xr-x
411toppm
9.87
KB
-rwxr-xr-x
[
58.34
KB
-rwxr-xr-x
aclocal
35.62
KB
-rwxr-xr-x
aclocal-1.16
35.62
KB
-rwxr-xr-x
addpart
30.23
KB
-rwxr-xr-x
addr2line
34.7
KB
-rwxr-xr-x
ambiguous_words
14.23
KB
-rwxr-xr-x
animate
14.15
KB
-rwxr-xr-x
animate-im6
14.15
KB
-rwxr-xr-x
animate-im6.q16
14.15
KB
-rwxr-xr-x
anytopnm
5.55
KB
-rwxr-xr-x
apt
18.38
KB
-rwxr-xr-x
apt-cache
86.46
KB
-rwxr-xr-x
apt-cdrom
30.46
KB
-rwxr-xr-x
apt-config
26.38
KB
-rwxr-xr-x
apt-get
46.46
KB
-rwxr-xr-x
apt-key
27.28
KB
-rwxr-xr-x
apt-mark
62.46
KB
-rwxr-xr-x
ar
66.43
KB
-rwxr-xr-x
arch
38.37
KB
-rwxr-xr-x
argon2
46.01
KB
-rwxr-xr-x
as
680.3
KB
-rwxr-xr-x
asciitopgm
9.87
KB
-rwxr-xr-x
atktopbm
17.87
KB
-rwxr-xr-x
autoconf
14.42
KB
-rwxr-xr-x
autoheader
8.34
KB
-rwxr-xr-x
autom4te
31.91
KB
-rwxr-xr-x
automake
251.9
KB
-rwxr-xr-x
automake-1.16
251.9
KB
-rwxr-xr-x
autoreconf
20.67
KB
-rwxr-xr-x
autoscan
16.73
KB
-rwxr-xr-x
autoupdate
33.08
KB
-rwxr-xr-x
awk
158.74
KB
-rwxr-xr-x
b2sum
58.37
KB
-rwxr-xr-x
base32
42.34
KB
-rwxr-xr-x
base64
42.34
KB
-rwxr-xr-x
basename
38.34
KB
-rwxr-xr-x
bash
1.13
MB
-rwxr-xr-x
bashbug
6.63
KB
-rwxr-xr-x
bioradtopgm
9.87
KB
-rwxr-xr-x
bmptopnm
13.91
KB
-rwxr-xr-x
bmptoppm
13.91
KB
-rwxr-xr-x
brushtopbm
9.87
KB
-rwxr-xr-x
bundle2.7
529
B
-rwxr-xr-x
bundler2.7
531
B
-rwxr-xr-x
bunzip2
38.23
KB
-rwxr-xr-x
bzcat
38.23
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.76
KB
-rwxr-xr-x
bzfgrep
3.69
KB
-rwxr-xr-x
bzgrep
3.69
KB
-rwxr-xr-x
bzip2
38.23
KB
-rwxr-xr-x
bzip2recover
18.15
KB
-rwxr-xr-x
bzless
1.27
KB
-rwxr-xr-x
bzmore
1.27
KB
-rwxr-xr-x
c++
1.1
MB
-rwxr-xr-x
c++filt
30.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.65
KB
-rwxr-xr-x
captoinfo
90.41
KB
-rwxr-xr-x
cat
42.4
KB
-rwxr-xr-x
catchsegv
3.25
KB
-rwxr-xr-x
cautious-launcher
853
B
-rwxr-xr-x
cc
1.1
MB
-rwxr-xr-x
chage
82.53
KB
-rwxr-sr-x
chardet3
389
B
-rwxr-xr-x
chardetect3
389
B
-rwxr-xr-x
chattr
14.31
KB
-rwxr-xr-x
chcon
70.34
KB
-rwxr-xr-x
chfn
83.07
KB
-rwsr-xr-x
chgrp
70.34
KB
-rwxr-xr-x
chmod
62.37
KB
-rwxr-xr-x
choom
50.23
KB
-rwxr-xr-x
chown
70.34
KB
-rwxr-xr-x
chrt
38.23
KB
-rwxr-xr-x
chsh
51.8
KB
-rwsr-xr-x
cifsdd
90.92
KB
-rwxr-xr-x
cjpeg
46.23
KB
-rwxr-xr-x
cksum
38.34
KB
-rwxr-xr-x
classifier_tester
102.35
KB
-rwxr-xr-x
clear
14.31
KB
-rwxr-xr-x
clear_console
14.23
KB
-rwxr-xr-x
cmp
50.09
KB
-rwxr-xr-x
cmuwmtopbm
9.87
KB
-rwxr-xr-x
cntraining
102.35
KB
-rwxr-xr-x
combine_lang_model
118.31
KB
-rwxr-xr-x
combine_tessdata
18.31
KB
-rwxr-xr-x
comm
42.37
KB
-rwxr-xr-x
compare
14.15
KB
-rwxr-xr-x
compare-im6
14.15
KB
-rwxr-xr-x
compare-im6.q16
14.15
KB
-rwxr-xr-x
compose
18.05
KB
-rwxr-xr-x
composite
14.15
KB
-rwxr-xr-x
composite-im6
14.15
KB
-rwxr-xr-x
composite-im6.q16
14.15
KB
-rwxr-xr-x
conjure
14.15
KB
-rwxr-xr-x
conjure-im6
14.15
KB
-rwxr-xr-x
conjure-im6.q16
14.15
KB
-rwxr-xr-x
convert
14.15
KB
-rwxr-xr-x
convert-im6
14.15
KB
-rwxr-xr-x
convert-im6.q16
14.15
KB
-rwxr-xr-x
corelist
14.73
KB
-rwxr-xr-x
corepack
174
B
-rwxr-xr-x
cp
150.37
KB
-rwxr-xr-x
cpan
7.96
KB
-rwxr-xr-x
cpan5.30-x86_64-linux-gnu
7.98
KB
-rwxr-xr-x
cpp
1.1
MB
-rwxr-xr-x
cpp-9
1.1
MB
-rwxr-xr-x
csplit
54.37
KB
-rwxr-xr-x
curl
234.23
KB
-rwxr-xr-x
cut
46.37
KB
-rwxr-xr-x
cwebp
62.23
KB
-rwxr-xr-x
dash
126.77
KB
-rwxr-xr-x
date
106.37
KB
-rwxr-xr-x
dawg2wordlist
18.31
KB
-rwxr-xr-x
dbus-cleanup-sockets
14.14
KB
-rwxr-xr-x
dbus-daemon
243.2
KB
-rwxr-xr-x
dbus-monitor
30.14
KB
-rwxr-xr-x
dbus-run-session
14.14
KB
-rwxr-xr-x
dbus-send
30.14
KB
-rwxr-xr-x
dbus-update-activation-environ...
14.14
KB
-rwxr-xr-x
dbus-uuidgen
14.14
KB
-rwxr-xr-x
dbwrap_tool
26.52
KB
-rwxr-xr-x
dd
78.38
KB
-rwxr-xr-x
deb-systemd-helper
20.83
KB
-rwxr-xr-x
deb-systemd-invoke
4.33
KB
-rwxr-xr-x
debconf
2.79
KB
-rwxr-xr-x
debconf-apt-progress
11.27
KB
-rwxr-xr-x
debconf-communicate
608
B
-rwxr-xr-x
debconf-copydb
1.68
KB
-rwxr-xr-x
debconf-escape
647
B
-rwxr-xr-x
debconf-set-selections
2.87
KB
-rwxr-xr-x
debconf-show
1.78
KB
-rwxr-xr-x
delpart
30.23
KB
-rwxr-xr-x
df
90.95
KB
-rwxr-xr-x
dh_autotools-dev_restoreconfig
1.79
KB
-rwxr-xr-x
dh_autotools-dev_updateconfig
1.81
KB
-rwxr-xr-x
dh_python2
1.03
KB
-rwxr-xr-x
diff
214.34
KB
-rwxr-xr-x
diff3
66.21
KB
-rwxr-xr-x
dir
138.81
KB
-rwxr-xr-x
dircolors
46.34
KB
-rwxr-xr-x
dirmngr
569.86
KB
-rwxr-xr-x
dirmngr-client
119.06
KB
-rwxr-xr-x
dirname
38.34
KB
-rwxr-xr-x
display
14.15
KB
-rwxr-xr-x
display-im6
14.15
KB
-rwxr-xr-x
display-im6.q16
14.15
KB
-rwxr-xr-x
djpeg
34.23
KB
-rwxr-xr-x
dmesg
82.46
KB
-rwxr-xr-x
dnsdomainname
26.23
KB
-rwxr-xr-x
domainname
26.23
KB
-rwxr-xr-x
dpkg
302.68
KB
-rwxr-xr-x
dpkg-architecture
12.55
KB
-rwxr-xr-x
dpkg-buildflags
7.39
KB
-rwxr-xr-x
dpkg-buildpackage
29.89
KB
-rwxr-xr-x
dpkg-checkbuilddeps
7.45
KB
-rwxr-xr-x
dpkg-deb
174.54
KB
-rwxr-xr-x
dpkg-distaddfile
2.72
KB
-rwxr-xr-x
dpkg-divert
150.59
KB
-rwxr-xr-x
dpkg-genbuildinfo
16.4
KB
-rwxr-xr-x
dpkg-genchanges
17.08
KB
-rwxr-xr-x
dpkg-gencontrol
13.87
KB
-rwxr-xr-x
dpkg-gensymbols
10.65
KB
-rwxr-xr-x
dpkg-maintscript-helper
20.03
KB
-rwxr-xr-x
dpkg-mergechangelogs
8.35
KB
-rwxr-xr-x
dpkg-name
6.63
KB
-rwxr-xr-x
dpkg-parsechangelog
4.46
KB
-rwxr-xr-x
dpkg-query
162.59
KB
-rwxr-xr-x
dpkg-scanpackages
8.49
KB
-rwxr-xr-x
dpkg-scansources
8.95
KB
-rwxr-xr-x
dpkg-shlibdeps
30.68
KB
-rwxr-xr-x
dpkg-source
22.48
KB
-rwxr-xr-x
dpkg-split
122.48
KB
-rwxr-xr-x
dpkg-statoverride
62.27
KB
-rwxr-xr-x
dpkg-trigger
82.49
KB
-rwxr-xr-x
dpkg-vendor
3.19
KB
-rwxr-xr-x
du
106.37
KB
-rwxr-xr-x
dumpelf
58.41
KB
-rwxr-xr-x
dvipdf
1007
B
-rwxr-xr-x
dwebp
34.23
KB
-rwxr-xr-x
dwp
1.95
MB
-rwxr-xr-x
echo
38.34
KB
-rwxr-xr-x
echo_supervisord_conf
419
B
-rwxr-xr-x
edit
18.05
KB
-rwxr-xr-x
egrep
28
B
-rwxr-xr-x
elfedit
42.67
KB
-rwxr-xr-x
enc2xs
41.12
KB
-rwxr-xr-x
encguess
2.99
KB
-rwxr-xr-x
env
42.34
KB
-rwxr-xr-x
eps2eps
639
B
-rwxr-xr-x
erb
4.94
KB
-rwxr-xr-x
erb2.7
4.94
KB
-rwxr-xr-x
exifautotran
1.11
KB
-rwxr-xr-x
expand
42.37
KB
-rwxr-xr-x
expiry
30.58
KB
-rwxr-sr-x
expr
54.34
KB
-rwxr-xr-x
eyuvtoppm
13.87
KB
-rwxr-xr-x
factor
78.37
KB
-rwxr-xr-x
faillog
22.59
KB
-rwxr-xr-x
faked-sysv
34.27
KB
-rwxr-xr-x
faked-tcp
34.25
KB
-rwxr-xr-x
fakeroot
3.76
KB
-rwxr-xr-x
fakeroot-sysv
3.76
KB
-rwxr-xr-x
fakeroot-tcp
3.76
KB
-rwxr-xr-x
fallocate
34.23
KB
-rwxr-xr-x
false
38.34
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
ffmpeg
278.3
KB
-rwxr-xr-x
ffplay
142.32
KB
-rwxr-xr-x
ffprobe
170.49
KB
-rwxr-xr-x
fgrep
28
B
-rwxr-xr-x
fiascotopnm
114.45
KB
-rwxr-xr-x
file
26.47
KB
-rwxr-xr-x
fincore
34.27
KB
-rwxr-xr-x
find
312.66
KB
-rwxr-xr-x
findmnt
71.41
KB
-rwxr-xr-x
fitstopnm
13.87
KB
-rwxr-xr-x
flock
34.3
KB
-rwxr-xr-x
fmt
46.34
KB
-rwxr-xr-x
fold
42.34
KB
-rwxr-xr-x
free
26.23
KB
-rwxr-xr-x
fstopgm
9.87
KB
-rwxr-xr-x
funzip
26.15
KB
-rwxr-xr-x
g++
1.1
MB
-rwxr-xr-x
g++-9
1.1
MB
-rwxr-xr-x
g3topbm
12.98
KB
-rwxr-xr-x
gcc
1.1
MB
-rwxr-xr-x
gcc-9
1.1
MB
-rwxr-xr-x
gcc-ar
34.63
KB
-rwxr-xr-x
gcc-ar-9
34.63
KB
-rwxr-xr-x
gcc-nm
34.63
KB
-rwxr-xr-x
gcc-nm-9
34.63
KB
-rwxr-xr-x
gcc-ranlib
34.63
KB
-rwxr-xr-x
gcc-ranlib-9
34.63
KB
-rwxr-xr-x
gcov
656.23
KB
-rwxr-xr-x
gcov-9
656.23
KB
-rwxr-xr-x
gcov-dump
528.13
KB
-rwxr-xr-x
gcov-dump-9
528.13
KB
-rwxr-xr-x
gcov-tool
544.2
KB
-rwxr-xr-x
gcov-tool-9
544.2
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
gem
545
B
-rwxr-xr-x
gem2.7
545
B
-rwxr-xr-x
gemtopbm
9.87
KB
-rwxr-xr-x
gemtopnm
9.87
KB
-rwxr-xr-x
gencat
26.37
KB
-rwxr-xr-x
getconf
34.29
KB
-rwxr-xr-x
getent
38.65
KB
-rwxr-xr-x
getopt
22.23
KB
-rwxr-xr-x
ghostscript
14.15
KB
-rwxr-xr-x
gif2webp
30.23
KB
-rwxr-xr-x
gifdiff
66.38
KB
-rwxr-xr-x
gifsicle
194.66
KB
-rwxr-xr-x
giftopnm
17.87
KB
-rwxr-xr-x
gifview
82.4
KB
-rwxr-xr-x
git
2.98
MB
-rwxr-xr-x
git-receive-pack
2.98
MB
-rwxr-xr-x
git-shell
1.71
MB
-rwxr-xr-x
git-upload-archive
2.98
MB
-rwxr-xr-x
git-upload-pack
2.98
MB
-rwxr-xr-x
gm
14.15
KB
-rwxr-xr-x
gold
2.21
MB
-rwxr-xr-x
gouldtoppm
9.87
KB
-rwxr-xr-x
gpasswd
86.39
KB
-rwsr-xr-x
gpg
1.02
MB
-rwxr-xr-x
gpg-agent
409.04
KB
-rwxr-xr-x
gpg-connect-agent
163.16
KB
-rwxr-xr-x
gpg-wks-server
203.2
KB
-rwxr-xr-x
gpg-zip
3.43
KB
-rwxr-xr-x
gpgcompose
878.29
KB
-rwxr-xr-x
gpgconf
174.66
KB
-rwxr-xr-x
gpgparsemail
34.38
KB
-rwxr-xr-x
gpgsm
507.24
KB
-rwxr-xr-x
gpgsplit
86.76
KB
-rwxr-xr-x
gpgtar
151.63
KB
-rwxr-xr-x
gpgv
447.15
KB
-rwxr-xr-x
gprof
99.88
KB
-rwxr-xr-x
grep
194.47
KB
-rwxr-xr-x
groups
38.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
gslj
353
B
-rwxr-xr-x
gslp
350
B
-rwxr-xr-x
gsnd
277
B
-rwxr-xr-x
gunzip
2.29
KB
-rwxr-xr-x
gzexe
6.3
KB
-rwxr-xr-x
gzip
95.21
KB
-rwxr-xr-x
h2ph
28.54
KB
-rwxr-xr-x
h2xs
59.44
KB
-rwxr-xr-x
head
46.37
KB
-rwxr-xr-x
hipstopgm
9.87
KB
-rwxr-xr-x
hostid
38.34
KB
-rwxr-xr-x
hostname
26.23
KB
-rwxr-xr-x
htmldoc
413.01
KB
-rwxr-xr-x
i386
26.5
KB
-rwxr-xr-x
icontopbm
9.87
KB
-rwxr-xr-x
iconv
66.41
KB
-rwxr-xr-x
id
46.37
KB
-rwxr-xr-x
identify
14.15
KB
-rwxr-xr-x
identify-im6
14.15
KB
-rwxr-xr-x
identify-im6.q16
14.15
KB
-rwxr-xr-x
ifnames
4.03
KB
-rwxr-xr-x
ilbmtoppm
77.95
KB
-rwxr-xr-x
imagetops
1.21
KB
-rwxr-xr-x
img2webp
46.23
KB
-rwxr-xr-x
imgtoppm
9.87
KB
-rwxr-xr-x
import
14.15
KB
-rwxr-xr-x
import-im6
14.15
KB
-rwxr-xr-x
import-im6.q16
14.15
KB
-rwxr-xr-x
infocmp
62.38
KB
-rwxr-xr-x
infotocap
90.41
KB
-rwxr-xr-x
install
154.41
KB
-rwxr-xr-x
instmodsh
4.27
KB
-rwxr-xr-x
ionice
30.23
KB
-rwxr-xr-x
ipcmk
34.3
KB
-rwxr-xr-x
ipcrm
34.23
KB
-rwxr-xr-x
ipcs
66.23
KB
-rwxr-xr-x
irb
507
B
-rwxr-xr-x
irb2.7
507
B
-rwxr-xr-x
ischroot
14.2
KB
-rwxr-xr-x
isql
91.54
KB
-rwxr-xr-x
iusql
65.4
KB
-rwxr-xr-x
java
14.19
KB
-rwxr-xr-x
jexec
14.18
KB
-rwxr-xr-x
jjs
14.23
KB
-rwxr-xr-x
join
54.37
KB
-rwxr-xr-x
jpegexiforient
14.15
KB
-rwxr-xr-x
jpegoptim
38.89
KB
-rwxr-xr-x
jpegtopnm
29.95
KB
-rwxr-xr-x
jpegtran
46.15
KB
-rwxr-xr-x
json_pp
4.56
KB
-rwxr-xr-x
kbxutil
174.97
KB
-rwxr-xr-x
keytool
14.2
KB
-rwxr-xr-x
kill
30.23
KB
-rwxr-xr-x
last
50.23
KB
-rwxr-xr-x
lastb
50.23
KB
-rwxr-xr-x
lastlog
31.66
KB
-rwxr-xr-x
lcf
7.6
KB
-rwxr-xr-x
ld
1.65
MB
-rwxr-xr-x
ld.bfd
1.65
MB
-rwxr-xr-x
ld.gold
2.21
MB
-rwxr-xr-x
ldd
5.3
KB
-rwxr-xr-x
lddtree
6.34
KB
-rwxr-xr-x
leaftoppm
9.87
KB
-rwxr-xr-x
less
175.84
KB
-rwxr-xr-x
lessecho
14.31
KB
-rwxr-xr-x
lessfile
8.36
KB
-rwxr-xr-x
lesskey
23.72
KB
-rwxr-xr-x
lesspipe
8.36
KB
-rwxr-xr-x
libnetcfg
15.41
KB
-rwxr-xr-x
libtoolize
128.25
KB
-rwxr-xr-x
link
38.34
KB
-rwxr-xr-x
linux32
26.5
KB
-rwxr-xr-x
linux64
26.5
KB
-rwxr-xr-x
lispmtopgm
9.87
KB
-rwxr-xr-x
ln
74.38
KB
-rwxr-xr-x
locale
57.56
KB
-rwxr-xr-x
locale-check
14.16
KB
-rwxr-xr-x
localedef
326.96
KB
-rwxr-xr-x
logger
50.82
KB
-rwxr-xr-x
login
55.77
KB
-rwxr-xr-x
logname
38.34
KB
-rwxr-xr-x
ls
138.81
KB
-rwxr-xr-x
lsattr
14.31
KB
-rwxr-xr-x
lsblk
130.23
KB
-rwxr-xr-x
lscpu
98.23
KB
-rwxr-xr-x
lsipc
94.23
KB
-rwxr-xr-x
lslocks
38.55
KB
-rwxr-xr-x
lslogins
66.23
KB
-rwxr-xr-x
lsmem
66.23
KB
-rwxr-xr-x
lsns
50.23
KB
-rwxr-xr-x
lspgpot
1.06
KB
-rwxr-xr-x
lstmeval
118.35
KB
-rwxr-xr-x
lstmtraining
130.35
KB
-rwxr-xr-x
lzcat
78.5
KB
-rwxr-xr-x
lzcmp
6.48
KB
-rwxr-xr-x
lzdiff
6.48
KB
-rwxr-xr-x
lzegrep
5.76
KB
-rwxr-xr-x
lzfgrep
5.76
KB
-rwxr-xr-x
lzgrep
5.76
KB
-rwxr-xr-x
lzless
1.76
KB
-rwxr-xr-x
lzma
78.5
KB
-rwxr-xr-x
lzmainfo
14.23
KB
-rwxr-xr-x
lzmore
2.11
KB
-rwxr-xr-x
m4
158.45
KB
-rwxr-xr-x
macptopbm
9.87
KB
-rwxr-xr-x
make
225.55
KB
-rwxr-xr-x
make-first-existing-target
4.79
KB
-rwxr-xr-x
man
320
B
-rwxr-xr-x
mawk
158.74
KB
-rwxr-xr-x
mcookie
34.3
KB
-rwxr-xr-x
md5sum
46.37
KB
-rwxr-xr-x
md5sum.textutils
46.37
KB
-rwxr-xr-x
mdatopbm
9.87
KB
-rwxr-xr-x
mdsearch
86.3
KB
-rwxr-xr-x
merge_unicharsets
14.23
KB
-rwxr-xr-x
mesa-overlay-control.py
5.67
KB
-rwxr-xr-x
mesg
14.23
KB
-rwxr-xr-x
mftraining
118.35
KB
-rwxr-xr-x
mgrtopbm
9.87
KB
-rwxr-xr-x
migrate-pubring-from-classic-g...
2.99
KB
-rwxr-xr-x
mkdir
86.34
KB
-rwxr-xr-x
mkfifo
66.34
KB
-rwxr-xr-x
mknod
70.34
KB
-rwxr-xr-x
mktemp
46.34
KB
-rwxr-xr-x
mlock
14.15
KB
-rwxr-sr-x
mogrify
14.15
KB
-rwxr-xr-x
mogrify-im6
14.15
KB
-rwxr-xr-x
mogrify-im6.q16
14.15
KB
-rwxr-xr-x
montage
14.15
KB
-rwxr-xr-x
montage-im6
14.15
KB
-rwxr-xr-x
montage-im6.q16
14.15
KB
-rwxr-xr-x
more
42.15
KB
-rwxr-xr-x
mount
54.23
KB
-rwsr-xr-x
mountpoint
14.23
KB
-rwxr-xr-x
mtrace
6.35
KB
-rwxr-xr-x
mtvtoppm
9.87
KB
-rwxr-xr-x
mv
146.38
KB
-rwxr-xr-x
myisam_ftdump
6.58
MB
-rwxr-xr-x
mysql
7.33
MB
-rwxr-xr-x
mysql_config_editor
6.31
MB
-rwxr-xr-x
mysqladmin
7.17
MB
-rwxr-xr-x
mysqlanalyze
7.18
MB
-rwxr-xr-x
mysqlcheck
7.18
MB
-rwxr-xr-x
mysqldump
7.25
MB
-rwxr-xr-x
mysqldumpslow
7.54
KB
-rwxr-xr-x
mysqlimport
7.17
MB
-rwxr-xr-x
mysqloptimize
7.18
MB
-rwxr-xr-x
mysqlpump
7.6
MB
-rwxr-xr-x
mysqlrepair
7.18
MB
-rwxr-xr-x
mysqlreport
38.1
KB
-rwxr-xr-x
mysqlshow
7.17
MB
-rwxr-xr-x
mysqlslap
7.18
MB
-rwxr-xr-x
namei
34.23
KB
-rwxr-xr-x
nawk
158.74
KB
-rwxr-xr-x
nc
42.64
KB
-rwxr-xr-x
nc.openbsd
42.64
KB
-rwxr-xr-x
neotoppm
9.87
KB
-rwxr-xr-x
net
975.24
KB
-rwxr-xr-x
netcat
42.64
KB
-rwxr-xr-x
newgrp
43.73
KB
-rwsr-xr-x
nice
42.34
KB
-rwxr-xr-x
nisdomainname
26.23
KB
-rwxr-xr-x
nl
42.43
KB
-rwxr-xr-x
nm
51.43
KB
-rwxr-xr-x
nmblookup
146.47
KB
-rwxr-xr-x
node
115.88
MB
-rwxr-xr-x
nodejs
115.88
MB
-rwxr-xr-x
nohup
42.34
KB
-rwxr-xr-x
npm
54
B
-rwxr-xr-x
nproc
42.34
KB
-rwxr-xr-x
npx
2.85
KB
-rwxr-xr-x
nsenter
34.43
KB
-rwxr-xr-x
numfmt
66.4
KB
-rwxr-xr-x
objcopy
182.48
KB
-rwxr-xr-x
objdump
392.83
KB
-rwxr-xr-x
od
70.37
KB
-rwxr-xr-x
odbcinst
43.52
KB
-rwxr-xr-x
openssl
735.68
KB
-rwxr-xr-x
optipng
94.11
KB
-rwxr-xr-x
pack200
14.2
KB
-rwxr-xr-x
pager
175.84
KB
-rwxr-xr-x
palmtopnm
17.87
KB
-rwxr-xr-x
pamcut
13.87
KB
-rwxr-xr-x
pamdeinterlace
9.87
KB
-rwxr-xr-x
pamdice
9.87
KB
-rwxr-xr-x
pamfile
9.87
KB
-rwxr-xr-x
pamoil
9.87
KB
-rwxr-xr-x
pamstack
9.87
KB
-rwxr-xr-x
pamstretch
13.87
KB
-rwxr-xr-x
pamstretch-gen
1.31
KB
-rwxr-xr-x
paperconf
13.99
KB
-rwxr-xr-x
partx
118.23
KB
-rwxr-xr-x
passwd
66.61
KB
-rwsr-xr-x
paste
42.37
KB
-rwxr-xr-x
patch
190.52
KB
-rwxr-xr-x
pathchk
38.34
KB
-rwxr-xr-x
pbmclean
9.87
KB
-rwxr-xr-x
pbmlife
9.87
KB
-rwxr-xr-x
pbmmake
9.87
KB
-rwxr-xr-x
pbmmask
9.87
KB
-rwxr-xr-x
pbmpage
9.87
KB
-rwxr-xr-x
pbmpscale
9.98
KB
-rwxr-xr-x
pbmreduce
9.87
KB
-rwxr-xr-x
pbmtext
9.87
KB
-rwxr-xr-x
pbmtextps
13.87
KB
-rwxr-xr-x
pbmto10x
9.87
KB
-rwxr-xr-x
pbmtoascii
10.14
KB
-rwxr-xr-x
pbmtoatk
9.87
KB
-rwxr-xr-x
pbmtobbnbg
9.87
KB
-rwxr-xr-x
pbmtocmuwm
9.87
KB
-rwxr-xr-x
pbmtoepsi
9.87
KB
-rwxr-xr-x
pbmtoepson
9.87
KB
-rwxr-xr-x
pbmtog3
12.98
KB
-rwxr-xr-x
pbmtogem
9.87
KB
-rwxr-xr-x
pbmtogo
9.87
KB
-rwxr-xr-x
pbmtoicon
9.87
KB
-rwxr-xr-x
pbmtolj
13.88
KB
-rwxr-xr-x
pbmtomacp
9.87
KB
-rwxr-xr-x
pbmtomda
9.87
KB
-rwxr-xr-x
pbmtomgr
9.87
KB
-rwxr-xr-x
pbmtonokia
9.87
KB
-rwxr-xr-x
pbmtopgm
9.87
KB
-rwxr-xr-x
pbmtopi3
9.87
KB
-rwxr-xr-x
pbmtoplot
9.87
KB
-rwxr-xr-x
pbmtoppa
33.88
KB
-rwxr-xr-x
pbmtopsg3
11.51
KB
-rwxr-xr-x
pbmtoptx
9.87
KB
-rwxr-xr-x
pbmtowbmp
9.87
KB
-rwxr-xr-x
pbmtox10bm
9.87
KB
-rwxr-xr-x
pbmtoxbm
9.87
KB
-rwxr-xr-x
pbmtoybm
9.87
KB
-rwxr-xr-x
pbmtozinc
9.87
KB
-rwxr-xr-x
pbmupc
17.87
KB
-rwxr-xr-x
pcxtoppm
17.87
KB
-rwxr-xr-x
pdb2
45.02
KB
-rwxr-xr-x
pdb2.7
45.02
KB
-rwxr-xr-x
pdb3
61.27
KB
-rwxr-xr-x
pdb3.8
61.27
KB
-rwxr-xr-x
pdf2dsc
698
B
-rwxr-xr-x
pdf2ps
909
B
-rwxr-xr-x
pdftk
21.92
MB
-rwxr-xr-x
perl
3.32
MB
-rwxr-xr-x
perl5.30-x86_64-linux-gnu
14.3
KB
-rwxr-xr-x
perl5.30.0
3.32
MB
-rwxr-xr-x
perlbug
45.28
KB
-rwxr-xr-x
perldoc
125
B
-rwxr-xr-x
perlivp
10.61
KB
-rwxr-xr-x
perlthanks
45.28
KB
-rwxr-xr-x
pf2afm
498
B
-rwxr-xr-x
pfbtopfa
516
B
-rwxr-xr-x
pgmbentley
5.87
KB
-rwxr-xr-x
pgmcrater
13.9
KB
-rwxr-xr-x
pgmedge
9.87
KB
-rwxr-xr-x
pgmenhance
9.87
KB
-rwxr-xr-x
pgmhist
9.87
KB
-rwxr-xr-x
pgmkernel
9.87
KB
-rwxr-xr-x
pgmnoise
9.87
KB
-rwxr-xr-x
pgmnorm
9.87
KB
-rwxr-xr-x
pgmoil
9.87
KB
-rwxr-xr-x
pgmramp
9.87
KB
-rwxr-xr-x
pgmslice
9.87
KB
-rwxr-xr-x
pgmtexture
25.87
KB
-rwxr-xr-x
pgmtofs
9.87
KB
-rwxr-xr-x
pgmtolispm
9.87
KB
-rwxr-xr-x
pgmtopbm
16.29
KB
-rwxr-xr-x
pgmtoppm
9.87
KB
-rwxr-xr-x
pgrep
30.24
KB
-rwxr-xr-x
pi1toppm
9.87
KB
-rwxr-xr-x
pi3topbm
9.87
KB
-rwxr-xr-x
piconv
8.16
KB
-rwxr-xr-x
pidof
26.38
KB
-rwxr-xr-x
pidproxy
393
B
-rwxr-xr-x
pinentry
66.64
KB
-rwxr-xr-x
pinentry-curses
66.64
KB
-rwxr-xr-x
pinky
42.37
KB
-rwxr-xr-x
pip
365
B
-rwxr-xr-x
pip3
367
B
-rwxr-xr-x
pjtoppm
13.88
KB
-rwxr-xr-x
pkill
30.24
KB
-rwxr-xr-x
pl2pm
4.43
KB
-rwxr-xr-x
pldd
22.37
KB
-rwxr-xr-x
pmap
34.24
KB
-rwxr-xr-x
pngcrush
115.39
KB
-rwxr-xr-x
pngout
88.63
KB
-rwxr-xr-x
pngquant
38.07
KB
-rwxr-xr-x
pngtopnm
21.95
KB
-rwxr-xr-x
pnmalias
13.87
KB
-rwxr-xr-x
pnmarith
9.87
KB
-rwxr-xr-x
pnmcat
9.87
KB
-rwxr-xr-x
pnmcolormap
13.87
KB
-rwxr-xr-x
pnmcomp
9.87
KB
-rwxr-xr-x
pnmconvol
37.87
KB
-rwxr-xr-x
pnmcrop
13.87
KB
-rwxr-xr-x
pnmcut
13.87
KB
-rwxr-xr-x
pnmdepth
9.87
KB
-rwxr-xr-x
pnmenlarge
9.87
KB
-rwxr-xr-x
pnmfile
9.87
KB
-rwxr-xr-x
pnmflip
9.87
KB
-rwxr-xr-x
pnmgamma
13.87
KB
-rwxr-xr-x
pnmhisteq
9.87
KB
-rwxr-xr-x
pnmhistmap
9.88
KB
-rwxr-xr-x
pnmindex
4.49
KB
-rwxr-xr-x
pnminterp
13.87
KB
-rwxr-xr-x
pnminterp-gen
1.31
KB
-rwxr-xr-x
pnminvert
9.87
KB
-rwxr-xr-x
pnmmargin
1.73
KB
-rwxr-xr-x
pnmmontage
13.88
KB
-rwxr-xr-x
pnmnlfilt
21.93
KB
-rwxr-xr-x
pnmnoraw
9.87
KB
-rwxr-xr-x
pnmnorm
9.87
KB
-rwxr-xr-x
pnmpad
9.87
KB
-rwxr-xr-x
pnmpaste
9.87
KB
-rwxr-xr-x
pnmpsnr
9.87
KB
-rwxr-xr-x
pnmquant
3.13
KB
-rwxr-xr-x
pnmremap
17.87
KB
-rwxr-xr-x
pnmrotate
13.87
KB
-rwxr-xr-x
pnmscale
17.87
KB
-rwxr-xr-x
pnmscalefixed
13.87
KB
-rwxr-xr-x
pnmshear
9.87
KB
-rwxr-xr-x
pnmsmooth
9.87
KB
-rwxr-xr-x
pnmsplit
9.87
KB
-rwxr-xr-x
pnmtile
9.87
KB
-rwxr-xr-x
pnmtoddif
13.87
KB
-rwxr-xr-x
pnmtofiasco
199.9
KB
-rwxr-xr-x
pnmtofits
9.87
KB
-rwxr-xr-x
pnmtojpeg
17.87
KB
-rwxr-xr-x
pnmtopalm
17.87
KB
-rwxr-xr-x
pnmtoplainpnm
9.87
KB
-rwxr-xr-x
pnmtopng
29.93
KB
-rwxr-xr-x
pnmtops
17.87
KB
-rwxr-xr-x
pnmtorast
9.87
KB
-rwxr-xr-x
pnmtorle
38.15
KB
-rwxr-xr-x
pnmtosgi
13.87
KB
-rwxr-xr-x
pnmtosir
9.87
KB
-rwxr-xr-x
pnmtotiff
17.87
KB
-rwxr-xr-x
pnmtotiffcmyk
17.87
KB
-rwxr-xr-x
pnmtoxwd
9.87
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
3.86
KB
-rwxr-xr-x
podchecker
3.57
KB
-rwxr-xr-x
podselect
2.47
KB
-rwxr-xr-x
pphs
404
B
-rwxr-xr-x
ppm3d
13.87
KB
-rwxr-xr-x
ppmbrighten
9.87
KB
-rwxr-xr-x
ppmchange
9.87
KB
-rwxr-xr-x
ppmcie
26.04
KB
-rwxr-xr-x
ppmcolormask
9.87
KB
-rwxr-xr-x
ppmcolors
9.87
KB
-rwxr-xr-x
ppmdim
9.87
KB
-rwxr-xr-x
ppmdist
9.87
KB
-rwxr-xr-x
ppmdither
9.87
KB
-rwxr-xr-x
ppmfade
11.39
KB
-rwxr-xr-x
ppmflash
9.87
KB
-rwxr-xr-x
ppmforge
21.88
KB
-rwxr-xr-x
ppmhist
9.87
KB
-rwxr-xr-x
ppmlabel
9.87
KB
-rwxr-xr-x
ppmmake
9.87
KB
-rwxr-xr-x
ppmmix
9.87
KB
-rwxr-xr-x
ppmnorm
9.87
KB
-rwxr-xr-x
ppmntsc
13.88
KB
-rwxr-xr-x
ppmpat
21.87
KB
-rwxr-xr-x
ppmquant
17.87
KB
-rwxr-xr-x
ppmquantall
2.02
KB
-rwxr-xr-x
ppmqvga
13.87
KB
-rwxr-xr-x
ppmrainbow
1.67
KB
-rwxr-xr-x
ppmrelief
9.87
KB
-rwxr-xr-x
ppmshadow
6.67
KB
-rwxr-xr-x
ppmshift
9.87
KB
-rwxr-xr-x
ppmspread
9.87
KB
-rwxr-xr-x
ppmtoacad
14.72
KB
-rwxr-xr-x
ppmtobmp
13.92
KB
-rwxr-xr-x
ppmtoeyuv
9.87
KB
-rwxr-xr-x
ppmtogif
17.88
KB
-rwxr-xr-x
ppmtoicr
9.87
KB
-rwxr-xr-x
ppmtoilbm
37.96
KB
-rwxr-xr-x
ppmtojpeg
17.87
KB
-rwxr-xr-x
ppmtoleaf
9.87
KB
-rwxr-xr-x
ppmtolj
9.87
KB
-rwxr-xr-x
ppmtomap
81
B
-rwxr-xr-x
ppmtomitsu
17.87
KB
-rwxr-xr-x
ppmtompeg
549.78
KB
-rwxr-xr-x
ppmtoneo
9.87
KB
-rwxr-xr-x
ppmtopcx
13.87
KB
-rwxr-xr-x
ppmtopgm
9.87
KB
-rwxr-xr-x
ppmtopi1
9.87
KB
-rwxr-xr-x
ppmtopict
9.87
KB
-rwxr-xr-x
ppmtopj
9.87
KB
-rwxr-xr-x
ppmtopuzz
9.87
KB
-rwxr-xr-x
ppmtorgb3
9.87
KB
-rwxr-xr-x
ppmtosixel
9.87
KB
-rwxr-xr-x
ppmtotga
13.87
KB
-rwxr-xr-x
ppmtouil
9.87
KB
-rwxr-xr-x
ppmtowinicon
17.89
KB
-rwxr-xr-x
ppmtoxpm
13.87
KB
-rwxr-xr-x
ppmtoyuv
9.87
KB
-rwxr-xr-x
ppmtoyuvsplit
9.87
KB
-rwxr-xr-x
ppmtv
9.87
KB
-rwxr-xr-x
pr
74.43
KB
-rwxr-xr-x
print
18.05
KB
-rwxr-xr-x
printafm
395
B
-rwxr-xr-x
printenv
38.34
KB
-rwxr-xr-x
printf
58.34
KB
-rwxr-xr-x
prlimit
38.74
KB
-rwxr-xr-x
prove
13.33
KB
-rwxr-xr-x
ps
134.46
KB
-rwxr-xr-x
ps2ascii
631
B
-rwxr-xr-x
ps2epsi
2.69
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
psidtopgm
9.87
KB
-rwxr-xr-x
pspax
50.41
KB
-rwxr-xr-x
pstopnm
17.87
KB
-rwxr-xr-x
ptar
3.47
KB
-rwxr-xr-x
ptardiff
2.57
KB
-rwxr-xr-x
ptargrep
4.29
KB
-rwxr-xr-x
ptx
78.4
KB
-rwxr-xr-x
pwd
42.34
KB
-rwxr-xr-x
pwdx
14.23
KB
-rwxr-xr-x
py3clean
7.63
KB
-rwxr-xr-x
py3compile
11.84
KB
-rwxr-xr-x
py3versions
11.44
KB
-rwxr-xr-x
pyclean
4.03
KB
-rwxr-xr-x
pycompile
11.62
KB
-rwxr-xr-x
pydoc2
79
B
-rwxr-xr-x
pydoc2.7
79
B
-rwxr-xr-x
pydoc3
79
B
-rwxr-xr-x
pydoc3.8
79
B
-rwxr-xr-x
pygettext2
21.56
KB
-rwxr-xr-x
pygettext2.7
21.56
KB
-rwxr-xr-x
pygettext3
21.03
KB
-rwxr-xr-x
pygettext3.8
21.03
KB
-rwxr-xr-x
python
3.49
MB
-rwxr-xr-x
python2
3.49
MB
-rwxr-xr-x
python2.7
3.49
MB
-rwxr-xr-x
python3
5.24
MB
-rwxr-xr-x
python3-config
3.17
KB
-rwxr-xr-x
python3.8
5.24
MB
-rwxr-xr-x
python3.8-config
3.17
KB
-rwxr-xr-x
pyversions
14.76
KB
-rwxr-xr-x
qrttoppm
9.87
KB
-rwxr-xr-x
qt-faststart
18.15
KB
-rwxr-xr-x
racc2.7
586
B
-rwxr-xr-x
racc2y2.7
590
B
-rwxr-xr-x
rake
510
B
-rwxr-xr-x
ranlib
66.46
KB
-rwxr-xr-x
rasttopnm
13.87
KB
-rwxr-xr-x
rawtopgm
9.87
KB
-rwxr-xr-x
rawtoppm
9.87
KB
-rwxr-xr-x
rbash
1.13
MB
-rwxr-xr-x
rcp
114.3
KB
-rwxr-xr-x
rdjpgcom
14.15
KB
-rwxr-xr-x
rdoc
513
B
-rwxr-xr-x
rdoc2.7
513
B
-rwxr-xr-x
readelf
642.93
KB
-rwxr-xr-x
readlink
50.34
KB
-rwxr-xr-x
realpath
50.37
KB
-rwxr-xr-x
rename.ul
22.23
KB
-rwxr-xr-x
renice
14.23
KB
-rwxr-xr-x
reset
30.31
KB
-rwxr-xr-x
resizepart
62.23
KB
-rwxr-xr-x
rev
14.23
KB
-rwxr-xr-x
rgb3toppm
9.87
KB
-rwxr-xr-x
rgrep
30
B
-rwxr-xr-x
ri
509
B
-rwxr-xr-x
ri2.7
509
B
-rwxr-xr-x
rletopnm
34.12
KB
-rwxr-xr-x
rlogin
774.95
KB
-rwxr-xr-x
rm
70.37
KB
-rwxr-xr-x
rmdir
46.34
KB
-rwxr-xr-x
rmid
14.2
KB
-rwxr-xr-x
rmiregistry
14.21
KB
-rwxr-xr-x
rpcclient
1.32
MB
-rwxr-xr-x
rpcgen
98.69
KB
-rwxr-xr-x
rsh
774.95
KB
-rwxr-xr-x
ruby
14.15
KB
-rwxr-xr-x
ruby2.7
14.15
KB
-rwxr-xr-x
run-mailcap
18.05
KB
-rwxr-xr-x
run-parts
26.51
KB
-rwxr-xr-x
runcon
38.34
KB
-rwxr-xr-x
samba-regedit
111.24
KB
-rwxr-xr-x
samba-tool
1.52
KB
-rwxr-xr-x
savelog
10.24
KB
-rwxr-xr-x
sbigtopgm
9.96
KB
-rwxr-xr-x
scanelf
106.41
KB
-rwxr-xr-x
scanmacho
38.41
KB
-rwxr-xr-x
scp
114.3
KB
-rwxr-xr-x
script
54.23
KB
-rwxr-xr-x
scriptreplay
30.23
KB
-rwxr-xr-x
sdiff
50.09
KB
-rwxr-xr-x
sed
118.45
KB
-rwxr-xr-x
see
18.05
KB
-rwxr-xr-x
select-editor
2.38
KB
-rwxr-xr-x
sensible-browser
1.2
KB
-rwxr-xr-x
sensible-editor
1.14
KB
-rwxr-xr-x
sensible-pager
452
B
-rwxr-xr-x
seq
50.34
KB
-rwxr-xr-x
set_unicharset_properties
174.35
KB
-rwxr-xr-x
setarch
26.5
KB
-rwxr-xr-x
setpriv
46.23
KB
-rwxr-xr-x
setsid
14.23
KB
-rwxr-xr-x
setterm
46.23
KB
-rwxr-xr-x
sftp
166.51
KB
-rwxr-xr-x
sg
43.73
KB
-rwsr-xr-x
sgitopnm
13.87
KB
-rwxr-xr-x
sh
126.77
KB
-rwxr-xr-x
sha1sum
50.37
KB
-rwxr-xr-x
sha224sum
58.37
KB
-rwxr-xr-x
sha256sum
58.37
KB
-rwxr-xr-x
sha384sum
66.37
KB
-rwxr-xr-x
sha512sum
66.37
KB
-rwxr-xr-x
shapeclustering
102.35
KB
-rwxr-xr-x
shasum
9.74
KB
-rwxr-xr-x
shred
62.37
KB
-rwxr-xr-x
shuf
58.34
KB
-rwxr-xr-x
sirtopnm
9.87
KB
-rwxr-xr-x
size
34.45
KB
-rwxr-xr-x
skill
30.23
KB
-rwxr-xr-x
slabtop
22.23
KB
-rwxr-xr-x
sldtoppm
17.94
KB
-rwxr-xr-x
sleep
38.34
KB
-rwxr-xr-x
slogin
774.95
KB
-rwxr-xr-x
smbcacls
54.38
KB
-rwxr-xr-x
smbclient
154.48
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
smbtar
4.81
KB
-rwxr-xr-x
smbtree
22.3
KB
-rwxr-xr-x
snice
30.23
KB
-rwxr-xr-x
sort
114.63
KB
-rwxr-xr-x
sotruss
4.21
KB
-rwxr-xr-x
spctoppm
9.87
KB
-rwxr-xr-x
splain
18.7
KB
-rwxr-xr-x
split
58.77
KB
-rwxr-xr-x
sprof
34.37
KB
-rwxr-xr-x
sputoppm
9.87
KB
-rwxr-xr-x
ssh
774.95
KB
-rwxr-xr-x
ssh-add
362.28
KB
-rwxr-xr-x
ssh-agent
342.29
KB
-rwxr-sr-x
ssh-argv0
1.42
KB
-rwxr-xr-x
ssh-copy-id
10.41
KB
-rwxr-xr-x
ssh-keygen
466.3
KB
-rwxr-xr-x
ssh-keyscan
454.3
KB
-rwxr-xr-x
st4topgm
9.87
KB
-rwxr-xr-x
stat
86.37
KB
-rwxr-xr-x
stdbuf
50.34
KB
-rwxr-xr-x
stream
14.15
KB
-rwxr-xr-x
stream-im6
14.15
KB
-rwxr-xr-x
stream-im6.q16
14.15
KB
-rwxr-xr-x
strings
34.66
KB
-rwxr-xr-x
strip
182.48
KB
-rwxr-xr-x
stty
82.37
KB
-rwxr-xr-x
su
66.23
KB
-rwsr-xr-x
sum
46.34
KB
-rwxr-xr-x
supervisorctl
403
B
-rwxr-xr-x
supervisord
399
B
-rwxr-xr-x
symcryptrun
123.03
KB
-rwxr-xr-x
symtree
1.98
KB
-rwxr-xr-x
sync
38.34
KB
-rwxr-xr-x
tabs
18.3
KB
-rwxr-xr-x
tac
42.34
KB
-rwxr-xr-x
tail
70.4
KB
-rwxr-xr-x
tar
437.61
KB
-rwxr-xr-x
taskset
34.23
KB
-rwxr-xr-x
tee
42.37
KB
-rwxr-xr-x
tempfile
14.02
KB
-rwxr-xr-x
tesseract
34.23
KB
-rwxr-xr-x
test
54.34
KB
-rwxr-xr-x
testparm
42.3
KB
-rwxr-xr-x
text2image
210.38
KB
-rwxr-xr-x
tgatoppm
13.87
KB
-rwxr-xr-x
thinkjettopbm
17.88
KB
-rwxr-xr-x
tic
90.41
KB
-rwxr-xr-x
tifftopnm
17.87
KB
-rwxr-xr-x
timeout
42.77
KB
-rwxr-xr-x
tload
22.24
KB
-rwxr-xr-x
toe
22.3
KB
-rwxr-xr-x
top
126.05
KB
-rwxr-xr-x
touch
98.37
KB
-rwxr-xr-x
tput
26.34
KB
-rwxr-xr-x
tr
50.34
KB
-rwxr-xr-x
true
38.34
KB
-rwxr-xr-x
truncate
42.34
KB
-rwxr-xr-x
tset
30.31
KB
-rwxr-xr-x
tsort
42.34
KB
-rwxr-xr-x
tty
38.34
KB
-rwxr-xr-x
tzselect
15.02
KB
-rwxr-xr-x
ucf
39.73
KB
-rwxr-xr-x
ucfq
18.91
KB
-rwxr-xr-x
ucfr
10.47
KB
-rwxr-xr-x
umount
38.23
KB
-rwsr-xr-x
uname
38.37
KB
-rwxr-xr-x
uncompress
2.29
KB
-rwxr-xr-x
unexpand
42.37
KB
-rwxr-xr-x
unicharset_extractor
114.31
KB
-rwxr-xr-x
uniq
50.37
KB
-rwxr-xr-x
unlink
38.34
KB
-rwxr-xr-x
unlzma
78.5
KB
-rwxr-xr-x
unpack200
113.02
KB
-rwxr-xr-x
unshare
42.43
KB
-rwxr-xr-x
unxz
78.5
KB
-rwxr-xr-x
unzip
182.29
KB
-rwxr-xr-x
unzipsfx
82.27
KB
-rwxr-xr-x
update-alternatives
54.41
KB
-rwxr-xr-x
update-mime-database
58.37
KB
-rwxr-xr-x
uptime
14.23
KB
-rwxr-xr-x
users
38.34
KB
-rwxr-xr-x
utmpdump
30.23
KB
-rwxr-xr-x
vdir
138.81
KB
-rwxr-xr-x
vmstat
38.25
KB
-rwxr-xr-x
vwebp
30.15
KB
-rwxr-xr-x
w
22.23
KB
-rwxr-xr-x
w.procps
22.23
KB
-rwxr-xr-x
wall
34.23
KB
-rwxr-xr-x
watch
26.57
KB
-rwxr-xr-x
watchgnupg
18.3
KB
-rwxr-xr-x
wbmptopbm
9.87
KB
-rwxr-xr-x
wc
46.34
KB
-rwxr-xr-x
wdctl
34.23
KB
-rwxr-xr-x
webpinfo
30.23
KB
-rwxr-xr-x
webpmux
34.23
KB
-rwxr-xr-x
wget
531.71
KB
-rwxr-xr-x
whereis
34.66
KB
-rwxr-xr-x
which
946
B
-rwxr-xr-x
who
58.37
KB
-rwxr-xr-x
whoami
38.34
KB
-rwxr-xr-x
winicontoppm
17.87
KB
-rwxr-xr-x
wordlist2dawg
22.31
KB
-rwxr-xr-x
wrjpgcom
14.15
KB
-rwxr-xr-x
x86_64
26.5
KB
-rwxr-xr-x
x86_64-linux-gnu-addr2line
34.7
KB
-rwxr-xr-x
x86_64-linux-gnu-ar
66.43
KB
-rwxr-xr-x
x86_64-linux-gnu-as
680.3
KB
-rwxr-xr-x
x86_64-linux-gnu-c++filt
30.27
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp
1.1
MB
-rwxr-xr-x
x86_64-linux-gnu-cpp-9
1.1
MB
-rwxr-xr-x
x86_64-linux-gnu-dwp
1.95
MB
-rwxr-xr-x
x86_64-linux-gnu-elfedit
42.67
KB
-rwxr-xr-x
x86_64-linux-gnu-g++
1.1
MB
-rwxr-xr-x
x86_64-linux-gnu-g++-9
1.1
MB
-rwxr-xr-x
x86_64-linux-gnu-gcc
1.1
MB
-rwxr-xr-x
x86_64-linux-gnu-gcc-9
1.1
MB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar
34.63
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar-9
34.63
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm
34.63
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm-9
34.63
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib
34.63
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib-9
34.63
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov
656.23
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-9
656.23
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump
528.13
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump-9
528.13
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool
544.2
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool-9
544.2
KB
-rwxr-xr-x
x86_64-linux-gnu-gold
2.21
MB
-rwxr-xr-x
x86_64-linux-gnu-gprof
99.88
KB
-rwxr-xr-x
x86_64-linux-gnu-ld
1.65
MB
-rwxr-xr-x
x86_64-linux-gnu-ld.bfd
1.65
MB
-rwxr-xr-x
x86_64-linux-gnu-ld.gold
2.21
MB
-rwxr-xr-x
x86_64-linux-gnu-nm
51.43
KB
-rwxr-xr-x
x86_64-linux-gnu-objcopy
182.48
KB
-rwxr-xr-x
x86_64-linux-gnu-objdump
392.83
KB
-rwxr-xr-x
x86_64-linux-gnu-python3-confi...
3.17
KB
-rwxr-xr-x
x86_64-linux-gnu-python3.8-con...
3.17
KB
-rwxr-xr-x
x86_64-linux-gnu-ranlib
66.46
KB
-rwxr-xr-x
x86_64-linux-gnu-readelf
642.93
KB
-rwxr-xr-x
x86_64-linux-gnu-size
34.45
KB
-rwxr-xr-x
x86_64-linux-gnu-strings
34.66
KB
-rwxr-xr-x
x86_64-linux-gnu-strip
182.48
KB
-rwxr-xr-x
xargs
74.37
KB
-rwxr-xr-x
xauth
54.97
KB
-rwxr-xr-x
xbmtopbm
9.87
KB
-rwxr-xr-x
xdg-user-dir
234
B
-rwxr-xr-x
xdg-user-dirs-update
26.07
KB
-rwxr-xr-x
ximtoppm
13.87
KB
-rwxr-xr-x
xpmtoppm
17.92
KB
-rwxr-xr-x
xsubpp
5.04
KB
-rwxr-xr-x
xvminitoppm
9.87
KB
-rwxr-xr-x
xwdtopnm
17.87
KB
-rwxr-xr-x
xz
78.5
KB
-rwxr-xr-x
xzcat
78.5
KB
-rwxr-xr-x
xzcmp
6.48
KB
-rwxr-xr-x
xzdiff
6.48
KB
-rwxr-xr-x
xzegrep
5.76
KB
-rwxr-xr-x
xzfgrep
5.76
KB
-rwxr-xr-x
xzgrep
5.76
KB
-rwxr-xr-x
xzless
1.76
KB
-rwxr-xr-x
xzmore
2.11
KB
-rwxr-xr-x
y2racc2.7
590
B
-rwxr-xr-x
ybmtopbm
9.87
KB
-rwxr-xr-x
yes
38.34
KB
-rwxr-xr-x
ypdomainname
26.23
KB
-rwxr-xr-x
yuvsplittoppm
9.87
KB
-rwxr-xr-x
yuvtoppm
9.87
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
zeisstopnm
9.87
KB
-rwxr-xr-x
zfgrep
29
B
-rwxr-xr-x
zforce
2.03
KB
-rwxr-xr-x
zgrep
7.91
KB
-rwxr-xr-x
zip
211.19
KB
-rwxr-xr-x
zipcloak
91.62
KB
-rwxr-xr-x
zipdetails
49.53
KB
-rwxr-xr-x
zipgrep
2.88
KB
-rwxr-xr-x
zipinfo
182.29
KB
-rwxr-xr-x
zipnote
87.39
KB
-rwxr-xr-x
zipsplit
91.39
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
Delete
Unzip
Zip
${this.title}
Close
Code Editor : deb-systemd-helper
#!/usr/bin/perl # vim:ts=4:sw=4:expandtab # © 2013-2014 Michael Stapelberg <stapelberg@debian.org> # # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # * Neither the name of Michael Stapelberg nor the # names of contributors may be used to endorse or promote products # derived from this software without specific prior written permission. # . # THIS SOFTWARE IS PROVIDED BY Michael Stapelberg ''AS IS'' AND ANY # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL Michael Stapelberg BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. =head1 NAME deb-systemd-helper - subset of systemctl for machines not running systemd =head1 SYNOPSIS B<deb-systemd-helper> enable | disable | purge | mask | unmask | is-enabled | was-enabled | debian-installed | update-state | reenable S<I<unit file> ...> =head1 DESCRIPTION B<deb-systemd-helper> is a Debian-specific helper script which re-implements the enable, disable, is-enabled and reenable commands from systemctl. The "enable" action will only be performed once (when first installing the package). On the first "enable", a state file is created which will be deleted upon "purge". The "mask" action will keep state on whether the service was enabled/disabled before and will properly return to that state on "unmask". The "was-enabled" action is not present in systemctl, but is required in Debian so that we can figure out whether a service was enabled before we installed an updated service file. See http://bugs.debian.org/717603 for details. The "debian-installed" action is also not present in systemctl. It returns 0 if the state file of at least one of the given units is present. The "update-state" action is also not present in systemctl. It updates B<deb-systemd-helper>'s state file, removing obsolete entries (e.g. service files that are no longer shipped by the package) and adding new entries (e.g. new service files shipped by the package) without enabling them. B<deb-systemd-helper> is intended to be used from maintscripts to enable systemd unit files. It is specifically NOT intended to be used interactively by users. Instead, users should run systemd and use systemctl, or not bother about the systemd enabled state in case they are not running systemd. =head1 ENVIRONMENT =over 4 =item B<_DEB_SYSTEMD_HELPER_DEBUG> If you export _DEB_SYSTEMD_HELPER_DEBUG=1, deb-systemd-helper will print debug messages to stderr (thus visible in dpkg runs). Please include these when filing a bugreport. =back =cut use strict; use warnings; use File::Path qw(make_path); # in core since Perl 5.001 use File::Basename; # in core since Perl 5 use File::Temp qw(tempfile); # in core since Perl 5.6.1 use Getopt::Long; # in core since Perl 5 # Make Data::Dumper::Dumper available if present (not present on systems that # only have perl-base, not perl). eval { require Data::Dumper; } or *Data::Dumper::Dumper = sub { "no Data::Dumper" }; use constant { SYSTEM_INSTANCE_ENABLED_STATE_DIR => '/var/lib/systemd/deb-systemd-helper-enabled', USER_INSTANCE_ENABLED_STATE_DIR => '/var/lib/systemd/deb-systemd-user-helper-enabled', SYSTEM_INSTANCE_MASKED_STATE_DIR => '/var/lib/systemd/deb-systemd-helper-masked', USER_INSTANCE_MASKED_STATE_DIR => '/var/lib/systemd/deb-systemd-user-helper-masked', }; my $quiet = 0; my $instance = 'system'; my $enabled_state_dir = SYSTEM_INSTANCE_ENABLED_STATE_DIR; my $masked_state_dir = SYSTEM_INSTANCE_MASKED_STATE_DIR; # Globals are bad, but in this specific case, it really makes things much # easier to write and understand. my $changed_sth; my $has_systemctl = -x "/bin/systemctl"; sub error { print STDERR "$0: error: @_\n"; exit (1); } sub debug { my ($msg) = @_; return if !defined($ENV{_DEB_SYSTEMD_HELPER_DEBUG}) || $ENV{_DEB_SYSTEMD_HELPER_DEBUG} != 1; print STDERR "(deb-systemd-helper DEBUG) $msg\n"; } sub is_purge { return (defined($ENV{_DEB_SYSTEMD_HELPER_PURGE}) && $ENV{_DEB_SYSTEMD_HELPER_PURGE} == 1) } sub find_unit { my ($scriptname) = @_; my $service_path = $scriptname; if (-f "/etc/systemd/$instance/$scriptname") { $service_path = "/etc/systemd/$instance/$scriptname"; } elsif (-f "/lib/systemd/$instance/$scriptname") { $service_path = "/lib/systemd/$instance/$scriptname"; } elsif (-f "/usr/lib/systemd/$instance/$scriptname") { $service_path = "/usr/lib/systemd/$instance/$scriptname"; } return $service_path; } sub dsh_state_path { my ($scriptname) = @_; return $enabled_state_dir . '/' . basename($scriptname) . '.dsh-also'; } sub state_file_entries { my ($dsh_state) = @_; debug "Reading state file $dsh_state"; my @entries; if (open(my $fh, '<', $dsh_state)) { @entries = map { chomp; $_ } <$fh>; close($fh); } return @entries; } # Writes $service_link into $dsh_state unless it’s already in there. sub record_in_statefile { my ($dsh_state, $service_link) = @_; # Appending a newline makes the following code simpler; we can skip # chomp()ing and appending newlines in every print. $service_link .= "\n"; make_path(dirname($dsh_state)); my $line_exists; my ($outfh, $tmpname) = tempfile('.stateXXXXX', DIR => dirname($dsh_state), SUFFIX => '.tmp', UNLINK => 0); chmod(0644, $tmpname); if (-e $dsh_state) { open(my $infh, '<', $dsh_state) or error("unable to read from $dsh_state"); while (<$infh>) { $line_exists = 1 if $_ eq $service_link; print $outfh $_; } close($infh); } print $outfh $service_link unless $line_exists; close($outfh); debug "Renaming temp file $tmpname to state file $dsh_state"; rename($tmpname, $dsh_state) or error("Unable to move $tmpname to $dsh_state"); } # Gets the transitive closure of links, i.e. all links that need to be created # when enabling this service file. Not straight-forward because service files # can refer to other service files using Also=. sub get_link_closure { my ($scriptname, $service_path) = @_; my @links; my $unit_name = basename($service_path); # The keys parsed from the unit file below can only have unit names # as values. Since unit names can't have whitespace in systemd, # simply use split and strip any leading/trailing quotes. See # systemd-escape(1) for examples of valid unit names. open my $fh, '<', $service_path or error("unable to read $service_path"); while (my $line = <$fh>) { chomp($line); my $service_link; if ($line =~ /^\s*(WantedBy|RequiredBy)=(.+)$/i) { for my $value (split(/\s+/, $2)) { $value =~ s/^(["'])(.*)\g1$/$2/; my $wants_dir = "/etc/systemd/$instance/$value"; $wants_dir .= '.wants' if $1 eq 'WantedBy'; $wants_dir .= '.requires' if $1 eq 'RequiredBy'; push @links, { dest => $service_path, src => "$wants_dir/$scriptname" }; } } if ($line =~ /^\s*Also=(.+)$/i) { for my $value (split(/\s+/, $1)) { $value =~ s/^(["'])(.*)\g1$/$2/; if ($value ne $unit_name) { push @links, get_link_closure($value, find_unit($value)); } } } if ($line =~ /^\s*Alias=(.+)$/i) { for my $value (split(/\s+/, $1)) { $value =~ s/^(["'])(.*)\g1$/$2/; if ($value ne $unit_name) { push @links, { dest => $service_path, src => "/etc/systemd/$instance/$1" }; } } } } close($fh); return @links; } sub all_links_installed { my ($scriptname, $service_path) = @_; my @links = get_link_closure($scriptname, $service_path); my @missing_links = grep { ! -l $_->{src} } @links; return (@missing_links == 0); } sub no_link_installed { my ($scriptname, $service_path) = @_; my @links = get_link_closure($scriptname, $service_path); my @existing_links = grep { -l $_->{src} } @links; return (@existing_links == 0); } sub enable { my ($scriptname, $service_path) = @_; if ($has_systemctl) { # We use 'systemctl preset' on the initial installation only. # On upgrade, we manually add the missing symlinks only if the # service already has some links installed. Using 'systemctl # preset' allows administrators and downstreams to alter the # enable policy using systemd-native tools. my $create_links = 0; if (debian_installed($scriptname)) { $create_links = 1 unless no_link_installed($scriptname, $service_path); } else { debug "Using systemctl preset to enable $scriptname"; system("/bin/systemctl", $instance eq "user" ? "--global" : "--system", "--preset-mode=enable-only", "preset", $scriptname) == 0 or error("systemctl preset failed on $scriptname: $!"); } make_systemd_links($scriptname, $service_path, create_links => $create_links); } else { # We create all the symlinks ourselves make_systemd_links($scriptname, $service_path); } } sub make_systemd_links { my ($scriptname, $service_path, %opts) = @_; $opts{'create_links'} //= 1; my $dsh_state = dsh_state_path($scriptname); my @links = get_link_closure($scriptname, $service_path); for my $link (@links) { my $service_path = $link->{dest}; my $service_link = $link->{src}; record_in_statefile($dsh_state, $service_link); my $statefile = $service_link; $statefile =~ s,^/etc/systemd/$instance/,$enabled_state_dir/,; next if -e $statefile; if ($opts{'create_links'} && ! -l $service_link) { make_path(dirname($service_link)); symlink($service_path, $service_link) or error("unable to link $service_link to $service_path: $!"); $changed_sth = 1; } # Store the fact that we ran enable for this service_path, # so that we can skip enable the next time. # This allows us to call deb-systemd-helper unconditionally # and still only enable unit files on the initial installation # of a package. make_path(dirname($statefile)); open(my $fh, '>>', $statefile); close($fh); } } # In contrary to make_systemd_links(), which only modifies the state file in an # append-only fashion, update_state() can also remove entries from the state # file. # # The distinction is important because update_state() should only be called # when the unit file(s) are guaranteed to be on-disk, e.g. on package updates, # but not on package removals. sub update_state { my ($scriptname, $service_path) = @_; my $dsh_state = dsh_state_path($scriptname); my @links = get_link_closure($scriptname, $service_path); debug "Old state file contents: " . Data::Dumper::Dumper([ state_file_entries($dsh_state) ]); make_path(dirname($dsh_state)); my ($outfh, $tmpname) = tempfile('.stateXXXXX', DIR => dirname($dsh_state), SUFFIX => '.tmp', UNLINK => 0); chmod(0644, $tmpname); for my $link (@links) { print $outfh $link->{src} . "\n"; } close($outfh); debug "Renaming temp file $tmpname to state file $dsh_state"; rename($tmpname, $dsh_state) or error("Unable to move $tmpname to $dsh_state"); debug "New state file contents: " . Data::Dumper::Dumper([ state_file_entries($dsh_state) ]); } sub was_enabled { my ($scriptname) = @_; my @entries = state_file_entries(dsh_state_path($scriptname)); debug "Contents: " . Data::Dumper::Dumper(\@entries); for my $link (@entries) { if (! -l $link) { debug "Link $link is missing, considering $scriptname was-disabled."; return 0; } } debug "All links present, considering $scriptname was-enabled."; return 1; } sub debian_installed { my ($scriptname) = @_; return -f dsh_state_path($scriptname); } sub remove_links { my ($service_path) = @_; my $dsh_state = dsh_state_path($service_path); my @entries = state_file_entries($dsh_state); debug "Contents: " . Data::Dumper::Dumper(\@entries); if (is_purge()) { unlink($dsh_state) if -e $dsh_state; } # Also disable all the units which were enabled when this one was enabled. for my $link (@entries) { # Delete the corresponding state file: # • Always when purging # • If the user did not disable (= link still exists) the service. # If we don’t do this, the link will be deleted a few lines down, # but not re-created when re-installing the package. if (is_purge() || -l $link) { my $link_state = $link; $link_state =~ s,^/etc/systemd/$instance/,$enabled_state_dir/,; unlink($link_state); } next unless -l $link; unlink($link) or print STDERR "$0: unable to remove '$link': $!\n"; $changed_sth = 1; } # Read $service_path, recurse for all Also= units. # This might not work when $service_path was already deleted, # i.e. after apt-get remove. In this case we just return # silently in order to not confuse the user about whether # disabling actually worked or not — the case is handled by # dh_installsystemd generating an appropriate disable # command by parsing the service file at debhelper-time. open(my $fh, '<', $service_path) or return; while (my $line = <$fh>) { chomp($line); my $service_link; if ($line =~ /^\s*Also=(.+)$/i) { remove_links(find_unit($1)); } } close($fh); } # Recursively deletes a directory structure, if all (!) components are empty, # e.g. to clean up after purging. sub rmdir_if_empty { my ($dir) = @_; debug "rmdir_if_empty $dir"; rmdir_if_empty($_) for (grep { -d } <$dir/*>); if (!rmdir($dir)) { debug "rmdir($dir) failed ($!)"; } } sub mask_service { my ($scriptname, $service_path) = @_; my $mask_link = "/etc/systemd/$instance/" . basename($service_path); if (-e $mask_link) { # If the link already exists, don’t do anything. return if -l $mask_link && readlink($mask_link) eq '/dev/null'; # If the file already exists, the user most likely copied the .service # file to /etc/ to change it in some way. In this case we don’t need to # mask the .service in the first place, since it will not be removed by # dpkg. debug "$mask_link already exists, not masking."; return; } make_path(dirname($mask_link)); # clean up after possible leftovers from Alias= to self (LP#1439793) unlink($mask_link); symlink('/dev/null', $mask_link) or error("unable to link $mask_link to /dev/null: $!"); $changed_sth = 1; my $statefile = $mask_link; $statefile =~ s,^/etc/systemd/$instance/,$masked_state_dir/,; # Store the fact that we masked this service, so that we can unmask it on # installation time. We cannot unconditionally unmask because that would # interfere with the user’s decision to mask a service. make_path(dirname($statefile)); open(my $fh, '>>', $statefile); close($fh); } sub unmask_service { my ($scriptname, $service_path) = @_; my $mask_link = "/etc/systemd/$instance/" . basename($service_path); # Not masked? Nothing to do. return unless -e $mask_link; if (! -l $mask_link || readlink($mask_link) ne '/dev/null') { debug "Not unmasking $mask_link because it is not a link to /dev/null"; return; } my $statefile = $mask_link; $statefile =~ s,^/etc/systemd/$instance/,$masked_state_dir/,; if (! -e $statefile) { debug "Not unmasking $mask_link because the state file $statefile does not exist"; return; } unlink($mask_link) or error("unable to remove $mask_link: $!"); $changed_sth = 1; unlink($statefile); } my $result = GetOptions( "quiet" => \$quiet, "user" => sub { $instance = 'user'; }, "system" => sub { $instance = 'system'; }, # default ); if ($instance eq 'user') { debug "is user unit = yes"; $enabled_state_dir = USER_INSTANCE_ENABLED_STATE_DIR; $masked_state_dir = USER_INSTANCE_MASKED_STATE_DIR; } my $action = shift; if (!defined($action)) { # Called without arguments. Explain that this script should not be run interactively. print "$0 is a program which should be called by dpkg maintscripts only.\n"; print "Please do not run it interactively, ever. Also see the manpage deb-systemd-helper(1).\n"; exit 0; } if (!$ENV{DPKG_MAINTSCRIPT_PACKAGE}) { print STDERR "$0 was not called from dpkg. Exiting.\n"; exit 1; } if ($action eq 'purge') { $ENV{_DEB_SYSTEMD_HELPER_PURGE} = 1; $action = 'disable'; } debug "is purge = " . (is_purge() ? "yes" : "no"); my $rc = 0; if ($action eq 'is-enabled' || $action eq 'was-enabled' || $action eq 'debian-installed') { $rc = 1; } for my $scriptname (@ARGV) { my $service_path = find_unit($scriptname); debug "action = $action, scriptname = $scriptname, service_path = $service_path"; if ($action eq 'is-enabled') { my $enabled = all_links_installed($scriptname, $service_path); print STDERR ($enabled ? "enabled\n" : "disabled\n") unless $quiet; $rc = 0 if $enabled; } # was-enabled is the same as is-enabled, but only considers links recorded # in the state file. This is useful after package upgrades, to determine # whether the unit file was enabled before upgrading, even if the unit file # has changed and is not entirely enabled currently (due to a new Alias= # line for example). # # If all machines were running systemd, this issue would not be present # because is-enabled would query systemd, which would not have picked up # the new unit file yet. if ($action eq 'was-enabled') { my $enabled = was_enabled($scriptname); print STDERR ($enabled ? "enabled\n" : "disabled\n") unless $quiet; $rc = 0 if $enabled; } if ($action eq 'update-state') { update_state($scriptname, $service_path); } if ($action eq 'debian-installed') { $rc = 0 if debian_installed($scriptname); } if ($action eq 'reenable') { remove_links($service_path); make_systemd_links($scriptname, $service_path); } if ($action eq 'disable') { remove_links($service_path); # Clean up the state dir if it’s empty, or at least clean up all empty # subdirectories. Necessary to cleanly pass a piuparts run. rmdir_if_empty(SYSTEM_INSTANCE_ENABLED_STATE_DIR); rmdir_if_empty(USER_INSTANCE_ENABLED_STATE_DIR); # Same with directories below /etc/systemd, where we create symlinks. # If systemd is not installed (and no other package shipping service # files), this would make piuparts fail, too. rmdir_if_empty($_) for (grep { -d } </etc/systemd/system/*>); rmdir_if_empty($_) for (grep { -d } </etc/systemd/user/*>); } if ($action eq 'enable') { enable($scriptname, $service_path); } if ($action eq 'mask') { mask_service($scriptname, $service_path); } if ($action eq 'unmask') { unmask_service($scriptname, $service_path); # Clean up the state dir if it’s empty, or at least clean up all empty # subdirectories. Necessary to cleanly pass a piuparts run. rmdir_if_empty('/var/lib/systemd/deb-systemd-helper-masked'); } } # If we changed anything and this machine is running systemd, tell # systemd to reload so that it will immediately pick up our # changes. if ($changed_sth && $instance eq 'system' && -d "/run/systemd/system") { system("systemctl", "daemon-reload"); } exit $rc; =head1 AUTHOR Michael Stapelberg <stapelberg@debian.org> =cut
Close