Linux web-conference.aiou.edu.pk 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64
Apache/2.4.41 (Ubuntu)
: 172.16.50.247 | : 3.137.184.92
Cant Read [ /etc/named.conf ]
7.4.3-4ubuntu2.28
www-data
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
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
bin /
[ HOME SHELL ]
Name
Size
Permission
Action
NF
963
B
-rwxr-xr-x
VGAuthService
138.53
KB
-rwxr-xr-x
[
58.34
KB
-rwxr-xr-x
aa-enabled
30.52
KB
-rwxr-xr-x
aa-exec
34.52
KB
-rwxr-xr-x
ab
58.34
KB
-rwxr-xr-x
add-apt-repository
7.24
KB
-rwxr-xr-x
addpart
30.23
KB
-rwxr-xr-x
apport-bug
2.5
KB
-rwxr-xr-x
apport-cli
13.05
KB
-rwxr-xr-x
apport-collect
2.5
KB
-rwxr-xr-x
apport-unpack
2.02
KB
-rwxr-xr-x
apropos
55.21
KB
-rwxr-xr-x
apt
18.38
KB
-rwxr-xr-x
apt-add-repository
7.24
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-extracttemplates
26.47
KB
-rwxr-xr-x
apt-ftparchive
274.47
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
apt-sortpkgs
46.39
KB
-rwxr-xr-x
arch
38.37
KB
-rwxr-xr-x
at
54.26
KB
-rwsr-sr-x
atq
54.26
KB
-rwsr-sr-x
atrm
54.26
KB
-rwsr-sr-x
automat-visualize3
402
B
-rwxr-xr-x
awk
686.47
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
batch
152
B
-rwxr-xr-x
bc
98.7
KB
-rwxr-xr-x
boltctl
150.82
KB
-rwxr-xr-x
bootctl
62.34
KB
-rwxr-xr-x
bsd-from
14.15
KB
-rwxr-xr-x
bsd-write
14.15
KB
-rwxr-sr-x
btrfs
800.09
KB
-rwxr-xr-x
btrfs-convert
455.53
KB
-rwxr-xr-x
btrfs-find-root
423.59
KB
-rwxr-xr-x
btrfs-image
451.53
KB
-rwxr-xr-x
btrfs-map-logical
431.53
KB
-rwxr-xr-x
btrfs-select-super
431.53
KB
-rwxr-xr-x
btrfsck
800.09
KB
-rwxr-xr-x
btrfstune
427.53
KB
-rwxr-xr-x
bunzip2
38.23
KB
-rwxr-xr-x
busctl
86.34
KB
-rwxr-xr-x
busybox
2.07
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.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_rehash
6.65
KB
-rwxr-xr-x
cal
36.95
KB
-rwxr-xr-x
calendar
34.63
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
catman
38.69
KB
-rwxr-xr-x
cautious-launcher
853
B
-rwxr-xr-x
cftp3
380
B
-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
check-language-support
2.71
KB
-rwxr-xr-x
checkgid
14.15
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
chvt
14.07
KB
-rwxr-xr-x
ckbcomp
146.39
KB
-rwxr-xr-x
ckeygen3
386
B
-rwxr-xr-x
cksum
38.34
KB
-rwxr-xr-x
clear
14.31
KB
-rwxr-xr-x
clear_console
14.23
KB
-rwxr-xr-x
cloud-id
396
B
-rwxr-xr-x
cloud-init
400
B
-rwxr-xr-x
cloud-init-per
2.06
KB
-rwxr-xr-x
cmp
50.09
KB
-rwxr-xr-x
codepage
13.99
KB
-rwxr-xr-x
col
18.15
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.15
KB
-rwxr-xr-x
colrm
14.15
KB
-rwxr-xr-x
column
14.16
KB
-rwxr-xr-x
comm
42.37
KB
-rwxr-xr-x
compose
18.05
KB
-rwxr-xr-x
conch3
382
B
-rwxr-xr-x
corelist
14.73
KB
-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
cpio
161.63
KB
-rwxr-xr-x
crontab
42.7
KB
-rwxr-sr-x
csplit
54.37
KB
-rwxr-xr-x
ctail
960
B
-rwxr-xr-x
ctstat
30.51
KB
-rwxr-xr-x
curl
234.23
KB
-rwxr-xr-x
cut
46.37
KB
-rwxr-xr-x
cvtsudoers
266.7
KB
-rwxr-xr-x
dash
126.77
KB
-rwxr-xr-x
date
106.37
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
dbxtool
26.3
KB
-rwxr-xr-x
dd
78.38
KB
-rwxr-xr-x
deallocvt
14.07
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
debian-distro-info
22.89
KB
-rwxr-xr-x
delpart
30.23
KB
-rwxr-xr-x
delv
44.88
KB
-rwxr-xr-x
df
90.95
KB
-rwxr-xr-x
dfu-tool
106.3
KB
-rwxr-xr-x
dh_bash-completion
2.39
KB
-rwxr-xr-x
diff
214.34
KB
-rwxr-xr-x
diff3
66.21
KB
-rwxr-xr-x
dig
146.84
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
distro-info
22.89
KB
-rwxr-xr-x
dmesg
82.46
KB
-rwxr-xr-x
dnsdomainname
26.23
KB
-rwxr-xr-x
do-release-upgrade
9.99
KB
-rwxr-xr-x
domainname
26.23
KB
-rwxr-xr-x
dpkg
302.68
KB
-rwxr-xr-x
dpkg-deb
174.54
KB
-rwxr-xr-x
dpkg-divert
150.59
KB
-rwxr-xr-x
dpkg-maintscript-helper
20.03
KB
-rwxr-xr-x
dpkg-query
162.59
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
du
106.37
KB
-rwxr-xr-x
dumpkeys
174.52
KB
-rwxr-xr-x
eatmydata
2.74
KB
-rwxr-xr-x
ec2metadata
7.12
KB
-rwxr-xr-x
echo
38.34
KB
-rwxr-xr-x
ed
54.2
KB
-rwxr-xr-x
edit
18.05
KB
-rwxr-xr-x
editor
312.63
KB
-rwxr-xr-x
egrep
28
B
-rwxr-xr-x
eject
34.84
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
envsubst
42.23
KB
-rwxr-xr-x
eqn
201.5
KB
-rwxr-xr-x
ex
2.78
MB
-rwxr-xr-x
expand
42.37
KB
-rwxr-xr-x
expiry
30.58
KB
-rwxr-sr-x
expr
54.34
KB
-rwxr-xr-x
factor
78.37
KB
-rwxr-xr-x
faillog
22.59
KB
-rwxr-xr-x
fallocate
34.23
KB
-rwxr-xr-x
false
38.34
KB
-rwxr-xr-x
fcgistarter
14.15
KB
-rwxr-xr-x
fgconsole
14.07
KB
-rwxr-xr-x
fgrep
28
B
-rwxr-xr-x
file
26.47
KB
-rwxr-xr-x
finalrd
2.1
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
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
from
14.15
KB
-rwxr-xr-x
ftp
106.7
KB
-rwxr-xr-x
funzip
26.15
KB
-rwxr-xr-x
fuser
39.24
KB
-rwxr-xr-x
fusermount
38.23
KB
-rwsr-xr-x
fwupdagent
186.3
KB
-rwxr-xr-x
fwupdate
82.43
KB
-rwxr-xr-x
fwupdmgr
186.3
KB
-rwxr-xr-x
fwupdtool
378.92
KB
-rwxr-xr-x
gapplication
22.38
KB
-rwxr-xr-x
gawk
686.47
KB
-rwxr-xr-x
gdbus
50.38
KB
-rwxr-xr-x
geqn
201.5
KB
-rwxr-xr-x
getconf
34.29
KB
-rwxr-xr-x
getent
38.65
KB
-rwxr-xr-x
getkeycodes
14.07
KB
-rwxr-xr-x
getopt
22.23
KB
-rwxr-xr-x
gettext
42.23
KB
-rwxr-xr-x
gettext.sh
4.52
KB
-rwxr-xr-x
ginstall-info
115.24
KB
-rwxr-xr-x
gio
90.4
KB
-rwxr-xr-x
gio-querymodules
14.3
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
glib-compile-schemas
50.38
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
874.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
gpic
216.34
KB
-rwxr-xr-x
grep
194.47
KB
-rwxr-xr-x
gresource
22.3
KB
-rwxr-xr-x
groff
121.53
KB
-rwxr-xr-x
grog
2.71
KB
-rwxr-xr-x
grops
181.94
KB
-rwxr-xr-x
grotty
129.56
KB
-rwxr-xr-x
groups
38.34
KB
-rwxr-xr-x
growpart
23.95
KB
-rwxr-xr-x
grub-editenv
248.02
KB
-rwxr-xr-x
grub-file
780.38
KB
-rwxr-xr-x
grub-fstest
901.84
KB
-rwxr-xr-x
grub-glue-efi
243.86
KB
-rwxr-xr-x
grub-kbdcomp
1.64
KB
-rwxr-xr-x
grub-menulst2cfg
228.13
KB
-rwxr-xr-x
grub-mkfont
268.42
KB
-rwxr-xr-x
grub-mkimage
348.95
KB
-rwxr-xr-x
grub-mklayout
252.17
KB
-rwxr-xr-x
grub-mknetdir
401.56
KB
-rwxr-xr-x
grub-mkpasswd-pbkdf2
248.2
KB
-rwxr-xr-x
grub-mkrelpath
239.58
KB
-rwxr-xr-x
grub-mkrescue
954.3
KB
-rwxr-xr-x
grub-mkstandalone
477.86
KB
-rwxr-xr-x
grub-mount
728.8
KB
-rwxr-xr-x
grub-ntldr-img
38.24
KB
-rwxr-xr-x
grub-render-label
800.75
KB
-rwxr-xr-x
grub-script-check
271.7
KB
-rwxr-xr-x
grub-syslinux2cfg
741.27
KB
-rwxr-xr-x
gsettings
30.38
KB
-rwxr-xr-x
gtbl
138.51
KB
-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
hd
34.25
KB
-rwxr-xr-x
head
46.37
KB
-rwxr-xr-x
helpztags
2.46
KB
-rwxr-xr-x
hexdump
34.25
KB
-rwxr-xr-x
host
118.78
KB
-rwxr-xr-x
hostid
38.34
KB
-rwxr-xr-x
hostname
26.23
KB
-rwxr-xr-x
hostnamectl
26.22
KB
-rwxr-xr-x
htcacheclean
38.16
KB
-rwxr-xr-x
htdbm
26.15
KB
-rwxr-xr-x
htdigest
14.15
KB
-rwxr-xr-x
htop
184.87
KB
-rwxr-xr-x
htpasswd
26.15
KB
-rwxr-xr-x
hwe-support-status
10.58
KB
-rwxr-xr-x
i386
26.5
KB
-rwxr-xr-x
ibd2sdi
6.48
MB
-rwxr-xr-x
iconv
66.41
KB
-rwxr-xr-x
id
46.37
KB
-rwxr-xr-x
info
309.74
KB
-rwxr-xr-x
infobrowser
309.74
KB
-rwxr-xr-x
infocmp
62.38
KB
-rwxr-xr-x
infotocap
90.41
KB
-rwxr-xr-x
innochecksum
6.37
MB
-rwxr-xr-x
install
154.41
KB
-rwxr-xr-x
install-info
115.24
KB
-rwxr-xr-x
instmodsh
4.27
KB
-rwxr-xr-x
ionice
30.23
KB
-rwxr-xr-x
ip
597.62
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
iptables-xml
96.97
KB
-rwxr-xr-x
ischroot
14.2
KB
-rwxr-xr-x
iscsiadm
394.1
KB
-rwxr-xr-x
join
54.37
KB
-rwxr-xr-x
journalctl
78.24
KB
-rwxr-xr-x
json_pp
4.56
KB
-rwxr-xr-x
jsondiff
1004
B
-rwxr-xr-x
jsonpatch
3.58
KB
-rwxr-xr-x
jsonpatch-jsondiff
1004
B
-rwxr-xr-x
jsonpointer
1.79
KB
-rwxr-xr-x
jsonschema
397
B
-rwxr-xr-x
kbd_mode
14.07
KB
-rwxr-xr-x
kbdinfo
14.07
KB
-rwxr-xr-x
kbxutil
174.97
KB
-rwxr-xr-x
keep-one-running
3.51
KB
-rwxr-xr-x
kernel-install
5.07
KB
-rwxr-xr-x
keyctl
42.38
KB
-rwxr-xr-x
keyring
385
B
-rwxr-xr-x
kill
30.23
KB
-rwxr-xr-x
killall
31.27
KB
-rwxr-xr-x
kmod
170.34
KB
-rwxr-xr-x
kmodsign
22.29
KB
-rwxr-xr-x
landscape-sysinfo
624
B
-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
ldd
5.3
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
lexgrog
98.95
KB
-rwxr-xr-x
libnetcfg
15.41
KB
-rwxr-xr-x
link
38.34
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.5
KB
-rwxr-xr-x
linux64
26.5
KB
-rwxr-xr-x
ln
74.38
KB
-rwxr-xr-x
lnstat
30.51
KB
-rwxr-xr-x
loadkeys
210.57
KB
-rwxr-xr-x
loadunimap
34.13
KB
-rwxr-xr-x
locale
57.56
KB
-rwxr-xr-x
locale-check
14.16
KB
-rwxr-xr-x
localectl
26.22
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
loginctl
58.34
KB
-rwxr-xr-x
logname
38.34
KB
-rwxr-xr-x
logresolve
14.16
KB
-rwxr-xr-x
look
14.38
KB
-rwxr-xr-x
lorder
2.82
KB
-rwxr-xr-x
lowntfs-3g
118.86
KB
-rwxr-xr-x
ls
138.81
KB
-rwxr-xr-x
lsattr
14.31
KB
-rwxr-xr-x
lsb_release
3.55
KB
-rwxr-xr-x
lsblk
130.23
KB
-rwxr-xr-x
lscpu
98.23
KB
-rwxr-xr-x
lshw
841.2
KB
-rwxr-xr-x
lsinitramfs
706
B
-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
lsmod
170.34
KB
-rwxr-xr-x
lsns
50.23
KB
-rwxr-xr-x
lsof
171.63
KB
-rwxr-xr-x
lspci
91.95
KB
-rwxr-xr-x
lspgpot
1.06
KB
-rwxr-xr-x
lsusb
242.51
KB
-rwxr-xr-x
ltrace
301.33
KB
-rwxr-xr-x
lz4
186.23
KB
-rwxr-xr-x
lz4c
186.23
KB
-rwxr-xr-x
lz4cat
186.23
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
mailmail3
388
B
-rwxr-xr-x
man
116.83
KB
-rwxr-xr-x
man-recode
26.9
KB
-rwxr-xr-x
mandb
139.09
KB
-rwxr-xr-x
manifest
1.9
KB
-rwxr-xr-x
manpath
38.7
KB
-rwxr-xr-x
mapscrn
26.13
KB
-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
mdig
50.4
KB
-rwxr-xr-x
mesg
14.23
KB
-rwxr-xr-x
migrate-pubring-from-classic-g...
2.99
KB
-rwxr-xr-x
miniterm
34.28
KB
-rwxr-xr-x
mk_modmap
15.78
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
mksquashfs
205.96
KB
-rwxr-xr-x
mktemp
46.34
KB
-rwxr-xr-x
mmcli
257.27
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
mt
86.78
KB
-rwxr-xr-x
mt-gnu
86.78
KB
-rwxr-xr-x
mtr
80.25
KB
-rwxr-xr-x
mtr-packet
38.38
KB
-rwxr-xr-x
mv
146.38
KB
-rwxr-xr-x
my_print_defaults
6.29
MB
-rwxr-xr-x
myisam_ftdump
6.58
MB
-rwxr-xr-x
myisamchk
6.69
MB
-rwxr-xr-x
myisamlog
6.53
MB
-rwxr-xr-x
myisampack
6.6
MB
-rwxr-xr-x
mysql
7.33
MB
-rwxr-xr-x
mysql_config_editor
6.31
MB
-rwxr-xr-x
mysql_migrate_keyring
7.24
MB
-rwxr-xr-x
mysql_secure_installation
7.16
MB
-rwxr-xr-x
mysql_ssl_rsa_setup
6.33
MB
-rwxr-xr-x
mysql_tzinfo_to_sql
6.23
MB
-rwxr-xr-x
mysql_upgrade
7.26
MB
-rwxr-xr-x
mysqladmin
7.17
MB
-rwxr-xr-x
mysqlanalyze
7.18
MB
-rwxr-xr-x
mysqlbinlog
7.62
MB
-rwxr-xr-x
mysqlcheck
7.18
MB
-rwxr-xr-x
mysqld_multi
26.73
KB
-rwxr-xr-x
mysqld_safe
28.45
KB
-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
nano
312.63
KB
-rwxr-xr-x
nawk
686.47
KB
-rwxr-xr-x
nc
42.64
KB
-rwxr-xr-x
nc.openbsd
42.64
KB
-rwxr-xr-x
ncal
36.95
KB
-rwxr-xr-x
neqn
913
B
-rwxr-xr-x
netcat
42.64
KB
-rwxr-xr-x
netkit-ftp
106.7
KB
-rwxr-xr-x
netstat
154.58
KB
-rwxr-xr-x
networkctl
74.23
KB
-rwxr-xr-x
networkd-dispatcher
19.71
KB
-rwxr-xr-x
newgrp
43.73
KB
-rwsr-xr-x
ngettext
42.23
KB
-rwxr-xr-x
nice
42.34
KB
-rwxr-xr-x
nisdomainname
26.23
KB
-rwxr-xr-x
nl
42.43
KB
-rwxr-xr-x
nohup
42.34
KB
-rwxr-xr-x
nproc
42.34
KB
-rwxr-xr-x
nroff
3.22
KB
-rwxr-xr-x
nsenter
34.43
KB
-rwxr-xr-x
nslookup
122.81
KB
-rwxr-xr-x
nstat
78.23
KB
-rwxr-xr-x
nsupdate
78.63
KB
-rwxr-xr-x
ntfs-3g
158.89
KB
-rwxr-xr-x
ntfs-3g.probe
14.23
KB
-rwxr-xr-x
ntfscat
34.26
KB
-rwxr-xr-x
ntfscluster
38.26
KB
-rwxr-xr-x
ntfscmp
38.26
KB
-rwxr-xr-x
ntfsdecrypt
50.27
KB
-rwxr-xr-x
ntfsfallocate
38.27
KB
-rwxr-xr-x
ntfsfix
46.27
KB
-rwxr-xr-x
ntfsinfo
58.27
KB
-rwxr-xr-x
ntfsls
35.34
KB
-rwxr-xr-x
ntfsmove
38.26
KB
-rwxr-xr-x
ntfsrecover
118.26
KB
-rwxr-xr-x
ntfssecaudit
94.75
KB
-rwxr-xr-x
ntfstruncate
42.19
KB
-rwxr-xr-x
ntfsusermap
38.18
KB
-rwxr-xr-x
ntfswipe
54.79
KB
-rwxr-xr-x
numfmt
66.4
KB
-rwxr-xr-x
od
70.37
KB
-rwxr-xr-x
oem-getlogs
8.37
KB
-rwxr-xr-x
on_ac_power
2.18
KB
-rwxr-xr-x
openssl
735.68
KB
-rwxr-xr-x
openvt
22.43
KB
-rwxr-xr-x
os-prober
4.44
KB
-rwxr-xr-x
pager
175.84
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
pastebinit
16.13
KB
-rwxr-xr-x
patch
190.52
KB
-rwxr-xr-x
pathchk
38.34
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.27
KB
-rwxr-xr-x
pdb3.8
61.27
KB
-rwxr-xr-x
peekfd
14.15
KB
-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
perror
7.62
MB
-rwxr-xr-x
pftp
106.7
KB
-rwxr-xr-x
pgrep
30.24
KB
-rwxr-xr-x
phar
14.54
KB
-rwxr-xr-x
phar.phar
14.54
KB
-rwxr-xr-x
phar.phar7.4
14.54
KB
-rwxr-xr-x
phar7.4
14.54
KB
-rwxr-xr-x
php
4.56
MB
-rwxr-xr-x
php7.4
4.56
MB
-rwxr-xr-x
pic
216.34
KB
-rwxr-xr-x
pico
312.63
KB
-rwxr-xr-x
piconv
8.16
KB
-rwxr-xr-x
pidof
26.38
KB
-rwxr-xr-x
pinentry
66.64
KB
-rwxr-xr-x
pinentry-curses
66.64
KB
-rwxr-xr-x
ping
71.07
KB
-rwxr-xr-x
ping4
71.07
KB
-rwxr-xr-x
ping6
71.07
KB
-rwxr-xr-x
pinky
42.37
KB
-rwxr-xr-x
pkaction
18.3
KB
-rwxr-xr-x
pkcheck
22.38
KB
-rwxr-xr-x
pkcon
74.3
KB
-rwxr-xr-x
pkexec
30.3
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
plymouth
50.15
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
3.86
KB
-rwxr-xr-x
podchecker
3.57
KB
-rwxr-xr-x
podselect
2.47
KB
-rwxr-xr-x
pollinate
8.54
KB
-rwxr-xr-x
pr
74.43
KB
-rwxr-xr-x
preconv
66.51
KB
-rwxr-xr-x
print
18.05
KB
-rwxr-xr-x
printenv
38.34
KB
-rwxr-xr-x
printerbanner
22.15
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
prtstat
22.23
KB
-rwxr-xr-x
ps
134.46
KB
-rwxr-xr-x
psfaddtable
21.99
KB
-rwxr-xr-x
psfgettable
21.99
KB
-rwxr-xr-x
psfstriptable
21.99
KB
-rwxr-xr-x
psfxtable
21.99
KB
-rwxr-xr-x
pslog
14.15
KB
-rwxr-xr-x
pstree
35.16
KB
-rwxr-xr-x
pstree.x11
35.16
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
purge-old-kernels
1.12
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
pydoc3
79
B
-rwxr-xr-x
pydoc3.8
79
B
-rwxr-xr-x
pygettext3
21.03
KB
-rwxr-xr-x
pygettext3.8
21.03
KB
-rwxr-xr-x
pyhtmlizer3
392
B
-rwxr-xr-x
pyjwt3
372
B
-rwxr-xr-x
python3
5.24
MB
-rwxr-xr-x
python3.8
5.24
MB
-rwxr-xr-x
rbash
1.13
MB
-rwxr-xr-x
rcp
114.3
KB
-rwxr-xr-x
rdma
130.23
KB
-rwxr-xr-x
readlink
50.34
KB
-rwxr-xr-x
realpath
50.37
KB
-rwxr-xr-x
red
89
B
-rwxr-xr-x
rename.ul
22.23
KB
-rwxr-xr-x
renice
14.23
KB
-rwxr-xr-x
rescan-scsi-bus.sh
38.15
KB
-rwxr-xr-x
reset
30.31
KB
-rwxr-xr-x
resizecons
22.13
KB
-rwxr-xr-x
resizepart
62.23
KB
-rwxr-xr-x
resolvectl
126.38
KB
-rwxr-xr-x
rev
14.23
KB
-rwxr-xr-x
rgrep
30
B
-rwxr-xr-x
rlogin
774.95
KB
-rwxr-xr-x
rm
70.37
KB
-rwxr-xr-x
rmdir
46.34
KB
-rwxr-xr-x
rnano
312.63
KB
-rwxr-xr-x
rotatelogs
26.23
KB
-rwxr-xr-x
routef
208
B
-rwxr-xr-x
routel
1.62
KB
-rwxr-xr-x
rpcinfo
34.46
KB
-rwxr-xr-x
rrsync
7.07
KB
-rwxr-xr-x
rsh
774.95
KB
-rwxr-xr-x
rsync
500.77
KB
-rwxr-xr-x
rtstat
30.51
KB
-rwxr-xr-x
run-mailcap
18.05
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.51
KB
-rwxr-xr-x
run-this-one
3.51
KB
-rwxr-xr-x
runcon
38.34
KB
-rwxr-xr-x
rview
2.78
MB
-rwxr-xr-x
rvim
2.78
MB
-rwxr-xr-x
savelog
10.24
KB
-rwxr-xr-x
sbattach
58.48
KB
-rwxr-xr-x
sbkeysync
66.7
KB
-rwxr-xr-x
sbsiglist
58.55
KB
-rwxr-xr-x
sbsign
58.55
KB
-rwxr-xr-x
sbvarsign
66.61
KB
-rwxr-xr-x
sbverify
62.48
KB
-rwxr-xr-x
scp
114.3
KB
-rwxr-xr-x
screen
463.16
KB
-rwxr-xr-x
screendump
13.99
KB
-rwxr-xr-x
script
54.23
KB
-rwxr-xr-x
scriptreplay
30.23
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.77
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
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
setarch
26.5
KB
-rwxr-xr-x
setfont
46.13
KB
-rwxr-xr-x
setkeycodes
14.07
KB
-rwxr-xr-x
setleds
14.05
KB
-rwxr-xr-x
setlogcons
14.07
KB
-rwxr-xr-x
setmetamode
14.1
KB
-rwxr-xr-x
setpci
30.23
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
setupcon
38.31
KB
-rwxr-xr-x
sftp
166.51
KB
-rwxr-xr-x
sg
43.73
KB
-rwsr-xr-x
sg_bg_ctl
14.35
KB
-rwxr-xr-x
sg_compare_and_write
22.76
KB
-rwxr-xr-x
sg_copy_results
23.15
KB
-rwxr-xr-x
sg_dd
50.17
KB
-rwxr-xr-x
sg_decode_sense
22.6
KB
-rwxr-xr-x
sg_emc_trespass
14.15
KB
-rwxr-xr-x
sg_format
35.13
KB
-rwxr-xr-x
sg_get_config
35.24
KB
-rwxr-xr-x
sg_get_lba_status
18.73
KB
-rwxr-xr-x
sg_ident
14.45
KB
-rwxr-xr-x
sg_inq
123.49
KB
-rwxr-xr-x
sg_logs
150.87
KB
-rwxr-xr-x
sg_luns
22.63
KB
-rwxr-xr-x
sg_map
18.15
KB
-rwxr-xr-x
sg_map26
26.55
KB
-rwxr-xr-x
sg_modes
45.62
KB
-rwxr-xr-x
sg_opcodes
34.85
KB
-rwxr-xr-x
sg_persist
35.93
KB
-rwxr-xr-x
sg_prevent
14.35
KB
-rwxr-xr-x
sg_raw
30.66
KB
-rwxr-xr-x
sg_rbuf
22.57
KB
-rwxr-xr-x
sg_rdac
18.16
KB
-rwxr-xr-x
sg_read
26.16
KB
-rwxr-xr-x
sg_read_attr
36.48
KB
-rwxr-xr-x
sg_read_block_limits
14.38
KB
-rwxr-xr-x
sg_read_buffer
26.82
KB
-rwxr-xr-x
sg_read_long
14.54
KB
-rwxr-xr-x
sg_readcap
22.63
KB
-rwxr-xr-x
sg_reassign
14.51
KB
-rwxr-xr-x
sg_referrals
14.51
KB
-rwxr-xr-x
sg_rep_zones
26.59
KB
-rwxr-xr-x
sg_requests
14.57
KB
-rwxr-xr-x
sg_reset
14.51
KB
-rwxr-xr-x
sg_reset_wp
14.45
KB
-rwxr-xr-x
sg_rmsn
14.35
KB
-rwxr-xr-x
sg_rtpg
14.45
KB
-rwxr-xr-x
sg_safte
22.54
KB
-rwxr-xr-x
sg_sanitize
26.85
KB
-rwxr-xr-x
sg_sat_identify
22.57
KB
-rwxr-xr-x
sg_sat_phy_event
18.85
KB
-rwxr-xr-x
sg_sat_read_gplog
18.57
KB
-rwxr-xr-x
sg_sat_set_features
18.54
KB
-rwxr-xr-x
sg_scan
18.16
KB
-rwxr-xr-x
sg_seek
18.73
KB
-rwxr-xr-x
sg_senddiag
27.04
KB
-rwxr-xr-x
sg_ses
119.77
KB
-rwxr-xr-x
sg_ses_microcode
31.23
KB
-rwxr-xr-x
sg_start
18.7
KB
-rwxr-xr-x
sg_stpg
22.57
KB
-rwxr-xr-x
sg_stream_ctl
22.54
KB
-rwxr-xr-x
sg_sync
14.51
KB
-rwxr-xr-x
sg_test_rwbuf
14.45
KB
-rwxr-xr-x
sg_timestamp
18.68
KB
-rwxr-xr-x
sg_turs
14.51
KB
-rwxr-xr-x
sg_unmap
22.6
KB
-rwxr-xr-x
sg_verify
18.73
KB
-rwxr-xr-x
sg_vpd
114.18
KB
-rwxr-xr-x
sg_wr_mode
22.57
KB
-rwxr-xr-x
sg_write_buffer
27.1
KB
-rwxr-xr-x
sg_write_long
14.6
KB
-rwxr-xr-x
sg_write_same
26.76
KB
-rwxr-xr-x
sg_write_verify
22.63
KB
-rwxr-xr-x
sg_write_x
55.45
KB
-rwxr-xr-x
sg_xcopy
42.16
KB
-rwxr-xr-x
sg_zone
14.65
KB
-rwxr-xr-x
sginfo
71.85
KB
-rwxr-xr-x
sgm_dd
34.16
KB
-rwxr-xr-x
sgp_dd
42.16
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
shasum
9.74
KB
-rwxr-xr-x
showconsolefont
18.07
KB
-rwxr-xr-x
showkey
18.07
KB
-rwxr-xr-x
shred
62.37
KB
-rwxr-xr-x
shuf
58.34
KB
-rwxr-xr-x
skill
30.23
KB
-rwxr-xr-x
slabtop
22.23
KB
-rwxr-xr-x
sleep
38.34
KB
-rwxr-xr-x
slogin
774.95
KB
-rwxr-xr-x
snap
16.3
MB
-rwxr-xr-x
snapctl
6.26
MB
-rwxr-xr-x
snapfuse
46.29
KB
-rwxr-xr-x
snice
30.23
KB
-rwxr-xr-x
soelim
46.51
KB
-rwxr-xr-x
sort
114.63
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
splain
18.7
KB
-rwxr-xr-x
split
58.77
KB
-rwxr-xr-x
splitfont
13.99
KB
-rwxr-xr-x
ss
164.84
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-import-id
409
B
-rwxr-xr-x
ssh-import-id-gh
785
B
-rwxr-xr-x
ssh-import-id-lp
785
B
-rwxr-xr-x
ssh-keygen
466.3
KB
-rwxr-xr-x
ssh-keyscan
454.3
KB
-rwxr-xr-x
stat
86.37
KB
-rwxr-xr-x
static-sh
2.07
MB
-rwxr-xr-x
stdbuf
50.34
KB
-rwxr-xr-x
strace
1.51
MB
-rwxr-xr-x
strace-log-merge
1.78
KB
-rwxr-xr-x
stty
82.37
KB
-rwxr-xr-x
su
66.23
KB
-rwsr-xr-x
sudo
162.16
KB
-rwsr-xr-x
sudoedit
162.16
KB
-rwsr-xr-x
sudoreplay
63
KB
-rwxr-xr-x
sum
46.34
KB
-rwxr-xr-x
symcryptrun
123.03
KB
-rwxr-xr-x
sync
38.34
KB
-rwxr-xr-x
systemctl
973.23
KB
-rwxr-xr-x
systemd
1.55
MB
-rwxr-xr-x
systemd-analyze
1.51
MB
-rwxr-xr-x
systemd-ask-password
14.34
KB
-rwxr-xr-x
systemd-cat
18.23
KB
-rwxr-xr-x
systemd-cgls
22.33
KB
-rwxr-xr-x
systemd-cgtop
38.24
KB
-rwxr-xr-x
systemd-delta
26.22
KB
-rwxr-xr-x
systemd-detect-virt
18.22
KB
-rwxr-xr-x
systemd-escape
22.22
KB
-rwxr-xr-x
systemd-hwdb
106.52
KB
-rwxr-xr-x
systemd-id128
22.22
KB
-rwxr-xr-x
systemd-inhibit
22.24
KB
-rwxr-xr-x
systemd-machine-id-setup
26.32
KB
-rwxr-xr-x
systemd-mount
50.45
KB
-rwxr-xr-x
systemd-notify
18.23
KB
-rwxr-xr-x
systemd-path
18.22
KB
-rwxr-xr-x
systemd-resolve
126.38
KB
-rwxr-xr-x
systemd-run
58.42
KB
-rwxr-xr-x
systemd-socket-activate
26.22
KB
-rwxr-xr-x
systemd-stdio-bridge
22.23
KB
-rwxr-xr-x
systemd-sysusers
54.52
KB
-rwxr-xr-x
systemd-tmpfiles
86.41
KB
-rwxr-xr-x
systemd-tty-ask-password-agent
30.22
KB
-rwxr-xr-x
systemd-umount
50.45
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
tbl
138.51
KB
-rwxr-xr-x
tee
42.37
KB
-rwxr-xr-x
telnet
112.67
KB
-rwxr-xr-x
telnet.netkit
112.67
KB
-rwxr-xr-x
tempfile
14.02
KB
-rwxr-xr-x
test
54.34
KB
-rwxr-xr-x
tic
90.41
KB
-rwxr-xr-x
time
14.38
KB
-rwxr-xr-x
timedatectl
46.22
KB
-rwxr-xr-x
timeout
42.77
KB
-rwxr-xr-x
tkconch3
386
B
-rwxr-xr-x
tload
22.24
KB
-rwxr-xr-x
tmux
675.97
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
tracepath
18.15
KB
-rwxr-xr-x
traceroute6
26.15
KB
-rwxr-xr-x
traceroute6.iputils
26.15
KB
-rwxr-xr-x
trial3
382
B
-rwxr-xr-x
troff
735.91
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
twist3
382
B
-rwxr-xr-x
twistd3
384
B
-rwxr-xr-x
tzselect
15.02
KB
-rwxr-xr-x
ua
445
B
-rwxr-xr-x
ubuntu-advantage
445
B
-rwxr-xr-x
ubuntu-bug
2.5
KB
-rwxr-xr-x
ubuntu-core-launcher
151.45
KB
-rwsr-xr-x
ubuntu-distro-info
22.89
KB
-rwxr-xr-x
ubuntu-security-status
23.2
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
udevadm
931.2
KB
-rwxr-xr-x
udisksctl
58.38
KB
-rwxr-xr-x
ul
18.16
KB
-rwxr-xr-x
ulockmgr_server
18.15
KB
-rwxr-xr-x
umount
38.23
KB
-rwsr-xr-x
uname
38.37
KB
-rwxr-xr-x
unattended-upgrade
96.99
KB
-rwxr-xr-x
unattended-upgrades
96.99
KB
-rwxr-xr-x
uncompress
2.29
KB
-rwxr-xr-x
unexpand
42.37
KB
-rwxr-xr-x
unicode_start
2.7
KB
-rwxr-xr-x
unicode_stop
530
B
-rwxr-xr-x
uniq
50.37
KB
-rwxr-xr-x
unlink
38.34
KB
-rwxr-xr-x
unlz4
186.23
KB
-rwxr-xr-x
unlzma
78.5
KB
-rwxr-xr-x
unmkinitramfs
3.59
KB
-rwxr-xr-x
unshare
42.43
KB
-rwxr-xr-x
unsquashfs
112.12
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
upower
22.15
KB
-rwxr-xr-x
uptime
14.23
KB
-rwxr-xr-x
usb-devices
4
KB
-rwxr-xr-x
usbhid-dump
30.38
KB
-rwxr-xr-x
usbreset
14.3
KB
-rwxr-xr-x
users
38.34
KB
-rwxr-xr-x
utmpdump
30.23
KB
-rwxr-xr-x
uuidgen
14.23
KB
-rwxr-xr-x
uuidparse
38.23
KB
-rwxr-xr-x
vcs-run
6.75
KB
-rwxr-xr-x
vdir
138.81
KB
-rwxr-xr-x
vi
2.78
MB
-rwxr-xr-x
view
2.78
MB
-rwxr-xr-x
vigpg
2.58
KB
-rwxr-xr-x
vim
2.78
MB
-rwxr-xr-x
vim.basic
2.78
MB
-rwxr-xr-x
vim.tiny
1.29
MB
-rwxr-xr-x
vimdiff
2.78
MB
-rwxr-xr-x
vimtutor
2.07
KB
-rwxr-xr-x
vm-support
10.37
KB
-rwxr-xr-x
vmhgfs-fuse
54.8
KB
-rwxr-xr-x
vmstat
38.25
KB
-rwxr-xr-x
vmtoolsd
74.56
KB
-rwxr-xr-x
vmware-alias-import
70.53
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
30.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
22.72
KB
-rwxr-xr-x
vmware-xferlogs
56.4
KB
-rwxr-xr-x
volname
14.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
wc
46.34
KB
-rwxr-xr-x
wdctl
34.23
KB
-rwxr-xr-x
wget
531.71
KB
-rwxr-xr-x
whatis
55.21
KB
-rwxr-xr-x
whereis
34.66
KB
-rwxr-xr-x
which
946
B
-rwxr-xr-x
whiptail
34.16
KB
-rwxr-xr-x
who
58.37
KB
-rwxr-xr-x
whoami
38.34
KB
-rwxr-xr-x
wifi-status
2.06
KB
-rwxr-xr-x
write
14.15
KB
-rwxr-sr-x
x86_64
26.5
KB
-rwxr-xr-x
xargs
74.37
KB
-rwxr-xr-x
xauth
54.97
KB
-rwxr-xr-x
xdg-user-dir
234
B
-rwxr-xr-x
xdg-user-dirs-update
26.07
KB
-rwxr-xr-x
xsubpp
5.04
KB
-rwxr-xr-x
xxd
18.27
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
yes
38.34
KB
-rwxr-xr-x
ypdomainname
26.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
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 : ucf
#!/bin/bash # -*- Mode: Sh -*- # updateConfFile.sh --- # Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com ) # Created On : Fri Feb 1 03:41:47 2002 # Created On Node : glaurung.green-gryphon.com # Last Modified By : Manoj Srivastava # Last Modified On : Tue Jun 6 09:48:22 2006 # Last Machine Used: glaurung.internal.golden-gryphon.com # Update Count : 186 # Status : Unknown, Use with caution! # HISTORY : # Description : # # This script attempts to provide conffile like handling for files not # shipped in a Debian package, but handled by the postinst. Using this # script, one may ship a bunch of default cofiguration files somewhere # in /usr (/usr/share/<pkg> is a good location), and maintain files in # /etc. # # The motivation for this script was to provide conffile like handling # for start files for emacs lisp packages (for example, # /etc/emacs21/site-stard.d/50psgml-init.el) These start files are not # shipped with the package, instead, they are installed during the # post installation configuration phase by the script # /usr/lib/emacsen-common/emacs-package-install $package_name. # # This script is meant to be invoked by the packages install script at # /usr/lib/emacsen-common/packages/install/$package_name for each # flavour of installed emacsen by calling it with the proper values of # new file (/usr/share/emacs/site-lisp/<pkg>/<pkg>-init.el), and dest file # (/etc/emacs21/site-stard.d/50<pkg>-init.el)), and it should do the rest. # # make sure we exit on error set -e # set the version and revision progname="$(basename $0)" pversion='Revision: 3.00 ' unset GREP_OPTIONS ###################################################################### ######## ######### ######## Utility functions ######### ######## ######### ###################################################################### setq() { # Variable Value Doc_string if [ "x$2" = "x" ]; then echo >&2 "$progname: Unable to determine $3" exit 1; else if [ "x$VERBOSE" != "x" ]; then echo >&2 "$progname: $3 is $2"; fi eval "$1=\"\$2\""; fi } # Usage: get_file_metadate file_name get_file_metadata() { if [ -e "$1" ]; then # get file modification date without the nanoseconds and timezone info local moddate="$(date +"%F %T" --date $(stat --format '@%Y' "$1"))" # print file_name user.group permissions above_date stat --format "%n %U.%G 0%a $moddate" "$1" else echo "/dev/null" fi } # Runs the diff command with approrpiate arguments # Usage run_diff diff|sdiff diff_opts old_file new_file run_diff() { local diff_cmd="$1" local diff_opt="$2" local old_file="$3" local new_file="$4" # Note: get_file_metadata not in quotes to ignore "\n" characters local old_file_label=$(get_file_metadata "$old_file") local new_file_label=$(get_file_metadata "$new_file") [ -e "$old_file" ] || old_file=/dev/null [ -e "$new_file" ] || new_file=/dev/null if [ "$diff_cmd" = "diff" ] ; then diff "$diff_opt" --label "$old_file_label" "$old_file" \ --label "$new_file_label" "$new_file" || true elif [ "$diff_cmd" = "sdiff" ] ; then # unfortunatelly the sdiff command does not support --label option local out="$(sdiff "$diff_opt" "$old_file" "$new_file")" || true [ -z "$out" ] || printf "Old file: %s\nNew file: %s\n\n%s" \ "$old_file_label" "$new_file_label" "$out" else echo "Unknown diff command: $diff_cmd" >&2 exit 1 fi } # Use debconf to show the differences # Usage: show_diff actual_file_differences file_stat_differences show_diff() { if [ -z "$1" ]; then DIFF="There are no non-white space differences in the files." else if [ 99999 -lt "$(echo $1 | wc -c | awk '{print $1; }')" ]; then DIFF="The differences between the files are too large to display." else DIFF="$1" fi fi if [ "$DEBCONF_OK" = "YES" ] && [ "$DEBIAN_HAS_FRONTEND" ]; then templ=ucf/show_diff db_capb escape db_subst $templ DIFF "$(printf %s "$DIFF" | debconf-escape -e)" db_fset $templ seen false db_input critical $templ || true db_go || true db_get $templ # may contain sensitive information, so clear # immediatly after use so it is never written # to disk db_subst $templ DIFF "" db_reset $templ db_capb else if [ -z "$my_pager" ]; then echo "$DIFF" | sensible-pager else echo "$DIFF" | $my_pager fi fi } withecho () { echo "$@" >&2 "$@" } usageversion () { cat >&2 <<END Debian GNU/Linux $progname $pversion. Copyright (C) 2002-2005 Manoj Srivastava. This is free software; see the GNU General Public Licence for copying conditions. There is NO warranty. Usage: $progname [options] new_file destination Options: -h, --help print this message -s foo, --src-dir foo Set the src dir (historical md5sums live here) --sum-file bar Force the historical md5sums to be read from this file. Overrides any setting of --src-dir. -d[n], --debug=[n] Set the Debug level to N. Please note there must be no spaces before the debug level -n, --no-action Dry run. No action is actually taken. -v, --verbose Make the script verbose --three-way Register this file in the cache, and turn on the diff3 option allowing the merging of maintainer changes into a (potentially modified) local configuration file. ) --state-dir bar Set the state directory to bar instead of the default '/var/lib/ucf'. Used mostly for testing. --debconf-ok Indicate that it is ok for ucf to use an already running debconf instance for prompting. --debconf-template bar Specify an alternate, caller-provided debconf template to use for prompting. Usage: $progname -p destination -p, --purge Remove any reference to destination from records By default, the directory the new_file lives in is assumed to be the src-dir, which is where we look for any historical md5sums. END } ###################################################################### ######## ######### ######## file and hash save/restore functions ######### ######## ######### ###################################################################### purge_md5sum () { for i in $(/usr/bin/seq 6 -1 0); do if [ -e "${statedir}/hashfile.${i}" ]; then if [ "X$docmd" = "XYES" ]; then cp -pf "${statedir}/hashfile.${i}" \ "${statedir}/hashfile.$(($i+1))" else echo cp -pf "${statedir}/hashfile.${i}" \ "${statedir}/hashfile.$(($i+1))" fi fi done if [ -e "$statedir/hashfile" ]; then if [ "X$docmd" = "XYES" ]; then cp -pf "$statedir/hashfile" "$statedir/hashfile.0" else echo cp -pf "$statedir/hashfile" "$statedir/hashfile.0" fi if [ "X$docmd" = "XYES" ]; then set +e if [ "X$VERBOSE" != "X" ]; then echo >&2 "egrep -v [[:space:]]${safe_dest_file}$ $statedir/hashfile" egrep -v "[[:space:]]${safe_dest_file}$" "$statedir/hashfile" >&2 \ || true; fi #echo "egrep -v [[:space:]]${safe_dest_file}$ $statedir/hashfile" egrep -v "[[:space:]]${safe_dest_file}$" "$statedir/hashfile" > \ "$statedir/hashfile.tmp" || true; if [ "X$docmd" = "XYES" ]; then mv -f "$statedir/hashfile.tmp" "$statedir/hashfile" else echo mv -f "$statedir/hashfile.tmp" "$statedir/hashfile" fi set -e fi fi test -n "$VERBOSE" && echo >&2 "The cache file is $cached_file" if [ ! -z "$cached_file" -a -f "$statedir/cache/$cached_file" ]; then $action rm -f "$statedir/cache/$cached_file" fi } replace_md5sum () { for i in $(/usr/bin/seq 6 -1 0); do if [ -e "${statedir}/hashfile.${i}" ]; then if [ "X$docmd" = "XYES" ]; then cp -pf "${statedir}/hashfile.${i}" \ "${statedir}/hashfile.$(($i+1))" else echo cp -pf "${statedir}/hashfile.${i}" \ "${statedir}/hashfile.$(($i+1))" fi fi done if [ -e "$statedir/hashfile" ]; then if [ "X$docmd" = "XYES" ]; then cp -pf "$statedir/hashfile" "$statedir/hashfile.0" else echo cp -pf "$statedir/hashfile" "$statedir/hashfile.0" fi if [ "X$docmd" = "XYES" ]; then set +e if [ "X$VERBOSE" != "X" ]; then echo >&2 "(egrep -v \"[[:space:]]${safe_dest_file}$\" \"$statedir/hashfile\";" egrep -v "[[:space:]]${safe_dest_file}$" "$statedir/hashfile" >&2 || true; md5sum "$orig_new_file" | sed "s|$orig_new_file|$dest_file|" >&2; fi egrep -v "[[:space:]]${safe_dest_file}$" "$statedir/hashfile" > \ "$statedir/hashfile.tmp" || true; md5sum "$orig_new_file" | sed "s|$orig_new_file|$dest_file|" >> \ "$statedir/hashfile.tmp"; mv -f "$statedir/hashfile.tmp" "$statedir/hashfile" set -e else echo "(egrep -v \"[[:space:]]${safe_dest_file}$\" \"$statedir/hashfile\"" echo " md5sum \"$orig_new_file\" | sed \"s|$orig_new_file|$dest_file|\"; " echo ") | sort > \"$statedir/hashfile\"" fi else if [ "X$docmd" = "XYES" ]; then md5sum "$orig_new_file" | sed "s|$orig_new_file|$dest_file|" > \ "$statedir/hashfile" else echo " md5sum \"$orig_new_file\" | sed \"s|$orig_new_file|$dest_file|\" >" \ "\"$statedir/hashfile\"" fi fi file_size=$(stat -c '%s' "$orig_new_file") if [ "X$THREEWAY" != "X" ] || [ "$file_size" -lt 25600 ]; then $action cp -pf "$orig_new_file" "$statedir/cache/$cached_file" fi # cp -pf "$orig_new_file" "$dest_file.${DIST_SUFFIX}" } replace_conf_file () { # do not mangle $dest_file since it's the one registered in the hashfile # or we have been ask to register real_file="$dest_file" if [ -L "$dest_file" ]; then real_file="$(readlink -nf $dest_file || :)" if [ "x$real_file" = "x" ]; then echo >&2 "$dest_file is a broken symlink!" $action rm -f "$dest_file"; real_file="$dest_file" fi fi if [ -e "$real_file" ]; then if [ -z "$RETAIN_OLD" ]; then #echo "Saving ${real_file}.${OLD_SUFFIX}, in case." if [ "x$VERBOSE" != "x" ]; then echo >&2 "Not saving ${real_file}, since it was unmodified" fi else $action cp -pf "${real_file}" "${real_file}.${OLD_SUFFIX}" fi fi $action cp -pf "$new_file" "${real_file}" replace_md5sum; } # Escape single quotes in the arguments passed in quote_single() { echo "$1" | sed -e "s,','\\\\'',g" } ###################################################################### ######## ######### ######## Command line args ######### ######## ######### ###################################################################### # # Long term variables# # docmd='YES' action='withecho' action= DEBUG=0 VERBOSE='' statedir='/var/lib/ucf'; THREEWAY= DIST_SUFFIX="ucf-dist" NEW_SUFFIX="ucf-new" OLD_SUFFIX="ucf-old" ERR_SUFFIX="merge-error" # save up the cmdline with proper quoting/escaping for arg in "$@"; do saved="${saved:+$saved }'$(quote_single "$arg")'" done # Note that we use `"$@"' to let each command-line parameter expand to a # separate word. The quotes around `$@' are essential! # We need TEMP as the `eval set --' would nuke the return value of getopt. TEMP=$(getopt -a -o hs:d::D::nv -n "$progname" \ --long help,src-dir:,sum-file:,dest-dir:,debug::,DEBUG::,no-action,purge,verbose,three-way,debconf-ok,debconf-template:,state-dir: \ -- "$@") # Note the quotes around `$TEMP': they are essential! eval set -- "$TEMP" while true ; do case "$1" in -h|--help) usageversion; exit 0 ;; -n|--no-action) action='echo'; docmd='NO'; shift ;; -v|--verbose) VERBOSE=1; shift ;; -s|--src-dir) opt_source_dir="$2"; shift 2 ;; --sum-file) opt_old_mdsum_file="$2"; shift 2 ;; --state-dir) opt_state_dir="$2"; shift 2 ;; --debconf-template) override_template="$2"; shift 2 ;; -D|-d|--debug|--DEBUG) # d has an optional argument. As we are in quoted mode, # an empty parameter will be generated if its optional # argument is not found. case "$2" in "") setq DEBUG 1 "The Debug value"; shift 2 ;; *) setq DEBUG "$2" "The Debug value"; shift 2 ;; esac ;; -p|--purge) PURGE=YES; shift ;; --three-way) THREEWAY=YES; shift ;; --debconf-ok) DEBCONF_OK=YES; shift ;; --) shift ; break ;; *) echo >&2 "Internal error!" ; exit 1 ;; esac done ###################################################################### ######## ######### ######## Sanity checking ######### ######## ######### ###################################################################### # Need to run as root, or else the if test "$(id -u)" != 0; then if [ "$docmd" = "YES" ]; then echo "$progname: Need to be run as root." >&2 echo "$progname: Setting up no action mode." >&2 action='echo'; docmd='NO'; fi fi if [ "X$PURGE" = "XYES" ]; then if [ $# != 1 ]; then echo >&2 "*** ERROR: Need exactly one argument when purging, got $#"; echo >&2 "" usageversion; exit 2 ; fi temp_dest_file="$1"; if [ -e "$temp_dest_file" ]; then setq dest_file "$(readlink -q -m $temp_dest_file)" "The Destination file"; else setq dest_file "$temp_dest_file" "The Destination file"; fi else if [ $# != 2 ]; then echo >&2 "*** ERROR: Need exactly two arguments, got $#"; echo >&2 "" usageversion; exit 2 ; fi temp_new_file="$1"; temp_dest_file="$2"; if [ ! -e "${temp_new_file}" ]; then echo >&2 "Error: The new file ${temp_new_file} does not exist!"; exit 1; fi setq new_file "$(readlink -q -m $temp_new_file)" "The new file"; if [ -e "$temp_dest_file" ]; then setq dest_file "$(readlink -q -m $temp_dest_file)" "The Destination file"; else setq dest_file "$temp_dest_file" "The Destination file"; fi fi safe_dest_file=$(echo "$dest_file" | perl -nle 'print "\Q$_\E\n"') ###################################################################### ######## ######### ######## Set Default Values ######### ######## ######### ###################################################################### # Load site defaults and over rides. if [ -f /etc/ucf.conf ]; then . /etc/ucf.conf fi # Command line, env variable, config file, or default if [ ! "x$opt_source_dir" = "x" ]; then setq source_dir "$opt_source_dir" "The Source directory" elif [ ! "x$UCF_SOURCE_DIR" = "x" ]; then setq source_dir "$UCF_SOURCE_DIR" "The Source directory" elif [ ! "x$conf_source_dir" = "x" ]; then setq source_dir "$conf_source_dir" "The Source directory" else if [ "X$new_file" != "X" ]; then setq source_dir "$(dirname $new_file)" "The Source directory" else setq source_dir "/tmp" "The Source directory" fi fi if [ "X$PAGER" != "X" ] && which "$PAGER" >/dev/null 2>&1 ; then my_pager="$(which $PAGER)"; elif [ -s /usr/bin/pager ] && [ "X$(readlink -e /usr/bin/pager || :)" != "X" ]; then my_pager=/usr/bin/pager elif [ -x /usr/bin/sensible-pager ]; then my_pager=/usr/bin/sensible-pager elif [ -x /bin/more ]; then my_pager=/bin/more else my_pager= fi # Command line, env variable, config file, or default if [ ! "x$opt_state_dir" = "x" ]; then setq statedir "$opt_state_dir" "The State directory" elif [ ! "x$UCF_STATE_DIR" = "x" ]; then setq statedir "$UCF_STATE_DIR" "The State directory" elif [ ! "x$conf_state_dir" = "x" ]; then setq statedir "$conf_state_dir" "The State directory" else setq statedir '/var/lib/ucf' "The State directory" fi # Command line, env variable, config file, or default if [ ! "x$opt_force_conffold" = "x" ]; then setq force_conffold "$opt_force_conffold" "Keep the old file" elif [ ! "x$UCF_FORCE_CONFFOLD" = "x" ]; then setq force_conffold "$UCF_FORCE_CONFFOLD" "Keep the old file" elif [ ! "x$conf_force_conffold" = "x" ]; then setq force_conffold "$conf_force_conffold" "Keep the old file" else force_conffold='' fi # Command line, env variable, config file, or default if [ ! "x$opt_force_conffnew" = "x" ]; then setq force_conffnew "$opt_force_conffnew" "Replace the old file" elif [ ! "x$UCF_FORCE_CONFFNEW" = "x" ]; then setq force_conffnew "$UCF_FORCE_CONFFNEW" "Replace the old file" elif [ ! "x$conf_force_conffnew" = "x" ]; then setq force_conffnew "$conf_force_conffnew" "Replace the old file" else force_conffnew='' fi # Command line, env variable, config file, or default if [ ! "x$opt_force_conffmiss" = "x" ]; then setq force_conffmiss "$opt_force_conffmiss" "Replace any missing files" elif [ ! "x$UCF_FORCE_CONFFMISS" = "x" ]; then setq force_conffmiss "$UCF_FORCE_CONFFMISS" "Replace any missing files" elif [ ! "x$conf_force_conffmiss" = "x" ]; then setq force_conffmiss "$conf_force_conffmiss" "Replace any missing files" else force_conffmiss='' fi if [ -n "$opt_old_mdsum_file" ]; then setq old_mdsum_file "$opt_old_mdsum_file" "The md5sum is found here" elif [ ! "x$UCF_OLD_MDSUM_FILE" = "x" ]; then setq old_mdsum_file "$UCF_OLD_MDSUM_FILE" "The md5sum is found here" elif [ ! "x$conf_old_mdsum_file" = "x" ]; then setq old_mdsum_file "$conf_old_mdsum_file" "Replace the old file" elif [ ! "x${new_file}" = "x" ]; then old_mdsum_file="$source_dir/$(basename ${new_file}).md5sum"; else old_mdsum_file=""; fi ###################################################################### ######## ######### ######## More Sanity checking ######### ######## ######### ###################################################################### if [ "X$force_conffold" != "X" -a "X$force_conffnew" != "X" ]; then echo >&2 "Error: Only one of force_conffold and force_conffnew should"; echo >&2 " be set"; exit 1; fi # VERBOSE of 0 is supposed to be the same as not setting VERBOSE if [ "X$VERBOSE" = "X0" ]; then VERBOSE='' fi # if [ -e "$statedir/hashfile" -a ! -w "$statedir/hashfile" ]; then echo >&2 "ucf: do not have write privilege to the state data" if [ "X$docmd" = "XYES" ]; then exit 1; fi fi if [ ! -d $statedir/cache ]; then $action mkdir -p $statedir/cache ; fi # test and see if this file exists in the database if [ -e "$statedir/hashfile" ]; then if [ "X$VERBOSE" != "X" ]; then echo >&2 "The hash file exists" echo >&2 egrep "[[:space:]]${safe_dest_file}$" "$statedir/hashfile" egrep "[[:space:]]${safe_dest_file}$" "$statedir/hashfile" >&2 || true fi lastsum=$(egrep "[[:space:]]${safe_dest_file}$" "$statedir/hashfile" | \ awk '{print $1;}' ) fi if [ ! "x${new_file}" = "x" ]; then old_mdsum_dir="$source_dir/"$(basename "${new_file}")".md5sum.d"; else old_mdsum_dir=""; fi cached_file="$(echo $dest_file | tr / :)" ###################################################################### ######## ######### ######## Debugging dump ######### ######## ######### ###################################################################### if [ $DEBUG -gt 0 ]; then cat >&2 <<EOF The new start file is \`$new_file\' The destination is \`$dest_file\' (\`$safe_dest_file\') The history is kept under \'$source_dir\' The file may be cached at \'$statedir/cache/$cached_file\' EOF if [ -s "$dest_file" ]; then echo "The destination file exists, and has md5sum:" md5sum "$dest_file" else echo "The destination file does not exist." fi if [ "X$lastsum" != "X" ]; then echo "The old md5sum exists, and is:" echo "$lastsum" else echo "The old md5sum does not exist." if [ -d "$old_mdsum_dir" -o -f "$old_mdsum_file" ]; then echo "However, there are historical md5sums around." fi fi if [ -e "$new_file" ]; then echo "The new file exists, and has md5sum:" md5sum "$new_file" else echo "The new file does not exist." fi if [ -d "$old_mdsum_dir" ]; then echo "The historical md5sum dir $old_mdsum_dir exists" elif [ -f "$old_mdsum_file" ]; then echo "The historical md5sum file $old_mdsum_file exists" else echo "Historical md5sums are not available" fi fi ###################################################################### ######## ######### ######## Short circuit if we are purging ######### ######## ######### ###################################################################### if [ "X$PURGE" = "XYES" ]; then if [ "X$VERBOSE" != "X" ]; then echo >&2 "Preparing to purge ${dest_file}" fi purge_md5sum; exit 0; fi # now we can restore $@ eval set -- "$saved" ###################################################################### ######## ######### ######## DebConf stuff ######### ######## ######### ###################################################################### # Is debconf already running? Kinda tricky, because it will be after the # confmodule is sourced, so only test before that. if [ -z "$DEBCONF_ALREADY_RUNNING" ]; then if [ "$DEBIAN_HAS_FRONTEND" ]; then DEBCONF_ALREADY_RUNNING='YES' else DEBCONF_ALREADY_RUNNING='NO' fi fi export DEBCONF_ALREADY_RUNNING if [ -z "$DEBCONF_OK" ]; then if [ "$DEBCONF_ALREADY_RUNNING" = 'YES' ]; then DEBCONF_OK='NO' else DEBCONF_OK='YES' fi fi # Time to start nagging the users who call ucf without debconf-ok if [ "$DEBCONF_ALREADY_RUNNING" = 'YES' ] && [ "$DEBCONF_OK" = NO ]; then # Commented out for now, uncomment after a while to begin nagging # maintainers to fix their scripts. cat \ <<END *** WARNING: ucf was run from a maintainer script that uses debconf, but the script did not pass --debconf-ok to ucf. The maintainer script should be fixed to not stop debconf before calling ucf, and pass it this parameter. For now, ucf will revert to using old-style, non-debconf prompting. Ugh! Please inform the package maintainer about this problem. END fi # Start up debconf or at least get the db_* commands available if [ -e /usr/share/debconf/confmodule ]; then if test "$(id -u)" = 0; then . /usr/share/debconf/confmodule # Load our templates, just in case our template has # not been loaded or the Debconf DB lost or corrupted # since then, but only if it is OK to use debconf. if [ "$DEBCONF_OK" = 'YES' ]; then db_x_loadtemplatefile "$(dpkg-query --control-path ucf templates)" ucf fi else echo >&2 "$progname: Not loading confmodule, since we are not running as root." fi # Only set the title if debconf was not already running. # If it was running, then we do not want to clobber the # title used for configuring the whole package with debconf. if [ "$DEBCONF_ALREADY_RUNNING" = 'NO' ]; then if ! db_settitle ucf/title 2>/dev/null; then # Older debconf that does not support that command. if test "$(id -u)" = 0; then db_title "Modified configuration file" else echo >&2 "$progname: Not changing title, since we are not running as root." fi fi fi fi ###################################################################### ######## ######### ######## Start Processing ######### ######## ######### ###################################################################### orig_new_file="$new_file" # Since sometimes we replace the newfile below newsum=$(md5sum "$new_file" | awk '{print $1}') # Determine the action for the current file. The default is to ask, # with non-replacement being the norm. # If the config dir exists # if file in always overwrite, state +=1; # fi # if file in never overwrite, state +=2; # fi # if file in ask; state +=4 # fi # if state == 0; then state = default # if state >= 4; ask # if state == 3; ask # if state == 2; exit # if state == 1; then replace_conffile; exit ###################################################################### ######## ######### ######## Do the replacement ######### ######## ######### ###################################################################### # Step 1: If we have no record of this file, and dest file # does, We need to determine how to initialize the # ${old_mdsum_prefix}.old file.. if [ -e "$dest_file" ]; then destsum=$(md5sum "$dest_file" | awk '{print $1}'); if [ "X$lastsum" = "X" ]; then # a: If we have a directory containing historical md5sums of this # file in question, we should look and see if the currently # installed file matches any of the old md5sums; in which case # it can be silently replaced. if [ -d "$old_mdsum_dir" -o -f "$old_mdsum_file" ]; then if [ -d "$old_mdsum_dir" ]; then for file in ${old_mdsum_dir}/*; do oldsum="$(awk '{print $1}' $file)"; if [ "$oldsum" = "$destsum" ]; then if [ "X$force_conffold" = "X" ]; then # Bingo! replace, set the md5sum, and we are done if [ "X$VERBOSE" != "X" ]; then echo >&2 \ "Replacing config file $dest_file with new version" fi replace_conf_file; exit 0; else replace_md5sum; cp -pf "$orig_new_file" "$dest_file.${DIST_SUFFIX}" exit 0; fi fi done elif [ -f "$old_mdsum_file" ]; then oldsum=$(egrep "^${destsum}" "$old_mdsum_file" || true) if [ "X$oldsum" != "X" ]; then # Bingo if [ "X$force_conffold" = "X" ]; then if [ "X$VERBOSE" != "X" ]; then echo >&2 \ "Replacing config file $dest_file with new version" fi replace_conf_file; exit 0; else replace_md5sum; cp -pf "$orig_new_file" "$dest_file.${DIST_SUFFIX}" exit 0; fi fi fi # Well, nothing matched. We now check to see if the # maintainer has an opinion on how to set the ``md5sum of the # previously installed version'', since we have no way of # determining that automatically. Please note that unless # there are limited number of previously released packages # (like just one), the maintainer is also making a guess at # this point by supplying a historical md5sum default file. if [ "X$VERBOSE" != "X" ]; then echo >&2 "Histotical md5sums did not match." fi if [ -d "$old_mdsum_dir" ]; then if [ -e "${old_mdsum_dir}/default" ]; then if [ "X$VERBOSE" != "X" ]; then echo >&2 "However, a default entry exists, using it." fi lastsum="$(awk '{print $1;}' ${old_mdsum_dir}/default)" do_replace_md5sum=1; fi elif [ -f "$old_mdsum_file" ]; then oldsum=$(egrep "[[:space:]]default$" "$old_mdsum_file" | \ awk '{print $1;}') if [ "X$oldsum" != "X" ]; then # Bingo lastsum=$oldsum; do_replace_md5sum=1; fi fi fi # At this point, we are almost certain that either the # historical record of md5sums is not complete, or the user has # changed the configuration file. Rather than guessing and # chosing one of the historical md5sums, we fall through to the # solution used if there had been no historical md5sums # directory/file. if [ "X$lastsum" = "X" ]; then # b: We do not have a historical list of md5sums, or none # matched, and we still need to initialize the # ${old_mdsum_prefix}.old file. We can't determine whther or # not they made any changes, so we err on the side of caution # and ask' if [ "X$VERBOSE" != "X" ]; then echo >&2 "No match found, we shall ask." fi lastsum='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'; fi # the old md5sum file does not exist, and the historical # record failed fi # the old md5sum file does not exist (bug)) else # "$dest_file" does not exist # Step 2: If destfile does not exist, create it, set the file # "${old_mdsum_prefix}.old" to the md5sum of the new file, and we # are done if [ "X$lastsum" = "X" ]; then # Ok, so there is no indication that the package was ever # installed on this machine. echo >&2 "" echo >&2 "Creating config file $dest_file with new version" replace_conf_file; exit 0; elif [ "$lastsum" = "$newsum" ]; then # OK, new version of the file is the same as the last version # we saw. Since the user apparently has deleted the file, # nothing needs be done, unless we have been told differently if [ "X$force_conffmiss" != "X" ]; then echo >&2 "" echo >&2 "Recreating deleted config file $dest_file with new version, as asked" replace_conf_file; exit 0; else echo >&2 "Not replacing deleted config file $dest_file"; fi else # OK. New upstream version. if [ "X$force_conffmiss" != "X" ]; then # User has said to replace missing files, so we do so, no # questions asked. echo >&2 "" echo >&2 "Recreating deleted config file $dest_file with new version, as asked" replace_conf_file; exit 0; else # Even though the user has deleted this file, they should # be asked now, unless specified otherwise. if [ "X$force_conffold" = "X" ]; then destsum='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'; else exit 0; fi fi fi fi # Here, the destfile exists. # step 3: If the old md5sum and the md5sum of the new file # do not match, we need to take action. if [ "$lastsum" = "$newsum" ]; then if [ "X$VERBOSE" != "X" ]; then echo >&2 "md5sums match, nothing needs be done." fi if [ "X$do_replace_md5sum" != "X" ]; then replace_md5sum; fi exit 0; # Hah. Match. We are done. fi # a: If the md5sum of the dest file is the same as lastsum, replace the # destfile, saying we are replacing old config files if [ "$destsum" = "$lastsum" ]; then if [ "X$force_conffold" = "X" ]; then echo >&2 "Replacing config file $dest_file with new version" replace_conf_file; exit 0; else replace_md5sum; cp -pf "$orig_new_file" "$dest_file.${DIST_SUFFIX}" exit 0; fi else # b: If the md5sum of the dest file differs from lastsum, we need to ask # the user what action to take. if [ "X$force_conffnew" != "X" ]; then echo >&2 "Replacing config file $dest_file with new version" echo >&2 "since you asked for it." if [ "$destsum" = "$newsum" ]; then echo >&2 "The new and the old files are identical, AFAICS" else echo >&2 "The new and the old files are different" fi replace_conf_file; exit 0; fi if [ "X$force_conffold" != "X" ]; then replace_md5sum; cp -pf "$orig_new_file" "$dest_file.${DIST_SUFFIX}" exit 0; fi # c: If the destination file is the same as the new maintianer provided one, # we need do nothing. if [ "$newsum" = "$destsum" ]; then if [ "X$VERBOSE" != "X" ]; then echo >&2 "md5sums of the file in place matches, nothing needs be done." fi replace_md5sum; exit 0; # Hah. Match. We are done. fi done='NO'; while [ "X$done" = "XNO" ]; do if [ "$DEBCONF_OK" = "YES" ] && [ "$DEBIAN_HAS_FRONTEND" ]; then # Use debconf to prompt. if [ -e "$statedir/cache/$cached_file" ] && [ "X$THREEWAY" != "X" ]; then templ=ucf/changeprompt_threeway else templ=ucf/changeprompt fi if [ "X$override_template" != "X" ]; then choices="$(db_metaget $templ Choices-C)" choices2="$(db_metaget $override_template Choices-C)" if [ "$choices" = "$choices2" ]; then templ=$override_template fi fi db_fset "$templ" seen false db_reset "$templ" db_subst "$templ" FILE "$dest_file" db_subst "$templ" NEW "$new_file" db_subst "$templ" BASENAME "$(basename $dest_file)" db_input critical "$templ" || true if ! db_go; then # The current ucf interface does not provide a way for it # to tell its caller that the user chose to back up. # However, we could get here, if the caller turned on # debconf's backup capb. The best thing to do seems to be # to ignore requests to back up. continue fi db_get "$templ" ANSWER="$RET" else echo >&2 "Need debconf to interact" exit 2 ######################################################################################## # # Prompt without using debconf. # # cat >&2 <<EOPRMT # # Configuration file \`$dest_file' # # ==> File on system created by you or by a script. # # ==> File also in package provided by package maintainer. # # What would you like to do about it ? Your options are: # # Y or I : install the package maintainer's version # # N or O : keep your currently-installed version # # D : show the differences between the versions # # S : show the side-by-side differences between the versions # # EOPRMT # # if [ "X$THREEWAY" != "X" -a -e "$statedir/cache/$cached_file" ]; then # # cat >&2 <<EOTD # # 3 or T : show a three way difference between current, older, # # and new versions of the file # # M : Do a 3 way merge between current, older, # # and new versions of the file [Very Experimental] # # EOTD # # fi # # cat >&2 <<EOPEND # # Z : start a new shell to examine the situation # # The default action is to keep your current version. # # EOPEND # # if [ "X$THREEWAY" != "X" -a -e "$statedir/cache/$cached_file" ]; then # # echo -n >&2 "*** " $(basename "$dest_file") \ # # " (Y/I/N/O/D/3/T/M/Z) [default=N] ?" # # else # # echo -n >&2 "*** " $(basename "$dest_file") \ # # " (Y/I/N/O/D/Z) [default=N] ?" # # fi # # read -e ANSWER </dev/tty # ######################################################################################## fi case "$ANSWER" in install_new|y|Y|I|i) echo >&2 "Replacing config file $dest_file with new version" RETAIN_OLD=YES replace_conf_file; exit 0; ;; diff|D|d) DIFF="$(run_diff diff -uBbwt "$dest_file" "$new_file")" show_diff "$DIFF" ;; sdiff|S|s) DIFF="$(run_diff sdiff -BbW "$dest_file" "$new_file")" show_diff "$DIFF" ;; diff_threeway|3|t|T) if [ -e "$statedir/cache/$cached_file" \ -a "X$THREEWAY" != "X" ]; then if [ -e "$dest_file" ]; then DIFF="$(diff3 -L Current -L Older -L New -A \ "$dest_file" "$statedir/cache/$cached_file" \ "$new_file")" || true else DIFF="$(diff3 -L Current -L Older -L New -A \ /dev/null "$statedir/cache/$cached_file" \ "$new_file")" || true fi show_diff "$DIFF" else DIFF="$(run_diff diff -uBbwt "$dest_file" "$new_file")" show_diff "$DIFF" fi ;; merge_threeway|M|m) echo >&2 "Merging changes into the new version" if [ -e "$statedir/cache/$cached_file" \ -a "X$THREEWAY" != "X" ]; then ret=0 diff3 -L Current -L Older -L New -m \ "$dest_file" "$statedir/cache/$cached_file" \ "$new_file" > "$dest_file.${NEW_SUFFIX}" || ret=$? case "$ret" in 0) new_file="$dest_file.${NEW_SUFFIX}" RETAIN_OLD=YES replace_conf_file rm -f "$dest_file.${NEW_SUFFIX}" # don't need this around no mo' exit 0 ;; *) mv "$dest_file.${NEW_SUFFIX}" "$dest_file.${ERR_SUFFIX}" db_subst ucf/conflicts_found dest_file "$dest_file" db_subst ucf/conflicts_found ERR_SUFFIX "${ERR_SUFFIX}" db_input critical ucf/conflicts_found || true db_go || true ;; esac else replace_conf_file rm -f "$dest_file.${NEW_SUFFIX}" # don't need this around no mo' exit 0 fi ;; shell|Z|z) # We explicitly connect STDIN and STDOUT to the # script's controlling terminal, so even if STDIN is # fed by a pipe, as is the case when run from # /usr/bin/debconf, the shell should be fully # functional. However, the test for a controlling # terminal uses /usr/bin/tty, which consults only # STDIN. As far as I can tell, when run from debconf, # ucf will _never_ use the current terminal. If the # goal is to check for access to a terminal, the test # should be for foreground process group membership, # not a terminal connected to STDIN (tty -s), and not # a terminal it doesn't necessarily own (tty -s # </dev/tty). The easiest way do this from a shell is # probably with /bin/ps. if ps -o stat= --ppid $$ | grep -q '+'; then bash >/dev/tty </dev/tty || true elif [ -n "$DISPLAY" ]; then x-terminal-emulator || true else # Don't know what to do echo >&2 "No terminal, and no DISPLAY set, can't fork shell." sleep 3; fi ;; keep_current|n|N|o|O|'') replace_md5sum; cp -pf "$orig_new_file" "$dest_file.${DIST_SUFFIX}" exit 0; ;; *) if [ "$DEBCONF_OK" = "YES" ]; then echo "Error: unknown response from debconf:'$RET'" >&2 exit 1 else echo echo "Please answer with one of the single letters listed." >&2 echo fi esac done fi db_stop exit 0;
Close