X7ROOT File Manager
Current Path:
/usr/bin
usr
/
bin
/
📁
..
📄
7za
(41 B)
📄
ControlPanel
(5.55 KB)
📄
GET
(14.71 KB)
📄
HEAD
(14.71 KB)
📄
Mail
(383.67 KB)
📄
POST
(14.71 KB)
📄
VGAuthService
(129.49 KB)
📄
WebKitWebDriver
(1.06 MB)
📄
X
(2.33 MB)
📄
Xorg
(2.33 MB)
📄
Xvnc
(2.34 MB)
📄
[
(40.52 KB)
📄
a2p
(105.32 KB)
📄
ab
(51.41 KB)
📄
abrt-action-analyze-backtrace
(10.98 KB)
📄
abrt-action-analyze-c
(10.98 KB)
📄
abrt-action-analyze-ccpp-local
(1.31 KB)
📄
abrt-action-analyze-core
(6.66 KB)
📄
abrt-action-analyze-oops
(10.96 KB)
📄
abrt-action-analyze-python
(10.97 KB)
📄
abrt-action-analyze-vmcore
(2.75 KB)
📄
abrt-action-analyze-vulnerability
(1.32 KB)
📄
abrt-action-analyze-xorg
(11 KB)
📄
abrt-action-check-oops-for-hw-error
(4.88 KB)
📄
abrt-action-generate-backtrace
(10.99 KB)
📄
abrt-action-generate-core-backtrace
(10.98 KB)
📄
abrt-action-install-debuginfo
(8.15 KB)
📄
abrt-action-list-dsos
(3.13 KB)
📄
abrt-action-notify
(8.75 KB)
📄
abrt-action-perform-ccpp-analysis
(3.45 KB)
📄
abrt-action-save-kernel-data
(1.26 KB)
📄
abrt-action-save-package-data
(23.16 KB)
📄
abrt-action-trim-files
(15.04 KB)
📄
abrt-applet
(47.5 KB)
📄
abrt-cli
(27.3 KB)
📄
abrt-dump-oops
(19.01 KB)
📄
abrt-dump-xorg
(14.99 KB)
📄
abrt-handle-upload
(8.84 KB)
📄
abrt-merge-pstoreoops
(11.01 KB)
📄
abrt-retrace-client
(43.45 KB)
📄
abrt-watch-log
(14.99 KB)
📄
abs2rel
(1.62 KB)
📄
ac
(28.11 KB)
📄
accountwizard
(924.19 KB)
📄
aclocal
(35.87 KB)
📄
aclocal-1.13
(35.87 KB)
📄
aconnect
(19.66 KB)
📄
acpid
(850.33 KB)
📄
add-shell
(850.33 KB)
📄
addgroup
(850.33 KB)
📄
addr2line
(28.42 KB)
📄
adjtimex
(850.33 KB)
📄
akonadi2xml
(15.5 KB)
📄
akonadi_agent_launcher
(100.88 KB)
📄
akonadi_agent_server
(121.24 KB)
📄
akonadi_birthdays_resource
(99.44 KB)
📄
akonadi_control
(318.45 KB)
📄
akonadi_davgroupware_resource
(522.35 KB)
📄
akonadi_icaldir_resource
(95.12 KB)
📄
akonadi_imap_resource
(533.24 KB)
📄
akonadi_invitations_agent
(70.31 KB)
📄
akonadi_kabc_resource
(136.37 KB)
📄
akonadi_kcal_resource
(135.98 KB)
📄
akonadi_kdeaccounts_resource
(124.4 KB)
📄
akonadi_localbookmarks_resource
(53.42 KB)
📄
akonadi_maildispatcher_agent
(140.09 KB)
📄
akonadi_mailtransport_dummy_resource
(45.43 KB)
📄
akonadi_microblog_resource
(103.5 KB)
📄
akonadi_mixedmaildir_resource
(332.84 KB)
📄
akonadi_nepomuk_feeder
(211.78 KB)
📄
akonadi_nepomuktag_resource
(74.01 KB)
📄
akonadi_nntp_resource
(115.82 KB)
📄
akonadi_openxchange_resource
(399.35 KB)
📄
akonadi_pop3_resource
(267.46 KB)
📄
akonadi_rds
(113.04 KB)
📄
akonadi_vcarddir_resource
(86.88 KB)
📄
akonadictl
(125.29 KB)
📄
akonadiserver
(1.51 MB)
📄
akonaditray
(122.95 KB)
📄
akregator
(57.93 KB)
📄
akregatorstorageexporter
(39.89 KB)
📄
alias
(29 B)
📄
alsa-delay
(22.38 KB)
📄
alsabat
(36.23 KB)
📄
alsaloop
(73.1 KB)
📄
alsamixer
(65.95 KB)
📄
alsatplg
(11.17 KB)
📄
alsaucm
(15.73 KB)
📄
alsaunmute
(123 B)
📄
alt-java
(8.87 KB)
📄
amidi
(23.72 KB)
📄
amixer
(52.88 KB)
📄
amuFormat.sh
(2.61 KB)
📄
anaconda-cleanup
(2.76 KB)
📄
anaconda-disable-nm-ibft-plugin
(102 B)
📄
analog
(7.85 KB)
📄
anydesk
(87 B)
📄
aplay
(64.88 KB)
📄
aplaymidi
(19.74 KB)
📄
applydeltarpm
(68.53 KB)
📄
appstream-compose
(27.2 KB)
📄
appstream-util
(104.02 KB)
📄
apr-1-config
(6.73 KB)
📄
apropos
(45.49 KB)
📄
apu-1-config
(6.31 KB)
📄
apxs
(23.17 KB)
📄
ar
(61.22 KB)
📄
arch
(32.3 KB)
📄
arecord
(64.88 KB)
📄
arecordmidi
(23.78 KB)
📄
aria_chk
(3.8 MB)
📄
aria_dump_log
(3.6 MB)
📄
aria_ftdump
(3.61 MB)
📄
aria_pack
(3.64 MB)
📄
aria_read_log
(3.76 MB)
📄
ark
(86.89 KB)
📄
arpaname
(7.03 KB)
📄
as
(377.36 KB)
📄
aseqdump
(19.45 KB)
📄
aseqnet
(19.62 KB)
📄
aserver
(28.21 KB)
📄
ash
(850.33 KB)
📄
at
(51.73 KB)
📄
atq
(51.73 KB)
📄
atrm
(51.73 KB)
📄
attr
(11.16 KB)
📄
audit2allow
(14.21 KB)
📄
audit2why
(14.21 KB)
📄
aulast
(15.48 KB)
📄
aulastlog
(11.35 KB)
📄
ausyscall
(11.18 KB)
📄
autoconf
(14.42 KB)
📄
autoheader
(8.33 KB)
📄
autom4te
(31.43 KB)
📄
automake
(246.44 KB)
📄
automake-1.13
(246.44 KB)
📄
autopoint
(25.95 KB)
📄
autoreconf
(20.57 KB)
📄
autoscan
(16.72 KB)
📄
autoupdate
(33.08 KB)
📄
auvirt
(31.93 KB)
📄
awk
(418.54 KB)
📄
aws
(818 B)
📄
aws_completer
(1.11 KB)
📄
axfer
(77.69 KB)
📄
baobab
(189.71 KB)
📄
base64
(36.48 KB)
📄
basename
(28.35 KB)
📄
bash
(941.93 KB)
📄
bashbug
(6.8 KB)
📄
bashbug-64
(6.8 KB)
📄
batch
(137 B)
📄
bc
(81.47 KB)
📄
bccmd
(199.41 KB)
📄
bd_info
(11.05 KB)
📄
bdftopcf
(44.19 KB)
📄
bdftruncate
(11.2 KB)
📄
bdsplice
(11.17 KB)
📄
beep
(850.33 KB)
📄
berkeley_db47_svc
(58.46 KB)
📄
bg
(26 B)
📄
bison
(393.34 KB)
📄
blkiomon
(24.59 KB)
📄
blkparse
(46.41 KB)
📄
blkrawverify
(15.27 KB)
📄
blktrace
(38.37 KB)
📄
bluedevil-monolithic
(53.51 KB)
📄
bluedevil-sendfile
(116 KB)
📄
bluedevil-wizard
(107.88 KB)
📄
bluemoon
(36.02 KB)
📄
bluetooth-sendto
(28.55 KB)
📄
bluetoothctl
(158.29 KB)
📄
bno_plot.py
(3.38 KB)
📄
boltctl
(90.86 KB)
📄
bond2team
(22.74 KB)
📄
bootchartd
(850.33 KB)
📄
bootctl
(68.99 KB)
📄
brasero
(411.46 KB)
📄
brltty
(507.35 KB)
📄
brltty-config
(1.49 KB)
📄
brltty-ctb
(135.69 KB)
📄
brltty-install
(3.12 KB)
📄
brltty-trtxt
(103.2 KB)
📄
brltty-ttb
(115.63 KB)
📄
bsqldb
(31.93 KB)
📄
bsqlodbc
(23.49 KB)
📄
btattach
(27.84 KB)
📄
btmon
(655.73 KB)
📄
btrace
(891 B)
📄
btrecord
(16.37 KB)
📄
btreplay
(25.01 KB)
📄
btt
(75.82 KB)
📄
build-classpath
(1.5 KB)
📄
build-classpath-directory
(383 B)
📄
build-jar-repository
(1.53 KB)
📄
bunzip2
(31.89 KB)
📄
busctl
(403.2 KB)
📄
busybox
(850.33 KB)
📄
byacc
(84.48 KB)
📄
bzcat
(31.89 KB)
📄
bzcmp
(2.08 KB)
📄
bzdiff
(2.08 KB)
📄
bzgrep
(1.64 KB)
📄
bzip2
(31.89 KB)
📄
bzip2recover
(15.24 KB)
📄
bzless
(1.23 KB)
📄
bzmore
(1.23 KB)
📄
c++
(754.59 KB)
📄
c++filt
(27.92 KB)
📄
c2ph
(35.75 KB)
📄
c89
(224 B)
📄
c99
(215 B)
📄
ca-legacy
(1.6 KB)
📄
cairo-sphinx
(69.99 KB)
📄
cal
(36.8 KB)
📄
calibrate_ppa
(24.52 KB)
📄
canberra-boot
(11.23 KB)
📄
canberra-gtk-play
(11.27 KB)
📄
cancel
(14.96 KB)
📄
cancel.cups
(14.96 KB)
📄
captoinfo
(64.26 KB)
📄
cat
(52.81 KB)
📄
catchsegv
(3.26 KB)
📄
catman
(36.75 KB)
📄
cc
(750.59 KB)
📄
ccache-swig
(48.48 KB)
📄
cd
(26 B)
📄
cd-create-profile
(23.81 KB)
📄
cd-drive
(23.53 KB)
📄
cd-fix-profile
(24.04 KB)
📄
cd-iccdump
(11.41 KB)
📄
cd-info
(40.02 KB)
📄
cd-it8
(23.87 KB)
📄
cd-paranoia
(35.72 KB)
📄
cd-read
(27.61 KB)
📄
cdda-player
(31.87 KB)
📄
cdda2ogg
(2.23 KB)
📄
cdda2wav
(200.09 KB)
📄
cdparanoia
(69.6 KB)
📄
cdrdao
(560.98 KB)
📄
cdrecord
(304.54 KB)
📄
celtdec051
(19.44 KB)
📄
celtenc051
(23.59 KB)
📄
centrino-decode
(6.13 KB)
📄
certbot
(305 B)
📄
certbot-2
(305 B)
📄
certtool
(147.52 KB)
📄
certutil
(179.74 KB)
📄
cgi-fcgi
(19.09 KB)
📄
chacl
(15.27 KB)
📄
chage
(72.16 KB)
📄
chardetect
(307 B)
📄
charmap
(78.97 KB)
📄
chattr
(11.27 KB)
📄
chcat
(13.12 KB)
📄
chcon
(61.46 KB)
📄
check-binary-files
(3.25 KB)
📄
checkXML
(104 B)
📄
checkisomd5
(19.42 KB)
📄
checkmodule
(400.48 KB)
📄
checkpolicy
(412.46 KB)
📄
checksctp
(7 KB)
📄
cheese
(252.27 KB)
📄
chfn
(23.41 KB)
📄
chgrp
(61.32 KB)
📄
chmem
(40.43 KB)
📄
chmod
(57.21 KB)
📄
chown
(61.36 KB)
📄
chpst
(850.33 KB)
📄
chronyc
(85.03 KB)
📄
chrt
(32.17 KB)
📄
chsh
(23.32 KB)
📄
chvt
(11.14 KB)
📄
ci
(801 B)
📄
cifscreds
(19.46 KB)
📄
cifsiostat
(48.5 KB)
📄
ciptool
(145.23 KB)
📄
cksum
(32.38 KB)
📄
clambc
(139.76 KB)
📄
clamconf
(139.44 KB)
📄
clamdscan
(155.76 KB)
📄
clamdtop
(155.74 KB)
📄
clamscan
(163.65 KB)
📄
clamsubmit
(147.72 KB)
📄
clean-binary-files
(12.91 KB)
📄
clear
(7.02 KB)
📄
clibrary
(11.06 KB)
📄
clibrary2
(11.07 KB)
📄
clpi_dump
(28.55 KB)
📄
cmp
(44.21 KB)
📄
cmsutil
(110.58 KB)
📄
co
(801 B)
📄
col
(23.88 KB)
📄
colcrt
(11.29 KB)
📄
colord-kde-icc-importer
(53.45 KB)
📄
colormgr
(61.12 KB)
📄
colrm
(23.77 KB)
📄
column
(27.99 KB)
📄
combinedeltarpm
(52.09 KB)
📄
combinediff
(48.7 KB)
📄
comm
(36.55 KB)
📄
command
(31 B)
📄
compress
(24.49 KB)
📄
connection_recovery
(11.08 KB)
📄
consolehelper
(6.95 KB)
📄
conspy
(850.33 KB)
📄
coredumpctl
(154.52 KB)
📄
corosync-blackbox
(1.79 KB)
📄
corosync-xmlproc
(2.09 KB)
📄
coverage
(306 B)
📄
coverage-2.7
(314 B)
📄
coverage2
(308 B)
📄
cp
(151.55 KB)
📄
cpio
(142.55 KB)
📄
cpp
(754.58 KB)
📄
cpupower
(66.34 KB)
📄
crash
(7.21 MB)
📄
create-jar-links
(4.55 KB)
📄
createrepo
(60 B)
📄
crlutil
(126.99 KB)
📄
crontab
(56.23 KB)
📄
cryptpw
(850.33 KB)
📄
crywrap
(24.2 KB)
📄
cscope
(656.2 KB)
📄
cscope-indexer
(3.77 KB)
📄
csh
(395.15 KB)
📄
csplit
(48.82 KB)
📄
csslint-0.6
(19.55 KB)
📄
ctags
(237.99 KB)
📄
cttyhack
(850.33 KB)
📄
cue2toc
(23.7 KB)
📄
cups-calibrate
(23.27 KB)
📄
cupstestdsc
(14.98 KB)
📄
cupstestppd
(55.13 KB)
📄
curl
(152.99 KB)
📄
cut
(40.61 KB)
📄
cvt
(15.31 KB)
📄
cvtsudoers
(241.7 KB)
📄
danetool
(114.96 KB)
📄
datacopy
(19.52 KB)
📄
date
(60.74 KB)
📄
db47_archive
(10.21 KB)
📄
db47_checkpoint
(10.27 KB)
📄
db47_codegen
(22.25 KB)
📄
db47_deadlock
(10.28 KB)
📄
db47_dump
(14.25 KB)
📄
db47_hotbackup
(18.38 KB)
📄
db47_load
(26.33 KB)
📄
db47_printlog
(62.8 KB)
📄
db47_recover
(10.27 KB)
📄
db47_stat
(14.22 KB)
📄
db47_upgrade
(10.23 KB)
📄
db47_verify
(10.22 KB)
📄
db_archive
(11.23 KB)
📄
db_checkpoint
(11.3 KB)
📄
db_deadlock
(11.31 KB)
📄
db_dump
(15.33 KB)
📄
db_dump185
(64.45 KB)
📄
db_hotbackup
(15.34 KB)
📄
db_load
(27.51 KB)
📄
db_log_verify
(15.34 KB)
📄
db_printlog
(32.26 KB)
📄
db_recover
(11.33 KB)
📄
db_replicate
(15.34 KB)
📄
db_stat
(15.26 KB)
📄
db_tuner
(19.33 KB)
📄
db_upgrade
(11.23 KB)
📄
db_verify
(11.25 KB)
📄
dbilogstrip
(1.43 KB)
📄
dbinfo
(3.29 KB)
📄
dbiprof
(6.15 KB)
📄
dbiproxy
(5.35 KB)
📄
dbus-binding-tool
(94.49 KB)
📄
dbus-cleanup-sockets
(11 KB)
📄
dbus-daemon
(218 KB)
📄
dbus-launch
(27.23 KB)
📄
dbus-monitor
(23.13 KB)
📄
dbus-run-session
(14.97 KB)
📄
dbus-send
(27.07 KB)
📄
dbus-test-tool
(23.13 KB)
📄
dbus-update-activation-environment
(15.02 KB)
📄
dbus-uuidgen
(10.98 KB)
📄
dc
(44.33 KB)
📄
dconf
(48.89 KB)
📄
dd
(73.14 KB)
📄
deallocvt
(11.16 KB)
📄
debuginfo-install
(7.88 KB)
📄
defncopy
(19.7 KB)
📄
dehtmldiff
(1.32 KB)
📄
delgroup
(850.33 KB)
📄
deluser
(850.33 KB)
📄
delv
(39.98 KB)
📄
desktop-file-edit
(74.73 KB)
📄
desktop-file-install
(74.73 KB)
📄
desktop-file-validate
(62.68 KB)
📄
detect_ppa
(3.5 KB)
📄
devdump
(64.73 KB)
📄
devmem
(850.33 KB)
📄
df
(102.55 KB)
📄
dfu-tool
(215.23 KB)
📄
dgawk
(502.12 KB)
📄
dhcprelay
(850.33 KB)
📄
diff
(195.53 KB)
📄
diff-jars
(1.21 KB)
📄
diff3
(60.74 KB)
📄
diffpp
(4.44 KB)
📄
diffstat
(35.76 KB)
📄
dig
(146.96 KB)
📄
dir
(114.85 KB)
📄
dircolors
(40.44 KB)
📄
dirname
(28.31 KB)
📄
dltest
(11.05 KB)
📄
dm_date
(5.47 KB)
📄
dm_zdump
(4.95 KB)
📄
dmesg
(48.52 KB)
📄
dnsd
(850.33 KB)
📄
dnsdomainname
(15.41 KB)
📄
dolphin
(6.99 KB)
📄
domainname
(15.41 KB)
📄
dos2unix
(850.33 KB)
📄
doveadm
(596.59 KB)
📄
doveconf
(161.41 KB)
📄
doxygen
(8.47 MB)
📄
dpkg
(850.33 KB)
📄
dpkg-deb
(850.33 KB)
📄
dracut
(55.83 KB)
📄
drill
(60.88 KB)
📄
dsync
(596.59 KB)
📄
dtrace
(16.66 KB)
📄
du
(110.34 KB)
📄
dumpiso
(11.44 KB)
📄
dumpkeys
(77.51 KB)
📄
dumpkmap
(850.33 KB)
📄
dumpleases
(850.33 KB)
📄
dvcont
(15.3 KB)
📄
dvd+rw-booktype
(63.55 KB)
📄
dvd+rw-format
(43.59 KB)
📄
dvd+rw-mediainfo
(47.39 KB)
📄
dvd-ram-control
(23.35 KB)
📄
dvdrecord
(304.54 KB)
📄
dvipdf
(1 KB)
📄
dwp
(3.03 MB)
📄
dwz
(162.6 KB)
📄
easy_install
(320 B)
📄
easy_install-2.7
(328 B)
📄
echo
(32.31 KB)
📄
ed
(48.68 KB)
📄
edid-decode
(41.23 KB)
📄
editdiff
(2 KB)
📄
egrep
(290 B)
📄
eject
(48.81 KB)
📄
elfedit
(32.18 KB)
📄
empathy
(289.11 KB)
📄
empathy-accounts
(87.55 KB)
📄
empathy-debugger
(57.73 KB)
📄
enchant
(15.29 KB)
📄
enchant-lsmod
(11.13 KB)
📄
encode_keychange
(18.98 KB)
📄
enscript
(204.81 KB)
📄
env
(28.33 KB)
📄
envdir
(850.33 KB)
📄
envsubst
(36.01 KB)
📄
envuidgid
(850.33 KB)
📄
eog
(11.28 KB)
📄
eps2eps
(639 B)
📄
eqn
(144.41 KB)
📄
erb
(4.29 KB)
📄
escputil
(65.68 KB)
📄
espdiff
(1.53 KB)
📄
espeak
(20 KB)
📄
etckeeper
(2.79 KB)
📄
eu-addr2line
(23.66 KB)
📄
eu-ar
(35.97 KB)
📄
eu-elfcmp
(32.16 KB)
📄
eu-elfcompress
(27.64 KB)
📄
eu-elflint
(108.8 KB)
📄
eu-findtextrel
(19.55 KB)
📄
eu-make-debug-archive
(2.84 KB)
📄
eu-nm
(44.92 KB)
📄
eu-objdump
(32.45 KB)
📄
eu-ranlib
(19.58 KB)
📄
eu-readelf
(230.43 KB)
📄
eu-size
(19.42 KB)
📄
eu-stack
(23.64 KB)
📄
eu-strings
(19.59 KB)
📄
eu-strip
(56.75 KB)
📄
eu-unstrip
(48.23 KB)
📄
evince
(426.85 KB)
📄
evince-previewer
(49.79 KB)
📄
evince-thumbnailer
(15.49 KB)
📄
ex
(906.45 KB)
📄
exempi
(15.49 KB)
📄
exiv2
(203.78 KB)
📄
expand
(32.48 KB)
📄
expr
(36.53 KB)
📄
extresso
(9.22 KB)
📄
f95
(754.58 KB)
📄
factor
(93.29 KB)
📄
fail2ban-client
(1.39 KB)
📄
fail2ban-python
(6.98 KB)
📄
fail2ban-regex
(1.25 KB)
📄
fail2ban-server
(1.39 KB)
📄
fakeidentd
(850.33 KB)
📄
fallocate
(27.84 KB)
📄
false
(28.25 KB)
📄
fatattr
(850.33 KB)
📄
fbset
(850.33 KB)
📄
fbsplash
(850.33 KB)
📄
fc
(26 B)
📄
fc-cache
(132 B)
📄
fc-cache-64
(15.45 KB)
📄
fc-cat
(15.4 KB)
📄
fc-conflist
(11.2 KB)
📄
fc-list
(11.26 KB)
📄
fc-match
(11.32 KB)
📄
fc-pattern
(11.26 KB)
📄
fc-query
(11.23 KB)
📄
fc-scan
(11.27 KB)
📄
fc-validate
(11.27 KB)
📄
fdflush
(850.33 KB)
📄
festival
(22.49 KB)
📄
festival_client
(26.57 KB)
📄
festival_server
(6.89 KB)
📄
festival_server_control
(3.94 KB)
📄
fg
(26 B)
📄
fgconsole
(11.16 KB)
📄
fgrep
(290 B)
📄
file
(19.3 KB)
📄
file-roller
(494.12 KB)
📄
filterdiff
(45.2 KB)
📄
find
(194.63 KB)
📄
find-jar
(748 B)
📄
find-repos-of-install
(4.27 KB)
📄
find2perl
(23.06 KB)
📄
findmnt
(58.38 KB)
📄
fipscheck
(15.37 KB)
📄
fipshmac
(11.3 KB)
📄
firefox
(3.86 KB)
📄
firewall-cmd
(113.48 KB)
📄
firewall-config
(324.5 KB)
📄
firewall-offline-cmd
(101.18 KB)
📄
fisql
(28.09 KB)
📄
fixcvsdiff
(1.83 KB)
📄
flatpak
(1.04 MB)
📄
flex
(318.07 KB)
📄
flex++
(318.07 KB)
📄
flipdiff
(48.7 KB)
📄
flite
(15.28 KB)
📄
flite_time
(11.07 KB)
📄
flock
(23.88 KB)
📄
fmt
(36.48 KB)
📄
fold
(36.46 KB)
📄
fonttosfnt
(35.99 KB)
📄
formail
(43.68 KB)
📄
fprintd-delete
(11.22 KB)
📄
fprintd-enroll
(15.88 KB)
📄
fprintd-list
(11.25 KB)
📄
fprintd-verify
(11.33 KB)
📄
free
(19.33 KB)
📄
freebcp
(23.63 KB)
📄
freeramdisk
(850.33 KB)
📄
freshclam
(39.23 KB)
📄
fribidi
(16.09 KB)
📄
fros
(2.6 KB)
📄
fsview
(161.88 KB)
📄
fsync
(850.33 KB)
📄
ftpd
(850.33 KB)
📄
ftpdctl
(76.91 KB)
📄
ftpget
(850.33 KB)
📄
ftpput
(850.33 KB)
📄
funzip
(31.38 KB)
📄
fusermount
(31.34 KB)
📄
futurize
(304 B)
📄
futurize-2
(304 B)
📄
futurize-2.7
(304 B)
📄
fwupdmgr
(141.8 KB)
📄
g++
(754.59 KB)
📄
gapplication
(19.48 KB)
📄
gatttool
(241.33 KB)
📄
gawk
(418.54 KB)
📄
gcalccmd
(230.96 KB)
📄
gcc
(750.59 KB)
📄
gcc-ar
(26.45 KB)
📄
gcc-nm
(26.45 KB)
📄
gcc-ranlib
(26.45 KB)
📄
gcm-calibrate
(169.2 KB)
📄
gcm-import
(63.91 KB)
📄
gcm-inspect
(63.88 KB)
📄
gcm-picker
(80.23 KB)
📄
gcm-viewer
(104.92 KB)
📄
gconf-merge-tree
(56.85 KB)
📄
gconftool-2
(60.55 KB)
📄
gcore
(2.12 KB)
📄
gcov
(307.45 KB)
📄
gcr-viewer
(11.39 KB)
📄
gdb
(6.51 MB)
📄
gdb-add-index
(1.09 KB)
📄
gdbus
(40.17 KB)
📄
gdk-pixbuf-query-loaders-64
(15.38 KB)
📄
gdk-pixbuf-thumbnailer
(15.59 KB)
📄
gdm-screenshot
(15.11 KB)
📄
gdmflexiserver
(27.73 KB)
📄
gedit
(11.11 KB)
📄
gem
(542 B)
📄
gencat
(22.11 KB)
📄
gendiff
(586 B)
📄
genisoimage
(509.02 KB)
📄
genl-ctrl-list
(11.27 KB)
📄
genresscript
(3.87 KB)
📄
geoiplookup
(15.28 KB)
📄
geoiplookup6
(11.16 KB)
📄
geoipupdate
(31.32 KB)
📄
geqn
(144.41 KB)
📄
getcifsacl
(15.05 KB)
📄
getconf
(22.02 KB)
📄
getent
(26.39 KB)
📄
getfacl
(24.29 KB)
📄
getfattr
(20.06 KB)
📄
getkeycodes
(11.16 KB)
📄
getopt
(15.38 KB)
📄
getopts
(31 B)
📄
gettext
(35.94 KB)
📄
gettext.sh
(4.52 KB)
📄
gettextize
(42.69 KB)
📄
getty
(850.33 KB)
📄
gfortran
(754.58 KB)
📄
ghostscript
(10.97 KB)
📄
gio
(73.41 KB)
📄
gio-querymodules-64
(11.31 KB)
📄
git
(1.46 MB)
📄
git-receive-pack
(1.46 MB)
📄
git-shell
(717.95 KB)
📄
git-upload-archive
(1.46 MB)
📄
git-upload-pack
(791.44 KB)
📄
gjs
(16.08 KB)
📄
gjs-console
(16.08 KB)
📄
gkbd-keyboard-display
(11.4 KB)
📄
glib-compile-schemas
(44.38 KB)
📄
glxgears
(23.75 KB)
📄
glxinfo
(44.02 KB)
📄
glxinfo64
(44.02 KB)
📄
gmake
(178.47 KB)
📄
gneqn
(271 B)
📄
gnome-abrt
(12.49 KB)
📄
gnome-boxes
(1.38 MB)
📄
gnome-calculator
(654.32 KB)
📄
gnome-character-map
(78.97 KB)
📄
gnome-clocks
(289.75 KB)
📄
gnome-contacts
(432.06 KB)
📄
gnome-control-center
(3.2 MB)
📄
gnome-dictionary
(252.54 KB)
📄
gnome-disk-image-mounter
(48.98 KB)
📄
gnome-disks
(570.82 KB)
📄
gnome-documents
(235 B)
📄
gnome-font-viewer
(75.26 KB)
📄
gnome-help
(53.83 KB)
📄
gnome-keyring
(19.45 KB)
📄
gnome-keyring-3
(19.45 KB)
📄
gnome-keyring-daemon
(1.08 MB)
📄
gnome-screenshot
(83.56 KB)
📄
gnome-session
(664 B)
📄
gnome-session-custom-session
(451 B)
📄
gnome-session-inhibit
(11.21 KB)
📄
gnome-session-properties
(70.45 KB)
📄
gnome-session-quit
(11.55 KB)
📄
gnome-session-selector
(24.26 KB)
📄
gnome-shell
(20.06 KB)
📄
gnome-shell-extension-prefs
(2.06 MB)
📄
gnome-shell-extension-tool
(7.16 KB)
📄
gnome-shell-perf-tool
(11.41 KB)
📄
gnome-software
(978.58 KB)
📄
gnome-system-log
(32 B)
📄
gnome-system-monitor
(311.94 KB)
📄
gnome-terminal
(99.51 KB)
📄
gnome-text-editor
(11.11 KB)
📄
gnome-thumbnail-font
(23.85 KB)
📄
gnome-tweaks
(2.69 KB)
📄
gnome-weather
(233 B)
📄
gnroff
(3.31 KB)
📄
gnutls-cli
(92.81 KB)
📄
gnutls-cli-debug
(70.74 KB)
📄
gnutls-serv
(70.41 KB)
📄
gpasswd
(76.57 KB)
📄
gpg
(732.4 KB)
📄
gpg-agent
(289.74 KB)
📄
gpg-connect-agent
(152.69 KB)
📄
gpg-error
(23.18 KB)
📄
gpg-zip
(3.23 KB)
📄
gpg2
(732.4 KB)
📄
gpgconf
(140.31 KB)
📄
gpgparsemail
(23.7 KB)
📄
gpgsplit
(48.88 KB)
📄
gpgv
(345.38 KB)
📄
gpgv2
(345.38 KB)
📄
gpic
(180.41 KB)
📄
gpk-application
(137.37 KB)
📄
gpk-log
(88.33 KB)
📄
gpk-prefs
(84.38 KB)
📄
gpk-update-viewer
(141.1 KB)
📄
gprof
(98.41 KB)
📄
gr2fonttest
(23.66 KB)
📄
grep
(155.3 KB)
📄
grepdiff
(45.2 KB)
📄
grilo-test-ui-0.3
(62.01 KB)
📄
grl-inspect-0.3
(20.48 KB)
📄
grl-launch-0.3
(24.41 KB)
📄
groff
(81.63 KB)
📄
grops
(140.85 KB)
📄
grotty
(98.59 KB)
📄
groups
(32.41 KB)
📄
growisofs
(120.63 KB)
📄
grub2-editenv
(396.08 KB)
📄
grub2-file
(830.36 KB)
📄
grub2-fstest
(1.03 MB)
📄
grub2-glue-efi
(258.86 KB)
📄
grub2-kbdcomp
(1.63 KB)
📄
grub2-menulst2cfg
(241.82 KB)
📄
grub2-mkfont
(287.58 KB)
📄
grub2-mkimage
(379.23 KB)
📄
grub2-mklayout
(264.9 KB)
📄
grub2-mknetdir
(429.8 KB)
📄
grub2-mkpasswd-pbkdf2
(271.3 KB)
📄
grub2-mkrelpath
(258.48 KB)
📄
grub2-mkrescue
(1013.88 KB)
📄
grub2-mkstandalone
(534.27 KB)
📄
grub2-render-label
(835.13 KB)
📄
grub2-script-check
(295.38 KB)
📄
grub2-syslinux2cfg
(763.7 KB)
📄
gs
(10.97 KB)
📄
gsbj
(350 B)
📄
gsdj
(352 B)
📄
gsdj500
(352 B)
📄
gsettings
(23.8 KB)
📄
gsettings-data-convert
(19.77 KB)
📄
gsf-office-thumbnailer
(15.61 KB)
📄
gslj
(353 B)
📄
gslp
(350 B)
📄
gsnd
(277 B)
📄
gsoelim
(32.59 KB)
📄
gsound-play
(15.45 KB)
📄
gst-feedback
(15.63 KB)
📄
gst-feedback-0.10
(3.1 KB)
📄
gst-inspect
(15.63 KB)
📄
gst-inspect-0.10
(44.42 KB)
📄
gst-inspect-1.0
(44.52 KB)
📄
gst-launch
(15.63 KB)
📄
gst-launch-0.10
(36.11 KB)
📄
gst-launch-1.0
(32.13 KB)
📄
gst-stats-1.0
(23.67 KB)
📄
gst-typefind
(15.63 KB)
📄
gst-typefind-0.10
(15.36 KB)
📄
gst-typefind-1.0
(15.38 KB)
📄
gst-xmlinspect
(15.63 KB)
📄
gst-xmlinspect-0.10
(23.5 KB)
📄
gst-xmllaunch
(15.63 KB)
📄
gst-xmllaunch-0.10
(36.11 KB)
📄
gstack
(1.05 KB)
📄
gtar
(338.02 KB)
📄
gtbl
(115.96 KB)
📄
gtf
(15.2 KB)
📄
gtk-launch
(15.48 KB)
📄
gtk-query-immodules-2.0-64
(15.29 KB)
📄
gtk-query-immodules-3.0-64
(19.57 KB)
📄
gtk-update-icon-cache
(32.45 KB)
📄
gtroff
(512.96 KB)
📄
gucharmap
(78.97 KB)
📄
gunzip
(2.2 KB)
📄
gupnp-dlna-info-2.0
(15.39 KB)
📄
gupnp-dlna-ls-profiles-2.0
(11.16 KB)
📄
gvfs-cat
(273 B)
📄
gvfs-copy
(275 B)
📄
gvfs-info
(275 B)
📄
gvfs-less
(884 B)
📄
gvfs-ls
(275 B)
📄
gvfs-mime
(275 B)
📄
gvfs-mkdir
(277 B)
📄
gvfs-monitor-dir
(281 B)
📄
gvfs-monitor-file
(281 B)
📄
gvfs-mount
(277 B)
📄
gvfs-move
(275 B)
📄
gvfs-open
(275 B)
📄
gvfs-rename
(279 B)
📄
gvfs-rm
(279 B)
📄
gvfs-save
(275 B)
📄
gvfs-set-attribute
(273 B)
📄
gvfs-trash
(277 B)
📄
gvfs-tree
(275 B)
📄
gwenview
(550.54 KB)
📄
gwenview_importer
(150.09 KB)
📄
gzexe
(5.79 KB)
📄
gzip
(98.43 KB)
📄
h2ph
(27.65 KB)
📄
h2xs
(59.15 KB)
📄
hangul
(15.34 KB)
📄
hciattach
(140.81 KB)
📄
hciconfig
(195.16 KB)
📄
hcidump
(456.78 KB)
📄
hcitool
(146.3 KB)
📄
hd
(850.33 KB)
📄
hdmv_test
(11.16 KB)
📄
hdparm
(850.33 KB)
📄
hdsploader
(11.18 KB)
📄
head
(40.51 KB)
📄
hesinfo
(11.09 KB)
📄
hex2hcd
(14.99 KB)
📄
hexdump
(32.02 KB)
📄
host
(127.02 KB)
📄
hostid
(28.32 KB)
📄
hostname
(15.41 KB)
📄
hostnamectl
(318.07 KB)
📄
hoststat
(817.3 KB)
📄
hpcups-update-ppds
(3.16 KB)
📄
hpijs
(546.41 KB)
📄
htdbm
(23.1 KB)
📄
htdigest
(15.08 KB)
📄
htpasswd
(19.09 KB)
📄
httxt2dbm
(10.99 KB)
📄
huge_page_setup_helper.py
(12.04 KB)
📄
hugeadm
(64.87 KB)
📄
hugectl
(15.34 KB)
📄
hugeedit
(11.23 KB)
📄
hunspell
(53.11 KB)
📄
hush
(850.33 KB)
📄
hwloc-annotate
(23.52 KB)
📄
hwloc-assembler
(11.17 KB)
📄
hwloc-assembler-remote
(2.29 KB)
📄
hwloc-bind
(35.66 KB)
📄
hwloc-calc
(35.68 KB)
📄
hwloc-compress-dir
(4 KB)
📄
hwloc-diff
(11.16 KB)
📄
hwloc-distances
(15.26 KB)
📄
hwloc-distrib
(19.37 KB)
📄
hwloc-gather-topology
(6.98 KB)
📄
hwloc-info
(35.57 KB)
📄
hwloc-ls
(116.78 KB)
📄
hwloc-patch
(11.16 KB)
📄
hwloc-ps
(15.45 KB)
📄
i2cdetect
(850.33 KB)
📄
i2cdump
(850.33 KB)
📄
i2cget
(850.33 KB)
📄
i2cset
(850.33 KB)
📄
i386
(15.27 KB)
📄
ibus
(32.38 KB)
📄
ibus-daemon
(168.99 KB)
📄
ibus-setup
(1.12 KB)
📄
ibus-table-createdb
(1.08 KB)
📄
ical2vcal
(10.61 KB)
📄
iceauth
(31.73 KB)
📄
icedax
(200.09 KB)
📄
iconv
(58.14 KB)
📄
icotool
(66.15 KB)
📄
id
(36.52 KB)
📄
ident
(110.45 KB)
📄
idiag-socket-details
(11.34 KB)
📄
idn
(32.45 KB)
📄
iecset
(19.38 KB)
📄
ifnames
(4.03 KB)
📄
ifplugd
(850.33 KB)
📄
igawk
(3.11 KB)
📄
ijsgutenprint.5.2
(44.09 KB)
📄
im-chooser
(15.62 KB)
📄
implantisomd5
(15.3 KB)
📄
imsettings-info
(11.3 KB)
📄
imsettings-list
(11.23 KB)
📄
imsettings-reload
(11.21 KB)
📄
imsettings-switch
(15.33 KB)
📄
indent
(73.82 KB)
📄
index_dump
(19.41 KB)
📄
info
(265.19 KB)
📄
infocmp
(56.07 KB)
📄
infokey
(21.47 KB)
📄
infotocap
(64.26 KB)
📄
innochecksum
(11.05 KB)
📄
install
(139.59 KB)
📄
install-catalog
(4.27 KB)
📄
install-printerdriver
(95 B)
📄
instmodsh
(4.15 KB)
📄
instperf
(1.68 KB)
📄
interdiff
(48.7 KB)
📄
intltool-extract
(28.06 KB)
📄
intltool-merge
(38.87 KB)
📄
intltool-prepare
(8.4 KB)
📄
intltool-update
(34.18 KB)
📄
intltoolize
(6.98 KB)
📄
iodbctest
(15.31 KB)
📄
iodbctestw
(19.36 KB)
📄
ionice
(23.86 KB)
📄
iostat
(60.77 KB)
📄
ipaddr
(850.33 KB)
📄
ipcalc
(15.05 KB)
📄
ipcmk
(24 KB)
📄
ipcount
(3.64 KB)
📄
ipcrm
(27.85 KB)
📄
ipcs
(48.37 KB)
📄
iplink
(850.33 KB)
📄
ipmi_sim
(152.94 KB)
📄
ipmi_ui
(15.16 KB)
📄
ipmicmd
(23.21 KB)
📄
ipmilan
(23.59 KB)
📄
ipmish
(32.25 KB)
📄
ipmitool
(935.52 KB)
📄
ipneigh
(850.33 KB)
📄
iproute
(850.33 KB)
📄
iprule
(850.33 KB)
📄
iptab
(982 B)
📄
iptables-xml
(91.52 KB)
📄
iptc
(25.07 KB)
📄
irb
(314 B)
📄
isdv4-serial-inputattach
(19.56 KB)
📄
iso-info
(27.79 KB)
📄
iso-read
(23.6 KB)
📄
isodebug
(60.61 KB)
📄
isodump
(64.73 KB)
📄
isoinfo
(224.45 KB)
📄
isosize
(23.83 KB)
📄
isovfy
(68.66 KB)
📄
isql
(31.69 KB)
📄
itweb-settings
(5.55 KB)
📄
itweb-settings.itweb
(5.55 KB)
📄
iusql
(23.61 KB)
📄
java
(8.77 KB)
📄
javaws
(5.53 KB)
📄
javaws.itweb
(5.53 KB)
📄
jjs
(8.9 KB)
📄
jk_uchroot
(28.85 KB)
📄
jobs
(28 B)
📄
join
(48.75 KB)
📄
journalctl
(537.88 KB)
📄
json_pp
(3.82 KB)
📄
json_reformat
(35.89 KB)
📄
json_verify
(27.52 KB)
📄
json_xs
(6.74 KB)
📄
jvmjar
(1.7 KB)
📄
kabc2mutt
(144.24 KB)
📄
kabcclient
(144.24 KB)
📄
kaccess
(6.99 KB)
📄
kactivitymanagerd
(263.62 KB)
📄
kaddressbook
(32.7 KB)
📄
kaddressbookmigrator
(23.86 KB)
📄
kalarm
(2.07 MB)
📄
kalarmautostart
(23.91 KB)
📄
kapplymousetheme
(11.14 KB)
📄
karm
(11.24 KB)
📄
kbackgroundsnapshot
(100.19 KB)
📄
kbd_mode
(11.16 KB)
📄
kbdinfo
(11.19 KB)
📄
kbdrate
(11.22 KB)
📄
kblankscrn.kss
(32.53 KB)
📄
kbookmarkmerger
(19.55 KB)
📄
kbuildsycoca4
(6.99 KB)
📄
kcalc
(6.98 KB)
📄
kcharselect
(44.97 KB)
📄
kcheckrunning
(7 KB)
📄
kcminit
(6.99 KB)
📄
kcminit_startup
(7 KB)
📄
kcmshell4
(7.06 KB)
📄
kcolorchooser
(15.41 KB)
📄
kcookiejar4
(28.02 KB)
📄
kde-cp
(28.45 KB)
📄
kde-mv
(28.45 KB)
📄
kde-open
(28.41 KB)
📄
kde4
(266 B)
📄
kde4-config
(23.86 KB)
📄
kde4-menu
(19.85 KB)
📄
kdebugdialog
(61.85 KB)
📄
kded4
(6.98 KB)
📄
kdeinit4
(53.04 KB)
📄
kdeinit4_shutdown
(15.35 KB)
📄
kdeinit4_wrapper
(15.35 KB)
📄
kdepasswd
(44.88 KB)
📄
kdesu
(49.17 KB)
📄
kdf
(161.91 KB)
📄
kdialog
(91.14 KB)
📄
kdostartupconfig4
(19.63 KB)
📄
kdumpctl
(33.18 KB)
📄
keditbookmarks
(7 KB)
📄
keditfiletype
(120.48 KB)
📄
kernel-install
(4.7 KB)
📄
keyctl
(27.94 KB)
📄
keytool
(8.9 KB)
📄
kfile4
(32.26 KB)
📄
kfilemetadatareader
(36.59 KB)
📄
kfind
(200.09 KB)
📄
kfmclient
(6.98 KB)
📄
kfontinst
(103.24 KB)
📄
kfontview
(40.94 KB)
📄
kget
(1008.92 KB)
📄
kglobalaccel
(7.07 KB)
📄
kgpg
(869.09 KB)
📄
kgpgconf
(111.89 KB)
📄
khelpcenter
(7.07 KB)
📄
khotnewstuff-upload
(11.34 KB)
📄
khotnewstuff4
(15.53 KB)
📄
kiconfinder
(11.27 KB)
📄
kill
(32.82 KB)
📄
killall
(24.14 KB)
📄
kincidenceeditor
(23.88 KB)
📄
kinfocenter
(113.59 KB)
📄
kioclient
(36.56 KB)
📄
kjotsmigrator
(115.84 KB)
📄
kjs
(24.04 KB)
📄
kjscmd
(23.92 KB)
📄
kleopatra
(2.93 MB)
📄
klipper
(6.99 KB)
📄
klogd
(850.33 KB)
📄
kmag
(129.23 KB)
📄
kmail-migrator
(621.67 KB)
📄
kmailservice
(11.18 KB)
📄
kmenuedit
(6.98 KB)
📄
kmimetypefinder
(15.45 KB)
📄
kmix
(6.98 KB)
📄
kmixctrl
(6.98 KB)
📄
kmod
(143.24 KB)
📄
knotes
(313.18 KB)
📄
knotify4
(157.52 KB)
📄
koi8rxterm
(3.67 KB)
📄
konqueror
(6.99 KB)
📄
konsole
(6.99 KB)
📄
konsolekalendar
(122.68 KB)
📄
konsoleprofile
(1.35 KB)
📄
korgac
(173.69 KB)
📄
korganizer
(62.14 KB)
📄
kquitapp
(15.55 KB)
📄
krandom.kss
(36.84 KB)
📄
krdb
(27 B)
📄
kreadconfig
(19.63 KB)
📄
kres-migrator
(245.65 KB)
📄
krfb
(183.02 KB)
📄
kross
(19.59 KB)
📄
kruler
(82.82 KB)
📄
krunner
(6.98 KB)
📄
kscreen-console
(48.64 KB)
📄
ksflatten
(2.61 KB)
📄
kshell4
(15.34 KB)
📄
ksmserver
(6.98 KB)
📄
ksnapshot
(184.12 KB)
📄
ksplashqml
(32.67 KB)
📄
ksplashsimple
(15.29 KB)
📄
ksplashx
(123.32 KB)
📄
ksplashx_scale
(11.31 KB)
📄
ksshaskpass
(15.38 KB)
📄
ksshell
(7.53 KB)
📄
kstart
(36.52 KB)
📄
kstartupconfig4
(11.09 KB)
📄
ksvalidator
(3.87 KB)
📄
ksverdiff
(3.78 KB)
📄
ksvgtopng
(11.29 KB)
📄
ksysguard
(6.99 KB)
📄
ksysguardd
(155.54 KB)
📄
ksystemlog
(624.15 KB)
📄
ksystraycmd
(32.48 KB)
📄
ktelnetservice
(19.6 KB)
📄
ktimer
(61.64 KB)
📄
ktimetracker
(461.64 KB)
📄
ktraderclient
(15.55 KB)
📄
ktrash
(15.49 KB)
📄
kuiserver
(7.05 KB)
📄
kunittestmodrunner
(11.29 KB)
📄
kuser
(423.91 KB)
📄
kwalletd
(7.05 KB)
📄
kwalletmanager
(262 KB)
📄
kwatchgnupg
(124.88 KB)
📄
kwikdisk
(165.84 KB)
📄
kwin
(10.98 KB)
📄
kwrapper4
(15.34 KB)
📄
kwrite
(7.06 KB)
📄
kwriteconfig
(15.57 KB)
📄
l2ping
(98.2 KB)
📄
l2test
(114.54 KB)
📄
l4p-tmpl
(1.89 KB)
📄
lancelot
(165.49 KB)
📄
last
(19.11 KB)
📄
lastb
(19.11 KB)
📄
lastcomm
(28 KB)
📄
lastlog
(19.15 KB)
📄
lchfn
(15.52 KB)
📄
lchsh
(15.49 KB)
📄
ld
(982.61 KB)
📄
ld.bfd
(982.61 KB)
📄
ld.gold
(5.11 MB)
📄
ldd
(5.18 KB)
📄
ldns-chaos
(11.17 KB)
📄
ldns-compare-zones
(11.25 KB)
📄
ldns-dane
(40.8 KB)
📄
ldns-dpa
(40.07 KB)
📄
ldns-gen-zone
(15.35 KB)
📄
ldns-key2ds
(11.2 KB)
📄
ldns-keyfetcher
(23.67 KB)
📄
ldns-keygen
(15.31 KB)
📄
ldns-mx
(11.09 KB)
📄
ldns-notify
(15.37 KB)
📄
ldns-nsec3-hash
(11.15 KB)
📄
ldns-read-zone
(15.3 KB)
📄
ldns-resolver
(11.09 KB)
📄
ldns-revoke
(11.14 KB)
📄
ldns-rrsig
(11.28 KB)
📄
ldns-signzone
(27.84 KB)
📄
ldns-test-edns
(11.28 KB)
📄
ldns-testns
(32.19 KB)
📄
ldns-update
(15.41 KB)
📄
ldns-verify-zone
(23.71 KB)
📄
ldns-version
(6.98 KB)
📄
ldns-walk
(19.55 KB)
📄
ldns-zcat
(11.18 KB)
📄
ldns-zsplit
(15.28 KB)
📄
ldnsd
(15.36 KB)
📄
less
(154.53 KB)
📄
lessecho
(11.11 KB)
📄
lesskey
(16.66 KB)
📄
lesspipe.sh
(2.24 KB)
📄
letsencrypt
(305 B)
📄
lex
(318.07 KB)
📄
lexgrog
(85.09 KB)
📄
libbluray_test
(11.21 KB)
📄
libieee1284_test
(11.16 KB)
📄
libinput
(19.98 KB)
📄
libinput-debug-events
(164 B)
📄
libinput-list-devices
(164 B)
📄
libnetcfg
(15.36 KB)
📄
libreoffice
(372 B)
📄
libtar
(15.39 KB)
📄
libtool
(314.04 KB)
📄
libtoolize
(76.8 KB)
📄
libwacom-list-local-devices
(11.39 KB)
📄
link
(28.3 KB)
📄
linux-boot-prober
(5.85 KB)
📄
linux32
(15.27 KB)
📄
linux64
(15.27 KB)
📄
linuxrc
(850.33 KB)
📄
list_titles
(11.19 KB)
📄
liveinst
(6.95 KB)
📄
ln
(57.22 KB)
📄
loadfont
(850.33 KB)
📄
loadkeys
(110.48 KB)
📄
loadkmap
(850.33 KB)
📄
loadunimap
(23.88 KB)
📄
locale
(37.11 KB)
📄
localectl
(326.16 KB)
📄
localedef
(318.31 KB)
📄
locate
(39.57 KB)
📄
lockfile
(19.36 KB)
📄
logger
(28.62 KB)
📄
login
(36.38 KB)
📄
loginctl
(489.62 KB)
📄
logname
(28.31 KB)
📄
logread
(850.33 KB)
📄
logresolve
(11 KB)
📄
logview
(125.72 KB)
📄
look
(11.27 KB)
📄
lp
(18.99 KB)
📄
lp.cups
(18.99 KB)
📄
lp_solve
(577.19 KB)
📄
lpd
(850.33 KB)
📄
lpoptions
(14.98 KB)
📄
lppasswd
(14.98 KB)
📄
lpq
(19.02 KB)
📄
lpq.cups
(19.02 KB)
📄
lpr
(14.96 KB)
📄
lpr.cups
(14.96 KB)
📄
lprm
(10.95 KB)
📄
lprm.cups
(10.95 KB)
📄
lprsetup.sh
(5.34 KB)
📄
lpstat
(31.4 KB)
📄
lpstat.cups
(31.4 KB)
📄
ls
(114.85 KB)
📄
lsattr
(11.25 KB)
📄
lsblk
(79.17 KB)
📄
lscpu
(60.75 KB)
📄
lsdiff
(45.2 KB)
📄
lsinitrd
(6.26 KB)
📄
lsipc
(60.95 KB)
📄
lslocks
(41.01 KB)
📄
lslogins
(52.88 KB)
📄
lsmcli
(945 B)
📄
lsmd
(23.45 KB)
📄
lsmem
(40.78 KB)
📄
lsns
(36.43 KB)
📄
lsscsi
(56.48 KB)
📄
lstopo-no-graphics
(116.78 KB)
📄
lsusb
(100.23 KB)
📄
lsusb.py
(13.09 KB)
📄
lua
(15.47 KB)
📄
luac
(119.03 KB)
📄
lwp-download
(8.43 KB)
📄
lwp-dump
(2.73 KB)
📄
lwp-mirror
(2.42 KB)
📄
lwp-request
(14.71 KB)
📄
lz
(2.25 KB)
📄
lz4
(105.84 KB)
📄
lz4c
(105.84 KB)
📄
lz4cat
(105.84 KB)
📄
lzcat
(850.33 KB)
📄
lzma
(850.33 KB)
📄
lzop
(69.32 KB)
📄
m17n-conv
(15.31 KB)
📄
m4
(151.17 KB)
📄
machinectl
(533.95 KB)
📄
mail
(383.67 KB)
📄
mailq
(242.11 KB)
📄
mailq.postfix
(242.11 KB)
📄
mailq.sendmail
(817.3 KB)
📄
mailstat
(5.72 KB)
📄
mailx
(383.67 KB)
📄
make
(178.47 KB)
📄
makedb
(18.11 KB)
📄
makedeltarpm
(68.39 KB)
📄
makedevs
(850.33 KB)
📄
makemap
(0 B)
📄
makemime
(850.33 KB)
📄
man
(100.44 KB)
📄
mandb
(122.25 KB)
📄
manpath
(32.55 KB)
📄
mapscrn
(19.78 KB)
📄
mattrib
(178.63 KB)
📄
mbadblocks
(178.63 KB)
📄
mbim-network
(11.05 KB)
📄
mbimcli
(66.09 KB)
📄
mc-tool
(36.35 KB)
📄
mc-wait-for-name
(11.37 KB)
📄
mcat
(178.63 KB)
📄
mcd
(178.63 KB)
📄
mcheck
(1.64 KB)
📄
mclasserase
(178.63 KB)
📄
mcomp
(847 B)
📄
mcookie
(15.44 KB)
📄
mcopy
(178.63 KB)
📄
md5sum
(40.53 KB)
📄
mdel
(178.63 KB)
📄
mdeltree
(178.63 KB)
📄
mdev
(850.33 KB)
📄
mdig
(44.2 KB)
📄
mdir
(178.63 KB)
📄
mdu
(178.63 KB)
📄
meinproc4
(40.63 KB)
📄
meinproc4_simple
(28.12 KB)
📄
memaslap
(65.37 KB)
📄
memcapable
(57.71 KB)
📄
memcat
(19.99 KB)
📄
memcp
(20.19 KB)
📄
memdump
(15.81 KB)
📄
memerror
(15.46 KB)
📄
memexist
(15.72 KB)
📄
memflush
(15.73 KB)
📄
memhog
(11.47 KB)
📄
memparse
(11.06 KB)
📄
memping
(15.84 KB)
📄
memrm
(15.78 KB)
📄
memslap
(24.55 KB)
📄
memstat
(20.17 KB)
📄
memtouch
(15.8 KB)
📄
merge
(110.43 KB)
📄
mergerepo
(55 B)
📄
mesg
(10.98 KB)
📄
metacity
(572.77 KB)
📄
metacity-message
(11.15 KB)
📄
mformat
(178.63 KB)
📄
microcom
(850.33 KB)
📄
migratepages
(11.51 KB)
📄
migspeed
(15.48 KB)
📄
minfo
(178.63 KB)
📄
mixartloader
(15.38 KB)
📄
mkafmmap
(96.41 KB)
📄
mkdir
(77.9 KB)
📄
mkfifo
(61.59 KB)
📄
mkfontdir
(65 B)
📄
mkfontscale
(32.48 KB)
📄
mkhybrid
(509.02 KB)
📄
mkinitrd
(2.94 KB)
📄
mkisofs
(509.02 KB)
📄
mkmanifest
(11.36 KB)
📄
mknod
(65.61 KB)
📄
mkpasswd
(850.33 KB)
📄
mkrfc2734
(11.09 KB)
📄
mktemp
(40.66 KB)
📄
mlabel
(178.63 KB)
📄
mmc-tool
(27.53 KB)
📄
mmcli
(175.2 KB)
📄
mmd
(178.63 KB)
📄
mmount
(178.63 KB)
📄
mmove
(178.63 KB)
📄
mobj_dump
(23.39 KB)
📄
modifyrepo
(56 B)
📄
modulecmd
(126.09 KB)
📄
modutil
(165.81 KB)
📄
mokutil
(44.94 KB)
📄
more
(40.15 KB)
📄
mount
(43.23 KB)
📄
mountpoint
(15.32 KB)
📄
mousetweaks
(66.26 KB)
📄
mpartition
(178.63 KB)
📄
mpls_dump
(61.08 KB)
📄
mpris-proxy
(93.4 KB)
📄
mpstat
(52.53 KB)
📄
mrd
(178.63 KB)
📄
mren
(178.63 KB)
📄
msgattrib
(23.36 KB)
📄
msgcat
(23.34 KB)
📄
msgcmp
(23.59 KB)
📄
msgcomm
(19.31 KB)
📄
msgconv
(19.3 KB)
📄
msgen
(19.3 KB)
📄
msgexec
(15.33 KB)
📄
msgfilter
(27.56 KB)
📄
msgfmt
(77.05 KB)
📄
msggrep
(35.97 KB)
📄
msghack
(12.45 KB)
📄
msginit
(44.38 KB)
📄
msgmerge
(52.6 KB)
📄
msgunfmt
(31.7 KB)
📄
msguniq
(19.31 KB)
📄
mshortname
(178.63 KB)
📄
mshowfat
(178.63 KB)
📄
msql2mysql
(1.41 KB)
📄
mt
(21.18 KB)
📄
mtools
(178.63 KB)
📄
mtoolstest
(178.63 KB)
📄
mtype
(178.63 KB)
📄
mutter
(11.3 KB)
📄
mv
(127.3 KB)
📄
mxtar
(784 B)
📄
my_print_defaults
(2.78 MB)
📄
myisam_ftdump
(3.15 MB)
📄
myisamchk
(3.26 MB)
📄
myisamlog
(3.13 MB)
📄
myisampack
(3.17 MB)
📄
mysql
(3.38 MB)
📄
mysql_convert_table_format
(4.12 KB)
📄
mysql_find_rows
(3.21 KB)
📄
mysql_fix_extensions
(1.22 KB)
📄
mysql_install_db
(16.31 KB)
📄
mysql_plugin
(2.79 MB)
📄
mysql_secure_installation
(11.84 KB)
📄
mysql_setpermission
(17.05 KB)
📄
mysql_tzinfo_to_sql
(2.79 MB)
📄
mysql_upgrade
(2.86 MB)
📄
mysql_waitpid
(2.78 MB)
📄
mysql_zap
(3.77 KB)
📄
mysqlaccess
(109.35 KB)
📄
mysqladmin
(2.95 MB)
📄
mysqlbinlog
(3.11 MB)
📄
mysqlbug
(10.23 KB)
📄
mysqlcheck
(2.95 MB)
📄
mysqld_multi
(23.55 KB)
📄
mysqld_safe
(26.47 KB)
📄
mysqld_safe_helper
(2.75 MB)
📄
mysqldump
(3.03 MB)
📄
mysqldumpslow
(7.69 KB)
📄
mysqlhotcopy
(34.12 KB)
📄
mysqlimport
(2.95 MB)
📄
mysqlshow
(2.94 MB)
📄
mysqlslap
(2.96 MB)
📄
mysqltest
(3.29 MB)
📄
mzip
(178.63 KB)
📄
nail
(383.67 KB)
📄
named-rrchecker
(15.32 KB)
📄
namei
(27.95 KB)
📄
nanddump
(850.33 KB)
📄
nandwrite
(850.33 KB)
📄
nano
(201.08 KB)
📄
nautilus
(1.6 MB)
📄
nautilus-autorun-software
(53.19 KB)
📄
nautilus-desktop
(1.65 MB)
📄
nautilus-sendto
(15.55 KB)
📄
nbd-client
(850.33 KB)
📄
nc
(371.27 KB)
📄
ncat
(371.27 KB)
📄
ndctl
(168.63 KB)
📄
ndg_httpclient
(340 B)
📄
ndptool
(23.63 KB)
📄
needs-restarting
(8.17 KB)
📄
nenscript
(204.81 KB)
📄
nepomuk-rcgen
(126.75 KB)
📄
nepomuk-simpleresource-rcgen
(22.41 KB)
📄
nepomuk2-rcgen
(114.51 KB)
📄
nepomukbackup
(87.55 KB)
📄
nepomukcleaner
(74.61 KB)
📄
nepomukcontroller
(70.05 KB)
📄
nepomukindexer
(82.55 KB)
📄
nepomukpimindexerutility
(199.12 KB)
📄
nepomukserver
(7.05 KB)
📄
nepomukservicestub
(32.72 KB)
📄
neqn
(271 B)
📄
net
(885.2 KB)
📄
net-server
(3.34 KB)
📄
netstat
(151.38 KB)
📄
nettle-hash
(11.33 KB)
📄
nettle-lfib-stream
(7.05 KB)
📄
newaliases
(242.11 KB)
📄
newaliases.postfix
(242.11 KB)
📄
newaliases.sendmail
(817.3 KB)
📄
newgidmap
(38.09 KB)
📄
newgrp
(40.95 KB)
📄
newuidmap
(38.06 KB)
📄
nf-ct-add
(11.8 KB)
📄
nf-ct-list
(15.84 KB)
📄
nf-exp-add
(16.21 KB)
📄
nf-exp-delete
(15.99 KB)
📄
nf-exp-list
(11.8 KB)
📄
nf-log
(11.23 KB)
📄
nf-monitor
(11.18 KB)
📄
nf-queue
(11.27 KB)
📄
nfs4_editfacl
(31.88 KB)
📄
nfs4_getfacl
(19.23 KB)
📄
nfs4_setfacl
(31.88 KB)
📄
nfsiostat-sysstat
(52.52 KB)
📄
ngettext
(35.95 KB)
📄
nice
(32.32 KB)
📄
nisdomainname
(15.41 KB)
📄
nl
(40.6 KB)
📄
nl-addr-add
(11.65 KB)
📄
nl-addr-delete
(11.73 KB)
📄
nl-addr-list
(15.88 KB)
📄
nl-class-add
(11.7 KB)
📄
nl-class-delete
(11.55 KB)
📄
nl-class-list
(11.48 KB)
📄
nl-classid-lookup
(11.29 KB)
📄
nl-cls-add
(11.76 KB)
📄
nl-cls-delete
(11.68 KB)
📄
nl-cls-list
(11.58 KB)
📄
nl-fib-lookup
(11.41 KB)
📄
nl-link-enslave
(7.05 KB)
📄
nl-link-ifindex2name
(7.06 KB)
📄
nl-link-list
(11.52 KB)
📄
nl-link-name2ifindex
(7.05 KB)
📄
nl-link-release
(7.05 KB)
📄
nl-link-set
(11.64 KB)
📄
nl-link-stats
(11.39 KB)
📄
nl-list-caches
(11.08 KB)
📄
nl-list-sockets
(7.06 KB)
📄
nl-monitor
(11.2 KB)
📄
nl-neigh-add
(11.51 KB)
📄
nl-neigh-delete
(11.57 KB)
📄
nl-neigh-list
(11.46 KB)
📄
nl-neightbl-list
(11.27 KB)
📄
nl-pktloc-lookup
(11.36 KB)
📄
nl-qdisc-add
(11.6 KB)
📄
nl-qdisc-delete
(11.54 KB)
📄
nl-qdisc-list
(11.63 KB)
📄
nl-route-add
(11.73 KB)
📄
nl-route-delete
(15.86 KB)
📄
nl-route-get
(11.18 KB)
📄
nl-route-list
(11.77 KB)
📄
nl-rule-list
(11.3 KB)
📄
nl-tctree-list
(11.53 KB)
📄
nl-util-addr
(7.03 KB)
📄
nm
(45.43 KB)
📄
nm-connection-editor
(788.91 KB)
📄
nm-online
(15.16 KB)
📄
nmcli
(809.16 KB)
📄
nmeter
(850.33 KB)
📄
nmtui
(646.77 KB)
📄
nmtui-connect
(646.77 KB)
📄
nmtui-edit
(646.77 KB)
📄
nmtui-hostname
(646.77 KB)
📄
nohup
(32.42 KB)
📄
notify-send
(15.34 KB)
📄
nproc
(32.37 KB)
📄
nroff
(3.31 KB)
📄
nsenter
(28.22 KB)
📄
nslookup
(130.93 KB)
📄
nspluginscan
(61.2 KB)
📄
nspluginviewer
(159.06 KB)
📄
nss-policy-check
(11.19 KB)
📄
nsupdate
(65.2 KB)
📄
ntpd
(850.33 KB)
📄
numactl
(28.9 KB)
📄
numad
(51.8 KB)
📄
numademo
(35.82 KB)
📄
numastat
(29.19 KB)
📄
numfmt
(64.71 KB)
📄
objcopy
(227.34 KB)
📄
objdump
(357.74 KB)
📄
ocs
(7.11 KB)
📄
ocsptool
(34.58 KB)
📄
od
(64.81 KB)
📄
odbc_config
(11.04 KB)
📄
odbcinst
(27.69 KB)
📄
oddjob_request
(35.75 KB)
📄
ogg123
(83.96 KB)
📄
oggdec
(15.78 KB)
📄
oggenc
(70.52 KB)
📄
ogginfo
(36.1 KB)
📄
okular
(66.04 KB)
📄
oldfind
(186.41 KB)
📄
omping
(60.81 KB)
📄
on_ac_power
(1.47 KB)
📄
onto2vocabularyclass
(56.77 KB)
📄
oocalc
(39 B)
📄
oodraw
(39 B)
📄
ooffice
(32 B)
📄
ooimpress
(42 B)
📄
oomath
(39 B)
📄
ooviewdoc
(39 B)
📄
oowriter
(41 B)
📄
open
(19.48 KB)
📄
openipmi_eventd
(23.27 KB)
📄
openipmicmd
(23.21 KB)
📄
openipmish
(32.25 KB)
📄
openoffice.org
(372 B)
📄
openssl
(542.27 KB)
📄
openvt
(19.48 KB)
📄
orbd
(8.95 KB)
📄
orc-bugreport
(15.39 KB)
📄
orca
(12.76 KB)
📄
os-prober
(5.51 KB)
📄
osinfo-db-export
(19.71 KB)
📄
osinfo-db-import
(15.47 KB)
📄
osinfo-db-path
(11.29 KB)
📄
osinfo-db-validate
(19.55 KB)
📄
osinfo-detect
(15.55 KB)
📄
osinfo-install-script
(20.12 KB)
📄
osinfo-query
(16.45 KB)
📄
osql
(9.15 KB)
📄
over
(106 B)
📄
oxygen-demo
(169.28 KB)
📄
oxygen-gtk-demo
(80.89 KB)
📄
oxygen-settings
(28.34 KB)
📄
oxygen-shadow-demo
(53.28 KB)
📄
p11-kit
(32.18 KB)
📄
p11tool
(189.69 KB)
📄
pacat
(43.28 KB)
📄
pack200
(8.9 KB)
📄
package-cleanup
(17.39 KB)
📄
package-stash-conflicts
(487 B)
📄
pacmd
(18.98 KB)
📄
pactl
(59.42 KB)
📄
padsp
(2.18 KB)
📄
padsp-32
(2.17 KB)
📄
page_owner_sort
(10.2 KB)
📄
pagesize
(32.21 KB)
📄
pamon
(43.28 KB)
📄
panelctl
(12.38 KB)
📄
pango-list
(11.1 KB)
📄
pango-querymodules-64
(28.26 KB)
📄
pango-view
(49.47 KB)
📄
paperconf
(11.23 KB)
📄
paplay
(43.28 KB)
📄
paps
(31.9 KB)
📄
parec
(43.28 KB)
📄
parecord
(43.28 KB)
📄
passwd
(27.2 KB)
📄
paste
(32.34 KB)
📄
pasteurize
(308 B)
📄
pasteurize-2
(308 B)
📄
pasteurize-2.7
(308 B)
📄
pasuspender
(15.13 KB)
📄
patch
(147 KB)
📄
pathchk
(32.31 KB)
📄
pax11publish
(14.99 KB)
📄
pbm2ppa
(27.48 KB)
📄
pbmtpg
(11.12 KB)
📄
pchrt
(3.93 KB)
📄
pdbedit
(44.78 KB)
📄
pdf2dsc
(698 B)
📄
pdf2ps
(909 B)
📄
pdfdetach
(16.16 KB)
📄
pdffonts
(15.63 KB)
📄
pdfimages
(44.59 KB)
📄
pdfinfo
(28.24 KB)
📄
pdfseparate
(15.52 KB)
📄
pdftocairo
(120.45 KB)
📄
pdftohtml
(90.21 KB)
📄
pdftoppm
(19.64 KB)
📄
pdftops
(19.77 KB)
📄
pdftotext
(28.08 KB)
📄
pdfunite
(19.78 KB)
📄
pear
(333 B)
📄
peardev
(360 B)
📄
pecl
(248 B)
📄
peekfd
(11.21 KB)
📄
perl
(11.14 KB)
📄
perl5.16.3
(11.14 KB)
📄
perlbug
(43.61 KB)
📄
perldoc
(203 B)
📄
perlivp
(10.52 KB)
📄
perlthanks
(43.61 KB)
📄
perror
(2.9 MB)
📄
pf2afm
(498 B)
📄
pfbtopfa
(516 B)
📄
pflags
(2.06 KB)
📄
pgawk
(418.63 KB)
📄
pgrep
(27.67 KB)
📄
phar
(14.46 KB)
📄
phar.phar
(14.46 KB)
📄
php
(5.08 MB)
📄
php-cgi
(4.97 MB)
📄
phpize
(4.65 KB)
📄
pic
(180.41 KB)
📄
piconv
(7.99 KB)
📄
pidstat
(68.88 KB)
📄
pinentry
(2.54 KB)
📄
pinentry-curses
(49.19 KB)
📄
pinentry-gtk
(108.2 KB)
📄
pinentry-gtk-2
(108.2 KB)
📄
pinentry-qt
(151.05 KB)
📄
pinfo
(98.52 KB)
📄
ping
(64.63 KB)
📄
ping6
(64.63 KB)
📄
pinky
(36.57 KB)
📄
pipe_progress
(850.33 KB)
📄
pitchplay
(1005 B)
📄
pk12util
(103.21 KB)
📄
pkaction
(15 KB)
📄
pkcheck
(23.03 KB)
📄
pkcon
(73.47 KB)
📄
pkcs1-conv
(15.52 KB)
📄
pkexec
(27.02 KB)
📄
pkg-config
(44.38 KB)
📄
pkill
(27.67 KB)
📄
pkla-admin-identities
(19.23 KB)
📄
pkla-check-authorization
(27.3 KB)
📄
pkmon
(19.83 KB)
📄
pkttyagent
(18.98 KB)
📄
pl2pm
(4.42 KB)
📄
plasma-desktop
(7 KB)
📄
plasma-netbook
(6.99 KB)
📄
plasma-overlay
(180.77 KB)
📄
plasma-remote-helper
(19.67 KB)
📄
plasma-windowed
(7 KB)
📄
plasmapkg
(52.7 KB)
📄
play
(64.75 KB)
📄
pldd
(14.11 KB)
📄
plistutil
(11.16 KB)
📄
plymouth
(39.77 KB)
📄
pm-is-supported
(983 B)
📄
pmap
(27.61 KB)
📄
pnm2ppa
(611.31 KB)
📄
pod2html
(4 KB)
📄
pod2man
(13.26 KB)
📄
pod2text
(10.75 KB)
📄
pod2usage
(3.67 KB)
📄
policyeditor
(5.56 KB)
📄
policyeditor.itweb
(5.56 KB)
📄
policytool
(8.91 KB)
📄
popmaildir
(850.33 KB)
📄
post-grohtml
(187.55 KB)
📄
powernow-k8-decode
(6.15 KB)
📄
powertop
(850.33 KB)
📄
ppdc
(19.11 KB)
📄
ppdhtml
(11.09 KB)
📄
ppdi
(11.07 KB)
📄
ppdmerge
(15.02 KB)
📄
ppdpo
(11.09 KB)
📄
pphs
(404 B)
📄
pr
(65.11 KB)
📄
pre-grohtml
(86.24 KB)
📄
preconv
(40.88 KB)
📄
preparetips
(998 B)
📄
printafm
(395 B)
📄
printenv
(28.28 KB)
📄
printf
(48.61 KB)
📄
prlimit
(41.2 KB)
📄
procmail
(105.45 KB)
📄
procmail-wrapper
(8.45 KB)
📄
profiles
(47.5 KB)
📄
prove
(13.13 KB)
📄
prtstat
(15.25 KB)
📄
ps
(97.77 KB)
📄
ps2ascii
(631 B)
📄
ps2epsi
(2.69 KB)
📄
ps2pdf
(272 B)
📄
ps2pdf12
(215 B)
📄
ps2pdf13
(215 B)
📄
ps2pdf14
(215 B)
📄
ps2pdfwr
(1.07 KB)
📄
ps2ps
(647 B)
📄
ps2ps2
(669 B)
📄
pscan
(850.33 KB)
📄
psed
(52.08 KB)
📄
psfaddtable
(19.48 KB)
📄
psfgettable
(19.48 KB)
📄
psfstriptable
(19.48 KB)
📄
psfxtable
(19.48 KB)
📄
psktool
(16.38 KB)
📄
pstack
(1.05 KB)
📄
pstree
(27.84 KB)
📄
pstree.x11
(27.84 KB)
📄
pstruct
(35.75 KB)
📄
ptar
(3.43 KB)
📄
ptardiff
(2.41 KB)
📄
ptargrep
(4.13 KB)
📄
ptaskset
(3.8 KB)
📄
ptx
(65.08 KB)
📄
pulseaudio
(87.64 KB)
📄
purgestat
(817.3 KB)
📄
purple-client-example
(7.04 KB)
📄
purple-remote
(7.92 KB)
📄
purple-send
(776 B)
📄
purple-send-async
(635 B)
📄
purple-url-handler
(11.79 KB)
📄
pwd
(32.45 KB)
📄
pwdx
(11.27 KB)
📄
pwmake
(11.13 KB)
📄
pwscore
(11.13 KB)
📄
pydoc
(78 B)
📄
pygtk-demo
(188 B)
📄
pyinotify
(42 B)
📄
python
(6.98 KB)
📄
python2
(6.98 KB)
📄
python2.7
(6.98 KB)
📄
qcatool2
(269.42 KB)
📄
qdbus
(65.19 KB)
📄
qemu-ga
(267.8 KB)
📄
qemu-img
(800.89 KB)
📄
qemu-io
(772.91 KB)
📄
qemu-nbd
(777.15 KB)
📄
qmi-network
(13.14 KB)
📄
qmicli
(332.62 KB)
📄
quota
(83.31 KB)
📄
quotasync
(70.84 KB)
📄
raidautorun
(850.33 KB)
📄
ranlib
(61.22 KB)
📄
rapper
(23.59 KB)
📄
rarian-example
(11.13 KB)
📄
rarian-sk-config
(1.46 KB)
📄
rarian-sk-extract
(567 B)
📄
rarian-sk-gen-uuid
(7.04 KB)
📄
rarian-sk-get-cl
(72 KB)
📄
rarian-sk-get-content-list
(399 B)
📄
rarian-sk-get-extended-content-list
(419 B)
📄
rarian-sk-get-scripts
(382 B)
📄
rarian-sk-install
(1.14 KB)
📄
rarian-sk-migrate
(80.22 KB)
📄
rarian-sk-preinstall
(71.91 KB)
📄
rarian-sk-rebuild
(825 B)
📄
rarian-sk-update
(9.31 KB)
📄
raw
(15.27 KB)
📄
rb
(74.96 KB)
📄
rcs
(175.6 KB)
📄
rcsclean
(819 B)
📄
rcsdiff
(816 B)
📄
rcsfreeze
(4.34 KB)
📄
rcsmerge
(819 B)
📄
rctest
(149.13 KB)
📄
rdate
(10.3 KB)
📄
rdev
(850.33 KB)
📄
rdfproc
(40.46 KB)
📄
rdoc
(934 B)
📄
read
(28 B)
📄
readahead
(850.33 KB)
📄
readcd
(97.57 KB)
📄
readelf
(509.83 KB)
📄
readlink
(40.82 KB)
📄
readmult
(800 B)
📄
readom
(97.57 KB)
📄
realpath
(61.23 KB)
📄
rebuild-jar-repository
(1.76 KB)
📄
rec
(64.75 KB)
📄
recode-sr-latin
(15.29 KB)
📄
recountdiff
(3.36 KB)
📄
red
(89 B)
📄
rediff
(36.04 KB)
📄
redland-db-upgrade
(11.12 KB)
📄
reformime
(850.33 KB)
📄
remove-shell
(850.33 KB)
📄
rename
(11.26 KB)
📄
renice
(11.21 KB)
📄
replace
(2.77 MB)
📄
repo-graph
(4.09 KB)
📄
repo-rss
(10.07 KB)
📄
repoclosure
(11.42 KB)
📄
repodiff
(13.97 KB)
📄
repomanage
(6.88 KB)
📄
repoquery
(55.68 KB)
📄
report-cli
(28.03 KB)
📄
report-gtk
(127.45 KB)
📄
reporter-bugzilla
(52.74 KB)
📄
reporter-mailx
(32.1 KB)
📄
reporter-mantisbt
(56.94 KB)
📄
reporter-rhtsupport
(53.04 KB)
📄
reporter-upload
(15.29 KB)
📄
reporter-ureport
(19.3 KB)
📄
reposync
(14.14 KB)
📄
repotrack
(9.86 KB)
📄
rescan-scsi-bus.sh
(33.81 KB)
📄
reset
(19.6 KB)
📄
resize
(19.69 KB)
📄
resizecons
(19.63 KB)
📄
resolve_stack_dump
(2.78 MB)
📄
resolveip
(2.78 MB)
📄
rev
(11.26 KB)
📄
rfcomm
(106.92 KB)
📄
rhino
(594 B)
📄
ri
(184 B)
📄
rlog
(807 B)
📄
rm
(61.4 KB)
📄
rmail
(262 B)
📄
rmail.postfix
(262 B)
📄
rmail.sendmail
(79.13 KB)
📄
rmcp_ping
(14.99 KB)
📄
rmdir
(44.46 KB)
📄
rmid
(8.9 KB)
📄
rmiregistry
(8.91 KB)
📄
rnano
(201.08 KB)
📄
rngtest
(16.02 KB)
📄
roqet
(36.85 KB)
📄
rpcgen
(90.45 KB)
📄
rpm
(15.75 KB)
📄
rpm2cpio
(11.16 KB)
📄
rpmbuild
(25.57 KB)
📄
rpmdb
(11.73 KB)
📄
rpmdumpheader
(11.09 KB)
📄
rpmkeys
(11.73 KB)
📄
rpmquery
(15.75 KB)
📄
rpmsign
(15.8 KB)
📄
rpmspec
(15.99 KB)
📄
rpmverify
(15.75 KB)
📄
rrdcached
(52.98 KB)
📄
rrdcgi
(27.81 KB)
📄
rrdcreate
(89.35 KB)
📄
rrdinfo
(89.35 KB)
📄
rrdtool
(27.49 KB)
📄
rrdupdate
(89.35 KB)
📄
rst2html
(593 B)
📄
rst2latex
(790 B)
📄
rst2man
(599 B)
📄
rst2odt
(763 B)
📄
rst2odt_prepstyles
(1.66 KB)
📄
rst2pseudoxml
(600 B)
📄
rst2s5
(636 B)
📄
rst2xetex
(785 B)
📄
rst2xml
(601 B)
📄
rstpep2html
(669 B)
📄
rsync
(488.38 KB)
📄
rsyslog-recover-qi.pl
(5.96 KB)
📄
ruby
(7.02 KB)
📄
run-parts
(2.04 KB)
📄
runcon
(32.47 KB)
📄
runsv
(850.33 KB)
📄
runsvdir
(850.33 KB)
📄
rvi
(906.45 KB)
📄
rview
(906.45 KB)
📄
rvim
(2.23 MB)
📄
rx
(74.96 KB)
📄
rxe_cfg
(14.78 KB)
📄
rz
(74.96 KB)
📄
s2p
(52.08 KB)
📄
sa-awl
(4.91 KB)
📄
sa-check_spamd
(14.45 KB)
📄
sa-compile
(21.62 KB)
📄
sa-learn
(44.5 KB)
📄
sa-update
(68.06 KB)
📄
sadf
(168.45 KB)
📄
sandbox
(17.52 KB)
📄
sane-find-scanner
(113.04 KB)
📄
sar
(95.38 KB)
📄
sasl2-sample-client
(19.27 KB)
📄
sasl2-sample-server
(19.1 KB)
📄
satyr
(15.4 KB)
📄
saytime
(5.76 KB)
📄
sb
(78.98 KB)
📄
sbcdec
(63.66 KB)
📄
sbcenc
(63.79 KB)
📄
sbcinfo
(11.13 KB)
📄
scanimage
(48.1 KB)
📄
scl
(19.5 KB)
📄
scl_enabled
(258 B)
📄
scl_source
(1.83 KB)
📄
scp
(89.23 KB)
📄
scp-dbus-service
(90 B)
📄
script
(19.61 KB)
📄
scriptreplay
(15.29 KB)
📄
scrollkeeper-config
(1.46 KB)
📄
scrollkeeper-extract
(567 B)
📄
scrollkeeper-gen-seriesid
(7.04 KB)
📄
scrollkeeper-get-cl
(72 KB)
📄
scrollkeeper-get-content-list
(399 B)
📄
scrollkeeper-get-extended-content-list
(419 B)
📄
scrollkeeper-get-index-from-docpath
(382 B)
📄
scrollkeeper-get-toc-from-docpath
(382 B)
📄
scrollkeeper-get-toc-from-id
(382 B)
📄
scrollkeeper-install
(1.14 KB)
📄
scrollkeeper-preinstall
(71.91 KB)
📄
scrollkeeper-rebuilddb
(825 B)
📄
scrollkeeper-uninstall
(1.14 KB)
📄
scrollkeeper-update
(9.31 KB)
📄
scsi-rescan
(33.81 KB)
📄
scsi_logging_level
(7.72 KB)
📄
scsi_mandat
(3.55 KB)
📄
scsi_readcap
(1.3 KB)
📄
scsi_ready
(1.09 KB)
📄
scsi_satl
(3.76 KB)
📄
scsi_start
(1.25 KB)
📄
scsi_stop
(1.44 KB)
📄
scsi_temperature
(936 B)
📄
sctp_darn
(44.55 KB)
📄
sctp_status
(23.67 KB)
📄
sctp_test
(31.78 KB)
📄
sdiff
(48.48 KB)
📄
sdp_long_message
(23.03 KB)
📄
sdp_run_test
(11.29 KB)
📄
sdptool
(209.02 KB)
📄
sdrcomp
(67.11 KB)
📄
seahorse
(1.06 MB)
📄
sealert
(26.67 KB)
📄
seapplet
(19.7 KB)
📄
secon
(24.06 KB)
📄
secret-tool
(19.68 KB)
📄
sed
(74.29 KB)
📄
sedismod
(249.42 KB)
📄
sedispol
(176.32 KB)
📄
semodule_package
(15.3 KB)
📄
sendiso
(11.52 KB)
📄
sensors
(27.53 KB)
📄
sensors-conf-convert
(13.33 KB)
📄
seq
(48.48 KB)
📄
servertool
(8.91 KB)
📄
servicemenudeinstallation
(1.16 KB)
📄
servicemenuinstallation
(3.56 KB)
📄
sessreg
(11.24 KB)
📄
setarch
(15.27 KB)
📄
setcifsacl
(19.1 KB)
📄
setconsole
(850.33 KB)
📄
setfacl
(36.73 KB)
📄
setfattr
(15.71 KB)
📄
setfont
(40.38 KB)
📄
setkeycodes
(11.16 KB)
📄
setleds
(11.16 KB)
📄
setlogcons
(850.33 KB)
📄
setmetamode
(11.21 KB)
📄
setpriv
(36.06 KB)
📄
setserial
(20.54 KB)
📄
setsid
(11.23 KB)
📄
setterm
(27.48 KB)
📄
setuidgid
(850.33 KB)
📄
setup
(6.95 KB)
📄
setup-nsssysinit
(1.5 KB)
📄
setup-nsssysinit.sh
(1.5 KB)
📄
setvtrgb
(11.34 KB)
📄
setxkbmap
(23.96 KB)
📄
sexp-conv
(23.63 KB)
📄
sftp
(142.01 KB)
📄
sg
(40.95 KB)
📄
sg_compare_and_write
(15.82 KB)
📄
sg_copy_results
(20.02 KB)
📄
sg_dd
(43.63 KB)
📄
sg_decode_sense
(15.49 KB)
📄
sg_emc_trespass
(11.09 KB)
📄
sg_format
(24.05 KB)
📄
sg_get_config
(28.22 KB)
📄
sg_get_lba_status
(15.5 KB)
📄
sg_ident
(15.46 KB)
📄
sg_inq
(83.68 KB)
📄
sg_logs
(92.48 KB)
📄
sg_luns
(19.65 KB)
📄
sg_map
(15.23 KB)
📄
sg_map26
(23.77 KB)
📄
sg_modes
(29.3 KB)
📄
sg_opcodes
(23.88 KB)
📄
sg_persist
(28.34 KB)
📄
sg_prevent
(11.29 KB)
📄
sg_raw
(19.78 KB)
📄
sg_rbuf
(19.66 KB)
📄
sg_rdac
(15.13 KB)
📄
sg_read
(23.33 KB)
📄
sg_read_block_limits
(11.31 KB)
📄
sg_read_buffer
(15.53 KB)
📄
sg_read_long
(15.55 KB)
📄
sg_readcap
(19.66 KB)
📄
sg_reassign
(15.54 KB)
📄
sg_referrals
(15.48 KB)
📄
sg_requests
(15.58 KB)
📄
sg_reset
(11.46 KB)
📄
sg_rmsn
(11.32 KB)
📄
sg_rtpg
(15.39 KB)
📄
sg_safte
(19.59 KB)
📄
sg_sanitize
(19.88 KB)
📄
sg_sat_identify
(15.55 KB)
📄
sg_sat_phy_event
(15.87 KB)
📄
sg_sat_set_features
(15.41 KB)
📄
sg_scan
(15.34 KB)
📄
sg_senddiag
(20.02 KB)
📄
sg_ses
(67.55 KB)
📄
sg_start
(19.7 KB)
📄
sg_stpg
(19.61 KB)
📄
sg_sync
(15.52 KB)
📄
sg_test_rwbuf
(15.6 KB)
📄
sg_turs
(15.48 KB)
📄
sg_unmap
(15.5 KB)
📄
sg_verify
(15.7 KB)
📄
sg_vpd
(77.67 KB)
📄
sg_wr_mode
(19.55 KB)
📄
sg_write_buffer
(15.66 KB)
📄
sg_write_long
(15.55 KB)
📄
sg_write_same
(19.9 KB)
📄
sg_xcopy
(35.61 KB)
📄
sginfo
(65.8 KB)
📄
sgm_dd
(31.52 KB)
📄
sgmlwhich
(265 B)
📄
sgp_dd
(35.83 KB)
📄
sh
(941.93 KB)
📄
sha1sum
(36.57 KB)
📄
sha224sum
(40.63 KB)
📄
sha256sum
(40.63 KB)
📄
sha384sum
(40.65 KB)
📄
sha3sum
(850.33 KB)
📄
sha512sum
(40.65 KB)
📄
shasum
(8.4 KB)
📄
show-changed-rco
(10.13 KB)
📄
show-installed
(16.18 KB)
📄
showconsolefont
(15.47 KB)
📄
showkey
(15.23 KB)
📄
showrgb
(7.08 KB)
📄
shred
(52.94 KB)
📄
shuf
(49.13 KB)
📄
signver
(102.59 KB)
📄
sigtool
(207.89 KB)
📄
sim_lsmplugin
(1.22 KB)
📄
simc_lsmplugin
(105.79 KB)
📄
size
(32.35 KB)
📄
skill
(23.62 KB)
📄
slabinfo
(34.96 KB)
📄
slabtop
(19.52 KB)
📄
sleep
(32.35 KB)
📄
sliceprint
(1.99 KB)
📄
slogin
(756.39 KB)
📄
smbcontrol
(56.14 KB)
📄
smbpasswd
(35.07 KB)
📄
smbstatus
(71.27 KB)
📄
smemcap
(850.33 KB)
📄
sndfile-resample
(15.19 KB)
📄
snice
(23.62 KB)
📄
snmpbulkget
(11 KB)
📄
snmpbulkwalk
(15.02 KB)
📄
snmpdelta
(19.13 KB)
📄
snmpdf
(14.95 KB)
📄
snmpget
(10.89 KB)
📄
snmpgetnext
(10.9 KB)
📄
snmpinform
(15.29 KB)
📄
snmpnetstat
(48.01 KB)
📄
snmpset
(14.9 KB)
📄
snmpstatus
(15.78 KB)
📄
snmptable
(23.01 KB)
📄
snmptest
(14.91 KB)
📄
snmptls
(19.06 KB)
📄
snmptranslate
(14.91 KB)
📄
snmptrap
(15.29 KB)
📄
snmpusm
(35.22 KB)
📄
snmpvacm
(32.12 KB)
📄
snmpwalk
(15 KB)
📄
soelim
(32.59 KB)
📄
soffice
(5.75 KB)
📄
softlimit
(850.33 KB)
📄
solid-action-desktop-gen
(36.49 KB)
📄
solid-hardware
(44.95 KB)
📄
solterm
(23.34 KB)
📄
sopranocmd
(93.73 KB)
📄
sopranod
(28.3 KB)
📄
sort
(114.94 KB)
📄
sotruss
(4.24 KB)
📄
sound_dump
(15.33 KB)
📄
soundstretch
(26.59 KB)
📄
sox
(64.75 KB)
📄
soxi
(64.75 KB)
📄
spamassassin
(29.22 KB)
📄
spamc
(45.19 KB)
📄
spamd
(125.25 KB)
📄
spd-conf
(218 B)
📄
spd-say
(19.98 KB)
📄
spdsend
(15.55 KB)
📄
speaker-test
(27.93 KB)
📄
speech-dispatcher
(138.47 KB)
📄
spice-vdagent
(65.05 KB)
📄
spinner
(2.38 KB)
📄
splain
(18.03 KB)
📄
split
(69.47 KB)
📄
splitdiff
(3.11 KB)
📄
sprof
(22.1 KB)
📄
sqlite3
(54.95 KB)
📄
ssh
(756.39 KB)
📄
ssh-add
(352.48 KB)
📄
ssh-agent
(373.26 KB)
📄
ssh-copy-id
(10.22 KB)
📄
ssh-keygen
(409.38 KB)
📄
ssh-keyscan
(430.7 KB)
📄
ssl_client
(850.33 KB)
📄
ssltap
(118.42 KB)
📄
stap
(3.39 MB)
📄
stap-merge
(10.96 KB)
📄
stap-prep
(4.08 KB)
📄
stap-report
(4.74 KB)
📄
stapbpf
(64.53 KB)
📄
stapdyn
(195.27 KB)
📄
staprun
(207.11 KB)
📄
stapsh
(23.18 KB)
📄
start-pulseaudio-x11
(1.31 KB)
📄
start-stop-daemon
(850.33 KB)
📄
startkde
(12.45 KB)
📄
startx
(5.44 KB)
📄
stat
(77.19 KB)
📄
states
(97.16 KB)
📄
stdbuf
(64.88 KB)
📄
strace
(1009.21 KB)
📄
strace-log-merge
(1.28 KB)
📄
strings
(32.55 KB)
📄
strip
(227.34 KB)
📄
stty
(68.61 KB)
📄
stunbdc
(44.29 KB)
📄
stund
(40.08 KB)
📄
su
(31.38 KB)
📄
sudo
(147.88 KB)
📄
sudoedit
(147.88 KB)
📄
sudoreplay
(56.11 KB)
📄
sum
(36.55 KB)
📄
sushi
(546 B)
📄
sv
(850.33 KB)
📄
svc
(850.33 KB)
📄
svlogd
(850.33 KB)
📄
svn
(232.45 KB)
📄
svnadmin
(67.4 KB)
📄
svndumpfilter
(35.32 KB)
📄
svnlook
(67.45 KB)
📄
svnrdump
(51.54 KB)
📄
svnserve
(83.95 KB)
📄
svnsync
(51.59 KB)
📄
svnversion
(15.15 KB)
📄
sweeper
(74.41 KB)
📄
swig
(1.35 MB)
📄
sx
(78.98 KB)
📄
sync
(28.33 KB)
📄
synclient
(18.76 KB)
📄
syndaemon
(19.6 KB)
📄
syslogd
(850.33 KB)
📄
system-config-abrt
(15.27 KB)
📄
system-config-date
(84 B)
📄
system-config-printer
(95 B)
📄
system-config-printer-applet
(80 B)
📄
systemctl
(704.8 KB)
📄
systemd-analyze
(1.49 MB)
📄
systemd-ask-password
(60.38 KB)
📄
systemd-cat
(39.98 KB)
📄
systemd-cgls
(326.29 KB)
📄
systemd-cgtop
(85.09 KB)
📄
systemd-coredumpctl
(154.52 KB)
📄
systemd-delta
(76.84 KB)
📄
systemd-detect-virt
(39.97 KB)
📄
systemd-escape
(48.2 KB)
📄
systemd-firstboot
(101.52 KB)
📄
systemd-hwdb
(85.31 KB)
📄
systemd-inhibit
(309.83 KB)
📄
systemd-loginctl
(489.62 KB)
📄
systemd-machine-id-setup
(52.23 KB)
📄
systemd-notify
(48.13 KB)
📄
systemd-nspawn
(545.88 KB)
📄
systemd-path
(52.16 KB)
📄
systemd-run
(387.05 KB)
📄
systemd-stdio-bridge
(305.77 KB)
📄
systemd-sysv-convert
(3.89 KB)
📄
systemd-tmpfiles
(146.13 KB)
📄
systemd-tty-ask-password-agent
(84.75 KB)
📄
systemsettings
(91.87 KB)
📄
sz
(78.98 KB)
📄
tabs
(15.31 KB)
📄
tac
(32.48 KB)
📄
tail
(65.25 KB)
📄
tailf
(23.88 KB)
📄
tapestat
(52.55 KB)
📄
tar
(338.02 KB)
📄
targetcli
(10.34 KB)
📄
targetclid
(7.97 KB)
📄
targetctl
(2.09 KB)
📄
targetd
(837 B)
📄
taskset
(32.22 KB)
📄
tbl
(115.96 KB)
📄
tclsh
(7 KB)
📄
tclsh8.5
(7 KB)
📄
tcpsvd
(850.33 KB)
📄
tcptraceroute
(1.44 KB)
📄
tcsh
(395.15 KB)
📄
tdspool
(301.54 KB)
📄
teamd
(155.09 KB)
📄
teamdctl
(28.98 KB)
📄
teamnl
(19.09 KB)
📄
teamviewer
(360 B)
📄
tee
(32.38 KB)
📄
telepathy-gabble-xmpp-console
(13.63 KB)
📄
telnet
(99.41 KB)
📄
telnetd
(850.33 KB)
📄
test
(36.46 KB)
📄
test_ppa
(6.68 KB)
📄
testgdbm
(29.77 KB)
📄
testlibraw
(15.37 KB)
📄
testparm
(31.01 KB)
📄
testrb
(74 B)
📄
text2wave
(6.31 KB)
📄
tftp
(850.33 KB)
📄
tftpd
(850.33 KB)
📄
tgz
(2.24 KB)
📄
tic
(64.26 KB)
📄
time
(15.55 KB)
📄
timedatectl
(330.22 KB)
📄
timeout
(53.31 KB)
📄
tload
(15.38 KB)
📄
tmon
(31.11 KB)
📄
tnameserv
(8.95 KB)
📄
toc2cddb
(221.41 KB)
📄
toc2cue
(221.37 KB)
📄
toe
(15.43 KB)
📄
top
(104.38 KB)
📄
totem
(15.23 KB)
📄
totem-video-thumbnailer
(28.13 KB)
📄
touch
(61.02 KB)
📄
tpmtool
(101.51 KB)
📄
tput
(15.41 KB)
📄
tr
(44.61 KB)
📄
tracepath
(15.05 KB)
📄
tracepath6
(15.05 KB)
📄
traceroute
(61.86 KB)
📄
traceroute6
(61.86 KB)
📄
tracker
(114.7 KB)
📄
troff
(512.96 KB)
📄
true
(28.26 KB)
📄
truncate
(52.68 KB)
📄
trust
(179.08 KB)
📄
tset
(19.6 KB)
📄
tsort
(36.47 KB)
📄
tsql
(285 KB)
📄
ttmkfdir
(99.04 KB)
📄
tty
(28.29 KB)
📄
ttysize
(850.33 KB)
📄
tunctl
(850.33 KB)
📄
turbostat
(113.15 KB)
📄
tzselect
(7.17 KB)
📄
ubiattach
(850.33 KB)
📄
ubidetach
(850.33 KB)
📄
ubimkvol
(850.33 KB)
📄
ubirename
(850.33 KB)
📄
ubirmvol
(850.33 KB)
📄
ubirsvol
(850.33 KB)
📄
ubiupdatevol
(850.33 KB)
📄
ucs2any
(19.47 KB)
📄
udevadm
(414.27 KB)
📄
udhcpc
(850.33 KB)
📄
udhcpd
(850.33 KB)
📄
udisksctl
(55.45 KB)
📄
udpsvd
(850.33 KB)
📄
uevent
(850.33 KB)
📄
ul
(19.47 KB)
📄
ulockmgr_server
(15.11 KB)
📄
umask
(29 B)
📄
umount
(31.23 KB)
📄
unalias
(31 B)
📄
uname
(32.3 KB)
📄
uncompress
(24.49 KB)
📄
unexpand
(32.45 KB)
📄
unicode_start
(2.5 KB)
📄
unicode_stop
(363 B)
📄
uniq
(44.71 KB)
📄
unix-lpr.sh
(4.07 KB)
📄
unix2dos
(850.33 KB)
📄
unlink
(28.3 KB)
📄
unlz4
(105.84 KB)
📄
unlzma
(850.33 KB)
📄
unoconv
(58.04 KB)
📄
unopkg
(370 B)
📄
unpack200
(119.32 KB)
📄
unshare
(15.45 KB)
📄
unwrapdiff
(5.8 KB)
📄
unxz
(73.52 KB)
📄
unzip
(185.16 KB)
📄
unzipsfx
(88.66 KB)
📄
update-ca-trust
(1.03 KB)
📄
update-desktop-database
(19.7 KB)
📄
update-gtk-immodules
(313 B)
📄
update-mime-database
(52.82 KB)
📄
updatedb
(47.65 KB)
📄
upower
(15.13 KB)
📄
uptime
(11.22 KB)
📄
urlgrabber
(12.17 KB)
📄
usb-devices
(4.12 KB)
📄
usbhid-dump
(27.72 KB)
📄
users
(32.42 KB)
📄
usleep
(10.95 KB)
📄
usx2yloader
(15.41 KB)
📄
utmpdump
(15.45 KB)
📄
uudecode
(850.33 KB)
📄
uuencode
(850.33 KB)
📄
uuidgen
(11.21 KB)
📄
uxterm
(3.59 KB)
📄
uz
(2.25 KB)
📄
vconfig
(850.33 KB)
📄
vcut
(19.59 KB)
📄
vdir
(114.85 KB)
📄
verify_blkparse
(11.16 KB)
📄
verifytree
(10.79 KB)
📄
vi
(906.45 KB)
📄
view
(906.45 KB)
📄
vim
(2.23 MB)
📄
vimdiff
(2.23 MB)
📄
vimtutor
(2.04 KB)
📄
vinagre
(308.41 KB)
📄
virsh
(666.14 KB)
📄
virt-host-validate
(27.38 KB)
📄
virt-pki-validate
(9.58 KB)
📄
virt-xml-validate
(2.29 KB)
📄
virtualmin-config-system
(3.22 KB)
📄
virtuoso-t
(10.04 MB)
📄
vlock
(15.73 KB)
📄
vm-support
(9.57 KB)
📄
vmhgfs-fuse
(52.79 KB)
📄
vmmouse_detect
(11.37 KB)
📄
vmstat
(31.48 KB)
📄
vmtoolsd
(55.91 KB)
📄
vmware-checkvm
(11.07 KB)
📄
vmware-hgfsclient
(11.22 KB)
📄
vmware-namespace-cmd
(19.05 KB)
📄
vmware-rpctool
(19.47 KB)
📄
vmware-toolbox-cmd
(39.71 KB)
📄
vmware-user
(11.16 KB)
📄
vmware-user-suid-wrapper
(11.16 KB)
📄
vmware-vgauth-cmd
(15.02 KB)
📄
vmware-vmblock-fuse
(19.73 KB)
📄
vmware-xferlogs
(11.09 KB)
📄
vncconfig
(116.98 KB)
📄
vncpasswd
(27.63 KB)
📄
volname
(850.33 KB)
📄
vorbiscomment
(32.35 KB)
📄
vstp
(23.58 KB)
📄
vxloader
(15.38 KB)
📄
w
(19.45 KB)
📄
wait
(28 B)
📄
wall
(14.98 KB)
📄
watch
(24.14 KB)
📄
watchdog
(850.33 KB)
📄
watchgnupg
(15.35 KB)
📄
wavpack
(43.98 KB)
📄
wc
(40.67 KB)
📄
wdctl
(40.7 KB)
📄
webmin
(14.57 KB)
📄
wget
(408.96 KB)
📄
whatis
(45.49 KB)
📄
whereis
(20.2 KB)
📄
which
(23.77 KB)
📄
whiptail
(27.84 KB)
📄
who
(48.7 KB)
📄
whoami
(28.3 KB)
📄
whois
(60.48 KB)
📄
whois.md
(60.48 KB)
📄
withsctp
(229 B)
📄
wnck-urgency-monitor
(11.45 KB)
📄
wodim
(304.54 KB)
📄
wrestool
(49.28 KB)
📄
write
(19.09 KB)
📄
wvdial
(154.39 KB)
📄
wvdialconf
(56.24 KB)
📄
wvgain
(32.3 KB)
📄
wvunpack
(44.12 KB)
📄
x86_64
(15.27 KB)
📄
x86_64-redhat-linux-c++
(754.59 KB)
📄
x86_64-redhat-linux-g++
(754.59 KB)
📄
x86_64-redhat-linux-gcc
(750.59 KB)
📄
x86_energy_perf_policy
(10.23 KB)
📄
xargs
(60.91 KB)
📄
xauth
(40.8 KB)
📄
xbrlapi
(78.27 KB)
📄
xdg-desktop-icon
(19.05 KB)
📄
xdg-desktop-menu
(41.91 KB)
📄
xdg-email
(23.4 KB)
📄
xdg-icon-resource
(28.05 KB)
📄
xdg-mime
(38.43 KB)
📄
xdg-open
(18.84 KB)
📄
xdg-screensaver
(27.86 KB)
📄
xdg-settings
(32.79 KB)
📄
xdg-user-dir
(234 B)
📄
xdg-user-dirs-gtk-update
(19.82 KB)
📄
xdg-user-dirs-update
(19.7 KB)
📄
xdpyinfo
(36.84 KB)
📄
xdriinfo
(11.16 KB)
📄
xev
(27.81 KB)
📄
xgamma
(11.15 KB)
📄
xgettext
(265.35 KB)
📄
xhost
(15.38 KB)
📄
xinit
(19.63 KB)
📄
xinput
(52.81 KB)
📄
xkbcomp
(208.35 KB)
📄
xkill
(15.27 KB)
📄
xlsatoms
(11.27 KB)
📄
xlsclients
(15.44 KB)
📄
xlsfonts
(19.48 KB)
📄
xmlcatalog
(15.3 KB)
📄
xmllint
(61.94 KB)
📄
xmlsec1
(59.93 KB)
📄
xmlwf
(24 KB)
📄
xmodmap
(32.28 KB)
📄
xmvn-builddep
(1.04 KB)
📄
xorg-x11-fonts-update-dirs
(1.29 KB)
📄
xprop
(38.4 KB)
📄
xrandr
(60.06 KB)
📄
xrdb
(27.78 KB)
📄
xrefresh
(11.16 KB)
📄
xset
(31.72 KB)
📄
xsetmode
(11.1 KB)
📄
xsetpointer
(11.13 KB)
📄
xsetroot
(19.38 KB)
📄
xsettings-kde
(23.81 KB)
📄
xsetwacom
(49.15 KB)
📄
xsltproc
(23.51 KB)
📄
xstdcmap
(15.77 KB)
📄
xsubpp
(4.45 KB)
📄
xterm
(488.77 KB)
📄
xvattr
(11.32 KB)
📄
xvinfo
(15.25 KB)
📄
xwininfo
(40.16 KB)
📄
xxd
(14.46 KB)
📄
xz
(73.52 KB)
📄
xzcat
(73.52 KB)
📄
xzcmp
(6.48 KB)
📄
xzdec
(11.21 KB)
📄
xzdiff
(6.48 KB)
📄
xzegrep
(5.76 KB)
📄
xzfgrep
(5.76 KB)
📄
xzgrep
(5.76 KB)
📄
xzless
(1.76 KB)
📄
xzmore
(2.11 KB)
📄
yacc
(84.48 KB)
📄
yelp
(53.83 KB)
📄
yes
(28.3 KB)
📄
ypdomainname
(15.41 KB)
📄
yum
(801 B)
📄
yum-builddep
(9.95 KB)
📄
yum-config-manager
(9.35 KB)
📄
yum-debug-dump
(8.34 KB)
📄
yum-debug-restore
(7.72 KB)
📄
yum-groups-manager
(10.77 KB)
📄
yumdownloader
(10.85 KB)
📄
zcat
(1.9 KB)
📄
zcip
(850.33 KB)
📄
zcmp
(1.72 KB)
📄
zdiff
(5.63 KB)
📄
zegrep
(123 B)
📄
zenheiset
(1.09 KB)
📄
zenity
(101.2 KB)
📄
zfgrep
(123 B)
📄
zforce
(2.09 KB)
📄
zgrep
(5.98 KB)
📄
zip
(210.78 KB)
📄
zipcloak
(98.1 KB)
📄
zipdetails
(47.32 KB)
📄
zipgrep
(2.88 KB)
📄
zipinfo
(185.16 KB)
📄
zipnote
(93.73 KB)
📄
zipsplit
(97.75 KB)
📄
zless
(1.99 KB)
📄
zmore
(2.79 KB)
📄
znew
(5.22 KB)
📄
zsoelim
(32.59 KB)
📄
zts-php
(5.25 MB)
Editing: firewall-cmd
#!/usr/bin/python2 -Es # -*- coding: utf-8 -*- # # Copyright (C) 2009-2016 Red Hat, Inc. # # Authors: # Thomas Woerner <twoerner@redhat.com> # Jiri Popelka <jpopelka@redhat.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from gi.repository import GObject import sys sys.modules['gobject'] = GObject import argparse import os from firewall.client import FirewallClient, FirewallClientIPSetSettings, \ FirewallClientZoneSettings, FirewallClientServiceSettings, \ FirewallClientIcmpTypeSettings, FirewallClientHelperSettings from firewall.errors import FirewallError from firewall import errors from firewall.functions import joinArgs, splitArgs from firewall.core.fw_nm import nm_is_imported, \ nm_get_connection_of_interface, nm_get_zone_of_connection, \ nm_set_zone_of_connection, nm_get_interfaces_in_zone from firewall.core.io.zone import zone_reader from firewall.core.io.service import service_reader from firewall.core.io.ipset import ipset_reader from firewall.core.io.icmptype import icmptype_reader from firewall.core.io.helper import helper_reader from firewall.command import FirewallCommand def __usage(): sys.stdout.write(""" Usage: firewall-cmd [OPTIONS...] General Options -h, --help Prints a short help text and exists -V, --version Print the version string of firewalld -q, --quiet Do not print status messages Status Options --state Return and print firewalld state --reload Reload firewall and keep state information --complete-reload Reload firewall and lose state information --runtime-to-permanent Create permanent from runtime configuration --check-config Check permanent configuration for errors Log Denied Options --get-log-denied Print the log denied value --set-log-denied=<value> Set log denied value Automatic Helpers Options --get-automatic-helpers Print the automatic helpers value --set-automatic-helpers=<value> Set automatic helpers value Permanent Options --permanent Set an option permanently Usable for options marked with [P] Zone Options --get-default-zone Print default zone for connections and interfaces --set-default-zone=<zone> Set default zone --get-active-zones Print currently active zones --get-zones Print predefined zones [P] --get-services Print predefined services [P] --get-icmptypes Print predefined icmptypes [P] --get-zone-of-interface=<interface> Print name of the zone the interface is bound to [P] --get-zone-of-source=<source>[/<mask>]|<MAC>|ipset:<ipset> Print name of the zone the source is bound to [P] --list-all-zones List everything added for or enabled in all zones [P] --new-zone=<zone> Add a new zone [P only] --new-zone-from-file=<filename> [--name=<zone>] Add a new zone from file with optional name [P only] --delete-zone=<zone> Delete an existing zone [P only] --load-zone-defaults=<zone> Load zone default settings [P only] [Z] --zone=<zone> Use this zone to set or query options, else default zone Usable for options marked with [Z] --get-target Get the zone target [P only] [Z] --set-target=<target> Set the zone target [P only] [Z] --info-zone=<zone> Print information about a zone --path-zone=<zone> Print file path of a zone [P only] IPSet Options --get-ipset-types Print the supported ipset types --new-ipset=<ipset> --type=<ipset type> [--option=<key>[=<value>]].. Add a new ipset [P only] --new-ipset-from-file=<filename> [--name=<ipset>] Add a new ipset from file with optional name [P only] --delete-ipset=<ipset> Delete an existing ipset [P only] --load-ipset-defaults=<ipset> Load ipset default settings [P only] --info-ipset=<ipset> Print information about an ipset --path-ipset=<ipset> Print file path of an ipset [P only] --get-ipsets Print predefined ipsets --ipset=<ipset> --set-description=<description> Set new description to ipset [P only] --ipset=<ipset> --get-description Print description for ipset [P only] --ipset=<ipset> --set-short=<description> Set new short description to ipset [P only] --ipset=<ipset> --get-short Print short description for ipset [P only] --ipset=<ipset> --add-entry=<entry> Add a new entry to an ipset [P] --ipset=<ipset> --remove-entry=<entry> Remove an entry from an ipset [P] --ipset=<ipset> --query-entry=<entry> Return whether ipset has an entry [P] --ipset=<ipset> --get-entries List entries of an ipset [P] --ipset=<ipset> --add-entries-from-file=<entry> Add a new entries to an ipset [P] --ipset=<ipset> --remove-entries-from-file=<entry> Remove entries from an ipset [P] IcmpType Options --new-icmptype=<icmptype> Add a new icmptype [P only] --new-icmptype-from-file=<filename> [--name=<icmptype>] Add a new icmptype from file with optional name [P only] --delete-icmptype=<icmptype> Delete an existing icmptype [P only] --load-icmptype-defaults=<icmptype> Load icmptype default settings [P only] --info-icmptype=<icmptype> Print information about an icmptype --path-icmptype=<icmptype> Print file path of an icmptype [P only] --icmptype=<icmptype> --set-description=<description> Set new description to icmptype [P only] --icmptype=<icmptype> --get-description Print description for icmptype [P only] --icmptype=<icmptype> --set-short=<description> Set new short description to icmptype [P only] --icmptype=<icmptype> --get-short Print short description for icmptype [P only] --icmptype=<icmptype> --add-destination=<ipv> Enable destination for ipv in icmptype [P only] --icmptype=<icmptype> --remove-destination=<ipv> Disable destination for ipv in icmptype [P only] --icmptype=<icmptype> --query-destination=<ipv> Return whether destination ipv is enabled in icmptype [P only] --icmptype=<icmptype> --get-destinations List destinations in icmptype [P only] Service Options --new-service=<service> Add a new service [P only] --new-service-from-file=<filename> [--name=<service>] Add a new service from file with optional name [P only] --delete-service=<service> Delete an existing service [P only] --load-service-defaults=<service> Load icmptype default settings [P only] --info-service=<service> Print information about a service --path-service=<service> Print file path of a service [P only] --service=<service> --set-description=<description> Set new description to service [P only] --service=<service> --get-description Print description for service [P only] --service=<service> --set-short=<description> Set new short description to service [P only] --service=<service> --get-short Print short description for service [P only] --service=<service> --add-port=<portid>[-<portid>]/<protocol> Add a new port to service [P only] --service=<service> --remove-port=<portid>[-<portid>]/<protocol> Remove a port from service [P only] --service=<service> --query-port=<portid>[-<portid>]/<protocol> Return whether the port has been added for service [P only] --service=<service> --get-ports List ports of service [P only] --service=<service> --add-protocol=<protocol> Add a new protocol to service [P only] --service=<service> --remove-protocol=<protocol> Remove a protocol from service [P only] --service=<service> --query-protocol=<protocol> Return whether the protocol has been added for service [P only] --service=<service> --get-protocols List protocols of service [P only] --service=<service> --add-source-port=<portid>[-<portid>]/<protocol> Add a new source port to service [P only] --service=<service> --remove-source-port=<portid>[-<portid>]/<protocol> Remove a source port from service [P only] --service=<service> --query-source-port=<portid>[-<portid>]/<protocol> Return whether the source port has been added for service [P only] --service=<service> --get-source-ports List source ports of service [P only] --service=<service> --add-module=<module> Add a new module to service [P only] --service=<service> --remove-module=<module> Remove a module from service [P only] --service=<service> --query-module=<module> Return whether the module has been added for service [P only] --service=<service> --get-modules List modules of service [P only] --service=<service> --set-destination=<ipv>:<address>[/<mask>] Set destination for ipv to address in service [P only] --service=<service> --remove-destination=<ipv> Disable destination for ipv i service [P only] --service=<service> --query-destination=<ipv>:<address>[/<mask>] Return whether destination ipv is set for service [P only] --service=<service> --get-destinations List destinations in service [P only] Options to Adapt and Query Zones --list-all List everything added for or enabled in a zone [P] [Z] --list-services List services added for a zone [P] [Z] --timeout=<timeval> Enable an option for timeval time, where timeval is a number followed by one of letters 's' or 'm' or 'h' Usable for options marked with [T] --set-description=<description> Set new description to zone [P only] [Z] --get-description Print description for zone [P only] [Z] --set-short=<description> Set new short description to zone [P only] [Z] --get-short Print short description for zone [P only] [Z] --add-service=<service> Add a service for a zone [P] [Z] [T] --remove-service=<service> Remove a service from a zone [P] [Z] --query-service=<service> Return whether service has been added for a zone [P] [Z] --list-ports List ports added for a zone [P] [Z] --add-port=<portid>[-<portid>]/<protocol> Add the port for a zone [P] [Z] [T] --remove-port=<portid>[-<portid>]/<protocol> Remove the port from a zone [P] [Z] --query-port=<portid>[-<portid>]/<protocol> Return whether the port has been added for zone [P] [Z] --list-protocols List protocols added for a zone [P] [Z] --add-protocol=<protocol> Add the protocol for a zone [P] [Z] [T] --remove-protocol=<protocol> Remove the protocol from a zone [P] [Z] --query-protocol=<protocol> Return whether the protocol has been added for zone [P] [Z] --list-source-ports List source ports added for a zone [P] [Z] --add-source-port=<portid>[-<portid>]/<protocol> Add the source port for a zone [P] [Z] [T] --remove-source-port=<portid>[-<portid>]/<protocol> Remove the source port from a zone [P] [Z] --query-source-port=<portid>[-<portid>]/<protocol> Return whether the source port has been added for zone [P] [Z] --list-icmp-blocks List Internet ICMP type blocks added for a zone [P] [Z] --add-icmp-block=<icmptype> Add an ICMP block for a zone [P] [Z] [T] --remove-icmp-block=<icmptype> Remove the ICMP block from a zone [P] [Z] --query-icmp-block=<icmptype> Return whether an ICMP block has been added for a zone [P] [Z] --add-icmp-block-inversion Enable inversion of icmp blocks for a zone [P] [Z] --remove-icmp-block-inversion Disable inversion of icmp blocks for a zone [P] [Z] --query-icmp-block-inversion Return whether inversion of icmp blocks has been enabled for a zone [P] [Z] --list-forward-ports List IPv4 forward ports added for a zone [P] [Z] --add-forward-port=port=<portid>[-<portid>]:proto=<protocol>[:toport=<portid>[-<portid>]][:toaddr=<address>[/<mask>]] Add the IPv4 forward port for a zone [P] [Z] [T] --remove-forward-port=port=<portid>[-<portid>]:proto=<protocol>[:toport=<portid>[-<portid>]][:toaddr=<address>[/<mask>]] Remove the IPv4 forward port from a zone [P] [Z] --query-forward-port=port=<portid>[-<portid>]:proto=<protocol>[:toport=<portid>[-<portid>]][:toaddr=<address>[/<mask>]] Return whether the IPv4 forward port has been added for a zone [P] [Z] --add-masquerade Enable IPv4 masquerade for a zone [P] [Z] [T] --remove-masquerade Disable IPv4 masquerade for a zone [P] [Z] --query-masquerade Return whether IPv4 masquerading has been enabled for a zone [P] [Z] --list-rich-rules List rich language rules added for a zone [P] [Z] --add-rich-rule=<rule> Add rich language rule 'rule' for a zone [P] [Z] [T] --remove-rich-rule=<rule> Remove rich language rule 'rule' from a zone [P] [Z] --query-rich-rule=<rule> Return whether a rich language rule 'rule' has been added for a zone [P] [Z] Options to Handle Bindings of Interfaces --list-interfaces List interfaces that are bound to a zone [P] [Z] --add-interface=<interface> Bind the <interface> to a zone [P] [Z] --change-interface=<interface> Change zone the <interface> is bound to [P] [Z] --query-interface=<interface> Query whether <interface> is bound to a zone [P] [Z] --remove-interface=<interface> Remove binding of <interface> from a zone [P] [Z] Options to Handle Bindings of Sources --list-sources List sources that are bound to a zone [P] [Z] --add-source=<source>[/<mask>]|<MAC>|ipset:<ipset> Bind the source to a zone [P] [Z] --change-source=<source>[/<mask>]|<MAC>|ipset:<ipset> Change zone the source is bound to [Z] --query-source=<source>[/<mask>]|<MAC>|ipset:<ipset> Query whether the source is bound to a zone [P] [Z] --remove-source=<source>[/<mask>]|<MAC>|ipset:<ipset> Remove binding of the source from a zone [P] [Z] Helper Options --new-helper=<helper> --module=<module> [--family=<family>] Add a new helper [P only] --new-helper-from-file=<filename> [--name=<helper>] Add a new helper from file with optional name [P only] --delete-helper=<helper> Delete an existing helper [P only] --load-helper-defaults=<helper> Load helper default settings [P only] --info-helper=<helper> Print information about an helper --path-helper=<helper> Print file path of an helper [P only] --get-helpers Print predefined helpers --helper=<helper> --set-description=<description> Set new description to helper [P only] --helper=<helper> --get-description Print description for helper [P only] --helper=<helper> --set-short=<description> Set new short description to helper [P only] --helper=<helper> --get-short Print short description for helper [P only] --helper=<helper> --add-port=<portid>[-<portid>]/<protocol> Add a new port to helper [P only] --helper=<helper> --remove-port=<portid>[-<portid>]/<protocol> Remove a port from helper [P only] --helper=<helper> --query-port=<portid>[-<portid>]/<protocol> Return whether the port has been added for helper [P only] --helper=<helper> --get-ports List ports of helper [P only] --helper=<helper> --set-module=<module> Set module to helper [P only] --helper=<helper> --get-module Get module from helper [P only] --helper=<helper> --set-family={ipv4|ipv6|} Set family for helper [P only] --helper=<helper> --get-family Get module from helper [P only] Direct Options --direct First option for all direct options --get-all-chains Get all chains [P] --get-chains {ipv4|ipv6|eb} <table> Get all chains added to the table [P] --add-chain {ipv4|ipv6|eb} <table> <chain> Add a new chain to the table [P] --remove-chain {ipv4|ipv6|eb} <table> <chain> Remove the chain from the table [P] --query-chain {ipv4|ipv6|eb} <table> <chain> Return whether the chain has been added to the table [P] --get-all-rules Get all rules [P] --get-rules {ipv4|ipv6|eb} <table> <chain> Get all rules added to chain in table [P] --add-rule {ipv4|ipv6|eb} <table> <chain> <priority> <arg>... Add rule to chain in table [P] --remove-rule {ipv4|ipv6|eb} <table> <chain> <priority> <arg>... Remove rule with priority from chain in table [P] --remove-rules {ipv4|ipv6|eb} <table> <chain> Remove rules from chain in table [P] --query-rule {ipv4|ipv6|eb} <table> <chain> <priority> <arg>... Return whether a rule with priority has been added to chain in table [P] --passthrough {ipv4|ipv6|eb} <arg>... Pass a command through (untracked by firewalld) --get-all-passthroughs Get all tracked passthrough rules [P] --get-passthroughs {ipv4|ipv6|eb} <arg>... Get tracked passthrough rules [P] --add-passthrough {ipv4|ipv6|eb} <arg>... Add a new tracked passthrough rule [P] --remove-passthrough {ipv4|ipv6|eb} <arg>... Remove a tracked passthrough rule [P] --query-passthrough {ipv4|ipv6|eb} <arg>... Return whether the tracked passthrough rule has been added [P] Lockdown Options --lockdown-on Enable lockdown. --lockdown-off Disable lockdown. --query-lockdown Query whether lockdown is enabled Lockdown Whitelist Options --list-lockdown-whitelist-commands List all command lines that are on the whitelist [P] --add-lockdown-whitelist-command=<command> Add the command to the whitelist [P] --remove-lockdown-whitelist-command=<command> Remove the command from the whitelist [P] --query-lockdown-whitelist-command=<command> Query whether the command is on the whitelist [P] --list-lockdown-whitelist-contexts List all contexts that are on the whitelist [P] --add-lockdown-whitelist-context=<context> Add the context context to the whitelist [P] --remove-lockdown-whitelist-context=<context> Remove the context from the whitelist [P] --query-lockdown-whitelist-context=<context> Query whether the context is on the whitelist [P] --list-lockdown-whitelist-uids List all user ids that are on the whitelist [P] --add-lockdown-whitelist-uid=<uid> Add the user id uid to the whitelist [P] --remove-lockdown-whitelist-uid=<uid> Remove the user id uid from the whitelist [P] --query-lockdown-whitelist-uid=<uid> Query whether the user id uid is on the whitelist [P] --list-lockdown-whitelist-users List all user names that are on the whitelist [P] --add-lockdown-whitelist-user=<user> Add the user name user to the whitelist [P] --remove-lockdown-whitelist-user=<user> Remove the user name user from the whitelist [P] --query-lockdown-whitelist-user=<user> Query whether the user name user is on the whitelist [P] Panic Options --panic-on Enable panic mode --panic-off Disable panic mode --query-panic Query whether panic mode is enabled """) def try_set_zone_of_interface(_zone, interface): if nm_is_imported(): try: connection = nm_get_connection_of_interface(interface) except Exception: pass else: if connection is not None: if _zone == nm_get_zone_of_connection(connection): if _zone == "": cmd.print_warning("The interface is under control of NetworkManager and already bound to the default zone") else: cmd.print_warning("The interface is under control of NetworkManager and already bound to '%s'" % _zone) if _zone == "": cmd.print_msg("The interface is under control of NetworkManager, setting zone to default.") else: cmd.print_msg("The interface is under control of NetworkManager, setting zone to '%s'." % _zone) nm_set_zone_of_connection(_zone, connection) return True return False def try_get_zone_of_interface(interface): if nm_is_imported(): try: connection = nm_get_connection_of_interface(interface) except Exception: pass else: if connection is not None: return nm_get_zone_of_connection(connection) return False def try_nm_get_interfaces_in_zone(zone): if nm_is_imported(): try: return nm_get_interfaces_in_zone(zone) except Exception: pass return [] parser = argparse.ArgumentParser(usage="see firewall-cmd man page", add_help=False) parser_group_output = parser.add_mutually_exclusive_group() parser_group_output.add_argument("-v", "--verbose", action="store_true") parser_group_output.add_argument("-q", "--quiet", action="store_true") parser_group_standalone = parser.add_mutually_exclusive_group() parser_group_standalone.add_argument("-h", "--help", action="store_true") parser_group_standalone.add_argument("-V", "--version", action="store_true") parser_group_standalone.add_argument("--state", action="store_true") parser_group_standalone.add_argument("--reload", action="store_true") parser_group_standalone.add_argument("--complete-reload", action="store_true") parser_group_standalone.add_argument("--runtime-to-permanent", action="store_true") parser_group_standalone.add_argument("--check-config", action="store_true") parser_group_standalone.add_argument("--get-ipset-types", action="store_true") parser_group_standalone.add_argument("--get-log-denied", action="store_true") parser_group_standalone.add_argument("--set-log-denied", metavar="<value>") parser_group_standalone.add_argument("--get-automatic-helpers", action="store_true") parser_group_standalone.add_argument("--set-automatic-helpers", metavar="<value>") parser_group_standalone.add_argument("--panic-on", action="store_true") parser_group_standalone.add_argument("--panic-off", action="store_true") parser_group_standalone.add_argument("--query-panic", action="store_true") parser_group_standalone.add_argument("--lockdown-on", action="store_true") parser_group_standalone.add_argument("--lockdown-off", action="store_true") parser_group_standalone.add_argument("--query-lockdown", action="store_true") parser_group_standalone.add_argument("--get-default-zone", action="store_true") parser_group_standalone.add_argument("--set-default-zone", metavar="<zone>") parser_group_standalone.add_argument("--get-zones", action="store_true") parser_group_standalone.add_argument("--get-services", action="store_true") parser_group_standalone.add_argument("--get-icmptypes", action="store_true") parser_group_standalone.add_argument("--get-active-zones", action="store_true") parser_group_standalone.add_argument("--get-zone-of-interface", metavar="<iface>", action='append') parser_group_standalone.add_argument("--get-zone-of-source", metavar="<source>", action='append') parser_group_standalone.add_argument("--list-all-zones", action="store_true") parser_group_standalone.add_argument("--info-zone", metavar="<zone>") parser_group_standalone.add_argument("--info-service", metavar="<service>") parser_group_standalone.add_argument("--info-icmptype", metavar="<icmptype>") parser_group_standalone.add_argument("--info-ipset", metavar="<ipset>") parser_group_standalone.add_argument("--info-helper", metavar="<helper>") parser_group_config = parser.add_mutually_exclusive_group() parser_group_config.add_argument("--new-icmptype", metavar="<icmptype>") parser_group_config.add_argument("--new-icmptype-from-file", metavar="<filename>") parser_group_config.add_argument("--delete-icmptype", metavar="<icmptype>") parser_group_config.add_argument("--load-icmptype-defaults", metavar="<icmptype>") parser_group_config.add_argument("--new-service", metavar="<service>") parser_group_config.add_argument("--new-service-from-file", metavar="<filename>") parser_group_config.add_argument("--delete-service", metavar="<service>") parser_group_config.add_argument("--load-service-defaults", metavar="<service>") parser_group_config.add_argument("--new-zone", metavar="<zone>") parser_group_config.add_argument("--new-zone-from-file", metavar="<filename>") parser_group_config.add_argument("--delete-zone", metavar="<zone>") parser_group_config.add_argument("--load-zone-defaults", metavar="<zone>") parser_group_config.add_argument("--new-ipset", metavar="<ipset>") parser_group_config.add_argument("--new-ipset-from-file", metavar="<filename>") parser_group_config.add_argument("--delete-ipset", metavar="<ipset>") parser_group_config.add_argument("--load-ipset-defaults", metavar="<ipset>") parser_group_config.add_argument("--new-helper", metavar="<helper>") parser_group_config.add_argument("--new-helper-from-file", metavar="<filename>") parser_group_config.add_argument("--delete-helper", metavar="<helper>") parser_group_config.add_argument("--load-helper-defaults", metavar="<helper>") parser_group_config.add_argument("--path-zone", metavar="<zone>") parser_group_config.add_argument("--path-service", metavar="<service>") parser_group_config.add_argument("--path-icmptype", metavar="<icmptype>") parser_group_config.add_argument("--path-ipset", metavar="<ipset>") parser_group_config.add_argument("--path-helper", metavar="<helper>") parser.add_argument("--name", default="", metavar="<name>") parser_group_lockdown_whitelist = parser.add_mutually_exclusive_group() parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-commands", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-command", metavar="<command>", action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-command", metavar="<command>", action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-command", metavar="<command>", action='append') parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-contexts", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-context", metavar="<context>", action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-context", metavar="<context>", action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-context", metavar="<context>", action='append') parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-uids", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-uid", metavar="<uid>", type=int, action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-uid", metavar="<uid>", type=int, action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-uid", metavar="<uid>", type=int, action='append') parser_group_lockdown_whitelist.add_argument("--list-lockdown-whitelist-users", action="store_true") parser_group_lockdown_whitelist.add_argument("--add-lockdown-whitelist-user", metavar="<user>", action='append') parser_group_lockdown_whitelist.add_argument("--remove-lockdown-whitelist-user", metavar="<user>", action='append') parser_group_lockdown_whitelist.add_argument("--query-lockdown-whitelist-user", metavar="<user>", action='append') parser.add_argument("--permanent", action="store_true") parser.add_argument("--zone", default="", metavar="<zone>") parser.add_argument("--timeout", default="0", metavar="<seconds>") parser_group_zone = parser.add_mutually_exclusive_group() parser_group_zone.add_argument("--add-interface", metavar="<iface>", action='append') parser_group_zone.add_argument("--remove-interface", metavar="<iface>", action='append') parser_group_zone.add_argument("--query-interface", metavar="<iface>", action='append') parser_group_zone.add_argument("--change-interface", "--change-zone", metavar="<iface>", action='append') parser_group_zone.add_argument("--list-interfaces", action="store_true") parser_group_zone.add_argument("--add-source", metavar="<source>", action='append') parser_group_zone.add_argument("--remove-source", metavar="<source>", action='append') parser_group_zone.add_argument("--query-source", metavar="<source>", action='append') parser_group_zone.add_argument("--change-source", metavar="<source>", action='append') parser_group_zone.add_argument("--list-sources", action="store_true") parser_group_zone.add_argument("--add-rich-rule", metavar="<rule>", action='append') parser_group_zone.add_argument("--remove-rich-rule", metavar="<rule>", action='append') parser_group_zone.add_argument("--query-rich-rule", metavar="<rule>", action='append') parser_group_zone.add_argument("--add-service", metavar="<service>", action='append') parser_group_zone.add_argument("--remove-service", metavar="<zone>", action='append') parser_group_zone.add_argument("--query-service", metavar="<zone>", action='append') parser_group_zone.add_argument("--add-port", metavar="<port>", action='append') parser_group_zone.add_argument("--remove-port", metavar="<port>", action='append') parser_group_zone.add_argument("--query-port", metavar="<port>", action='append') parser_group_zone.add_argument("--add-protocol", metavar="<protocol>", action='append') parser_group_zone.add_argument("--remove-protocol", metavar="<protocol>", action='append') parser_group_zone.add_argument("--query-protocol", metavar="<protocol>", action='append') parser_group_zone.add_argument("--add-source-port", metavar="<port>", action='append') parser_group_zone.add_argument("--remove-source-port", metavar="<port>", action='append') parser_group_zone.add_argument("--query-source-port", metavar="<port>", action='append') parser_group_zone.add_argument("--add-masquerade", action="store_true") parser_group_zone.add_argument("--remove-masquerade", action="store_true") parser_group_zone.add_argument("--query-masquerade", action="store_true") parser_group_zone.add_argument("--add-icmp-block", metavar="<icmptype>", action='append') parser_group_zone.add_argument("--remove-icmp-block", metavar="<icmptype>", action='append') parser_group_zone.add_argument("--query-icmp-block", metavar="<icmptype>", action='append') parser_group_zone.add_argument("--add-icmp-block-inversion", action="store_true") parser_group_zone.add_argument("--remove-icmp-block-inversion", action="store_true") parser_group_zone.add_argument("--query-icmp-block-inversion", action="store_true") parser_group_zone.add_argument("--add-forward-port", metavar="<port>", action='append') parser_group_zone.add_argument("--remove-forward-port", metavar="<port>", action='append') parser_group_zone.add_argument("--query-forward-port", metavar="<port>", action='append') parser_group_zone.add_argument("--list-rich-rules", action="store_true") parser_group_zone.add_argument("--list-services", action="store_true") parser_group_zone.add_argument("--list-ports", action="store_true") parser_group_zone.add_argument("--list-protocols", action="store_true") parser_group_zone.add_argument("--list-icmp-blocks", action="store_true") parser_group_zone.add_argument("--list-forward-ports", action="store_true") parser_group_zone.add_argument("--list-source-ports", action="store_true") parser_group_zone.add_argument("--list-all", action="store_true") parser_group_zone.add_argument("--get-target", action="store_true") parser_group_zone.add_argument("--set-target", metavar="<target>") parser.add_argument("--option", metavar="<key>[=<value>]", action='append') parser.add_argument("--type", metavar="<ipsettype>") parser.add_argument("--ipset", metavar="<ipset>") parser_ipset = parser.add_mutually_exclusive_group() #parser_ipset.add_argument("--add-option", metavar="<key>[=<value>]") #parser_ipset.add_argument("--remove-option", metavar="<key>[=<value>]") #parser_ipset.add_argument("--query-option", metavar="<key>[=<value>]") #parser_ipset.add_argument("--get-options", action="store_true") parser_ipset.add_argument("--get-ipsets", action="store_true") parser_ipset.add_argument("--add-entry", metavar="<entry>", action='append') parser_ipset.add_argument("--remove-entry", metavar="<entry>", action='append') parser_ipset.add_argument("--query-entry", metavar="<entry>", action='append') parser_ipset.add_argument("--get-entries", action="store_true") parser_ipset.add_argument("--add-entries-from-file", metavar="<filename>", action='append') parser_ipset.add_argument("--remove-entries-from-file", metavar="<filename>", action='append') parser.add_argument("--icmptype", metavar="<icmptype>") parser_icmptype = parser.add_mutually_exclusive_group() parser_icmptype.add_argument("--add-destination", metavar="<ipv>", action='append') parser_icmptype.add_argument("--remove-destination", metavar="<ipv>", action='append') parser_icmptype.add_argument("--query-destination", metavar="<ipv>", action='append') parser_icmptype.add_argument("--get-destinations", action="store_true") parser.add_argument("--service", metavar="<service>") parser_service = parser.add_mutually_exclusive_group() parser_service.add_argument("--get-ports", action="store_true") parser_service.add_argument("--get-source-ports", action="store_true") parser_service.add_argument("--get-protocols", action="store_true") parser_service.add_argument("--add-module", metavar="<module>", action='append') parser_service.add_argument("--remove-module", metavar="<module>", action='append') parser_service.add_argument("--query-module", metavar="<module>", action='append') parser_service.add_argument("--get-modules", action="store_true") parser_service.add_argument("--set-destination", metavar="<destination>", action='append') parser_service.add_argument("--get-destination", action="store_true") parser_service.add_argument("--set-description", metavar="<description>") parser_service.add_argument("--get-description", action="store_true") parser_service.add_argument("--set-short", metavar="<description>") parser_service.add_argument("--get-short", action="store_true") parser.add_argument("--helper", metavar="<helper>") parser.add_argument("--family", metavar="<family>") parser.add_argument("--module", metavar="<module>") parser_helper = parser.add_mutually_exclusive_group() #parser_helper.add_argument("--get-ports", action="store_true") parser_helper.add_argument("--get-helpers", action="store_true") parser_helper.add_argument("--set-module", metavar="<module>") parser_helper.add_argument("--get-module", action="store_true") #parser_helper.add_argument("--query-module", metavar="<module>") parser_helper.add_argument("--set-family", metavar="<family>|''", nargs="*") parser_helper.add_argument("--get-family", action="store_true") parser.add_argument("--direct", action="store_true") # not possible to have sequences of options here parser_direct = parser.add_mutually_exclusive_group() parser_direct.add_argument("--passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "<args>")) parser_direct.add_argument("--add-passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "<args>")) parser_direct.add_argument("--remove-passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "<args>")) parser_direct.add_argument("--query-passthrough", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "<args>")) parser_direct.add_argument("--get-passthroughs", nargs=1, metavar=("{ ipv4 | ipv6 | eb }")) parser_direct.add_argument("--get-all-passthroughs", action="store_true") parser_direct.add_argument("--add-chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "<table>", "<chain>")) parser_direct.add_argument("--remove-chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "<table>", "<chain>")) parser_direct.add_argument("--query-chain", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "<table>", "<chain>")) parser_direct.add_argument("--get-all-chains", action="store_true") parser_direct.add_argument("--get-chains", nargs=2, metavar=("{ ipv4 | ipv6 | eb }", "<table>")) parser_direct.add_argument("--add-rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "<table> <chain> <priority> <args>")) parser_direct.add_argument("--remove-rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "<table> <chain> <priority> <args>")) parser_direct.add_argument("--remove-rules", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "<table> <chain>")) parser_direct.add_argument("--query-rule", nargs=argparse.REMAINDER, metavar=("{ ipv4 | ipv6 | eb }", "<table> <chain> <priority> <args>")) parser_direct.add_argument("--get-rules", nargs=3, metavar=("{ ipv4 | ipv6 | eb }", "<table>", "<chain>")) parser_direct.add_argument("--get-all-rules", action="store_true") ############################################################################## args = sys.argv[1:] if len(sys.argv) > 1: i = -1 if '--passthrough' in args: i = args.index('--passthrough') + 1 elif '--add-passthrough' in args: i = args.index('--add-passthrough') + 1 elif '--remove-passthrough' in args: i = args.index('--remove-passthrough') + 1 elif '--query-passthrough' in args: i = args.index('--query-passthrough') + 1 elif '--add-rule' in args: i = args.index('--add-rule') + 4 elif '--remove-rule' in args: i = args.index('--remove-rule') + 4 elif '--query-rule' in args: i = args.index('--query-rule') + 4 # join <args> into one argument to prevent parser from parsing each iptables # option, because they can conflict with firewall-cmd options # # e.g. --delete (iptables) and --delete-* (firewall-cmd) if (i > -1) and (i < len(args) - 1): aux_args = args[:] args = aux_args[:i+1] # all but not <args> args.append(joinArgs(aux_args[i+1:])) # add <args> as one arg a = parser.parse_args(args) options_standalone = a.help or a.version or \ a.state or a.reload or a.complete_reload or a.runtime_to_permanent or \ a.panic_on or a.panic_off or a.query_panic or \ a.lockdown_on or a.lockdown_off or a.query_lockdown or \ a.get_default_zone or a.set_default_zone or \ a.get_active_zones or a.get_ipset_types or \ a.get_log_denied or a.set_log_denied or \ a.get_automatic_helpers or a.set_automatic_helpers or a.check_config options_desc_xml_file = a.set_description or a.get_description or \ a.set_short or a.get_short options_lockdown_whitelist = \ a.list_lockdown_whitelist_commands or a.add_lockdown_whitelist_command or \ a.remove_lockdown_whitelist_command or \ a.query_lockdown_whitelist_command or \ a.list_lockdown_whitelist_contexts or a.add_lockdown_whitelist_context or \ a.remove_lockdown_whitelist_context or \ a.query_lockdown_whitelist_context or \ a.list_lockdown_whitelist_uids or a.add_lockdown_whitelist_uid is not None or \ a.remove_lockdown_whitelist_uid is not None or \ a.query_lockdown_whitelist_uid is not None or \ a.list_lockdown_whitelist_users or a.add_lockdown_whitelist_user or \ a.remove_lockdown_whitelist_user or \ a.query_lockdown_whitelist_user options_config = a.get_zones or a.get_services or a.get_icmptypes or \ options_lockdown_whitelist or a.list_all_zones or \ a.get_zone_of_interface or a.get_zone_of_source or \ a.info_zone or a.info_icmptype or a.info_service or \ a.info_ipset or a.get_ipsets or a.info_helper or \ a.get_helpers options_zone_action_action = \ a.add_service or a.remove_service or a.query_service or \ a.add_port or a.remove_port or a.query_port or \ a.add_protocol or a.remove_protocol or a.query_protocol or \ a.add_source_port or a.remove_source_port or a.query_source_port or \ a.add_icmp_block or a.remove_icmp_block or a.query_icmp_block or \ a.add_forward_port or a.remove_forward_port or a.query_forward_port options_zone_interfaces_sources = \ a.list_interfaces or a.change_interface or \ a.add_interface or a.remove_interface or a.query_interface or \ a.list_sources or a.change_source or \ a.add_source or a.remove_source or a.query_source options_zone_adapt_query = \ a.add_rich_rule or a.remove_rich_rule or a.query_rich_rule or \ a.add_masquerade or a.remove_masquerade or a.query_masquerade or \ a.list_services or a.list_ports or a.list_protocols or \ a.list_source_ports or \ a.list_icmp_blocks or a.list_forward_ports or a.list_rich_rules or \ a.add_icmp_block_inversion or a.remove_icmp_block_inversion or \ a.query_icmp_block_inversion or \ a.list_all or a.get_target or a.set_target options_zone_ops = options_zone_interfaces_sources or \ options_zone_action_action or options_zone_adapt_query options_zone = a.zone or a.timeout != "0" or options_zone_ops or \ options_desc_xml_file options_ipset = a.add_entry or a.remove_entry or a.query_entry or \ a.get_entries or a.add_entries_from_file or \ a.remove_entries_from_file or options_desc_xml_file options_icmptype = a.add_destination or a.remove_destination or \ a.query_destination or a.get_destinations or \ options_desc_xml_file options_service = a.add_port or a.remove_port or a.query_port or \ a.get_ports or \ a.add_protocol or a.remove_protocol or a.query_protocol or \ a.get_protocols or \ a.add_source_port or a.remove_source_port or \ a.query_source_port or a.get_source_ports or \ a.add_module or a.remove_module or a.query_module or \ a.get_modules or \ a.set_destination or a.remove_destination or \ a.query_destination or a.get_destinations or \ options_desc_xml_file options_helper = a.add_port or a.remove_port or a.query_port or \ a.get_ports or a.set_module or a.get_module or \ a.set_family or a.get_family or \ options_desc_xml_file options_permanent = a.permanent or options_config or \ a.zone or options_zone_ops or \ a.ipset or options_ipset or \ a.helper or options_helper options_permanent_only = a.new_icmptype or a.delete_icmptype or \ a.new_icmptype_from_file or \ a.load_icmptype_defaults or \ a.new_service or a.delete_service or \ a.new_service_from_file or \ a.load_service_defaults or \ a.new_zone or a.delete_zone or \ a.new_zone_from_file or \ a.load_zone_defaults or \ a.new_ipset or a.delete_ipset or \ a.new_ipset_from_file or \ a.load_ipset_defaults or \ a.new_helper or a.delete_helper or \ a.new_helper_from_file or \ a.load_helper_defaults or \ (a.icmptype and options_icmptype) or \ (a.service and options_service) or \ (a.helper and options_helper) or \ a.path_zone or a.path_icmptype or a.path_service or \ a.path_ipset or a.path_helper or options_desc_xml_file options_direct = a.passthrough or \ a.add_chain or a.remove_chain or a.query_chain or \ a.get_chains or a.get_all_chains or \ a.add_rule or a.remove_rule or a.remove_rules or a.query_rule or \ a.get_rules or a.get_all_rules or \ a.add_passthrough or a.remove_passthrough or a.query_passthrough or \ a.get_passthroughs or a.get_all_passthroughs options_require_permanent = options_permanent_only or \ a.get_target or a.set_target # these are supposed to only write out some output options_list_get = a.help or a.version or a.list_all or a.list_all_zones or \ a.list_lockdown_whitelist_commands or a.list_lockdown_whitelist_contexts or \ a.list_lockdown_whitelist_uids or a.list_lockdown_whitelist_users or \ a.list_services or a.list_ports or a.list_protocols or a.list_icmp_blocks or \ a.list_forward_ports or a.list_rich_rules or a.list_interfaces or \ a.list_sources or a.get_default_zone or a.get_active_zones or \ a.get_zone_of_interface or a.get_zone_of_source or a.get_zones or \ a.get_services or a.get_icmptypes or a.get_target or \ a.info_zone or a.info_icmptype or a.info_service or \ a.info_ipset or a.get_ipsets or a.get_entries or \ a.info_helper or a.get_helpers or \ a.get_destinations or a.get_description # Set quiet and verbose cmd = FirewallCommand(a.quiet, a.verbose) def myexcepthook(exctype, value, traceback): cmd.exception_handler(str(value)) sys.excepthook = myexcepthook # Check various impossible combinations of options if not (options_standalone or options_ipset or \ options_icmptype or options_service or options_helper or \ options_config or options_zone_ops or \ options_direct or options_permanent_only): cmd.fail(parser.format_usage() + "No option specified.") if options_standalone and (options_zone or options_permanent or \ options_direct or options_permanent_only or\ options_ipset): cmd.fail(parser.format_usage() + "Can't use stand-alone options with other options.") if options_ipset and not options_desc_xml_file and not a.ipset: cmd.fail(parser.format_usage() + "No ipset specified.") if (options_icmptype and not a.icmptype) and \ not (options_service and a.service) and not options_desc_xml_file: cmd.fail(parser.format_usage() + "No icmptype specified.") if (options_helper and not a.helper) and \ not (options_service and a.service) and \ not options_zone and not options_desc_xml_file: cmd.fail(parser.format_usage() + "No helper specified.") if (options_direct or options_permanent_only) and \ (options_zone and not a.zone) and (options_service and not a.service) and \ (options_icmptype and a.icmptype) and not options_desc_xml_file: cmd.fail(parser.format_usage() + "Can't be used with --zone.") if (a.direct and not options_direct) or (options_direct and not a.direct): cmd.fail(parser.format_usage() + "Wrong usage of 'direct' options.") if a.name and not (a.new_zone_from_file or a.new_service_from_file or \ a.new_ipset_from_file or a.new_icmptype_from_file or \ a.new_helper_from_file): cmd.fail(parser.format_usage() + "Wrong usage of '--name' option.") if options_require_permanent and not a.permanent: cmd.fail(parser.format_usage() + "Option can be used only with --permanent.") if options_config and options_zone: cmd.fail(parser.format_usage() + "Wrong usage of --get-zones | --get-services | --get-icmptypes.") if a.timeout != "0": value = 0 unit = 's' if len(a.timeout) < 1: cmd.fail(parser.format_usage() + "'%s' is wrong timeout value. Use for example '2m' or '1h'" % a.timeout) elif len(a.timeout) == 1: if a.timeout.isdigit(): value = int (a.timeout[0]) else: cmd.fail(parser.format_usage() + "'%s' is wrong timeout value. Use for example '2m' or '1h'" % a.timeout) elif len(a.timeout) > 1: if a.timeout.isdigit(): value = int(a.timeout) unit = 's' else: if a.timeout[:-1].isdigit(): value = int (a.timeout[:-1]) else: cmd.fail(parser.format_usage() + "'%s' is wrong timeout value. Use for example '2m' or '1h'" % a.timeout) unit = a.timeout[-1:].lower() if unit == 's': a.timeout = value elif unit == 'm': a.timeout = value * 60 elif unit == 'h': a.timeout = value * 60 * 60 else: cmd.fail(parser.format_usage() + "'%s' is wrong timeout value. Use for example '2m' or '1h'" % a.timeout) else: a.timeout = 0 if a.timeout and not (a.add_service or a.add_port or a.add_protocol or \ a.add_icmp_block or a.add_forward_port or \ a.add_source_port or a.add_masquerade or a.add_rich_rule): cmd.fail(parser.format_usage() + "Wrong --timeout usage") if a.permanent: if a.timeout: cmd.fail(parser.format_usage() + "Can't specify timeout for permanent action.") if options_config and not a.zone: pass elif options_permanent: pass else: cmd.fail(parser.format_usage() + "Wrong --permanent usage.") if a.quiet and options_list_get: # it makes no sense to use --quiet with these options a.quiet = False cmd.set_quiet(a.quiet) cmd.fail("-q/--quiet can't be used with this option(s)") if a.help: __usage() sys.exit(0) zone = a.zone try: fw = FirewallClient() except FirewallError as msg: code = FirewallError.get_code(str(msg)) cmd.print_and_exit("Error: %s" % msg, code) fw.setExceptionHandler(cmd.exception_handler) if not fw.connected: if a.state: cmd.print_and_exit ("not running", errors.NOT_RUNNING) else: cmd.print_and_exit ("FirewallD is not running", errors.NOT_RUNNING) cmd.set_fw(fw) if options_zone_ops and not zone and not \ (a.service and options_service) and not \ (a.helper and options_helper): default = fw.getDefaultZone() cmd.print_if_verbose("No zone specified, using default zone, i.e. '%s'" % default) active = list(fw.getActiveZones().keys()) if active and default not in active: cmd.print_msg("""You're performing an operation over default zone ('%s'), but your connections/interfaces are in zone '%s' (see --get-active-zones) You most likely need to use --zone=%s option.\n""" % (default, ",".join(active), active[0])) if a.permanent: if a.get_ipsets: cmd.print_and_exit(" ".join(fw.config().getIPSetNames())) elif a.new_ipset: if not a.type: cmd.fail(parser.format_usage() + "No type specified.") settings = FirewallClientIPSetSettings() settings.setType(a.type) if a.option: for opt in a.option: settings.addOption(*cmd.parse_ipset_option(opt)) if a.family: settings.addOption("family", a.family) config = fw.config() config.addIPSet(a.new_ipset, settings) elif a.new_ipset_from_file: filename = os.path.basename(a.new_ipset_from_file) dirname = os.path.dirname(a.new_ipset_from_file) if dirname == "": dirname = "./" try: obj = ipset_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load ipset file '%s': %s" % \ (a.new_ipset_from_file, msg)) except IOError as msg: cmd.fail("Failed to load ipset file: %s" % msg) if a.name: obj.name = a.name config = fw.config() config.addIPSet(obj.name, obj.export_config()) elif a.delete_ipset: ipset = fw.config().getIPSetByName(a.delete_ipset) ipset.remove() elif a.load_ipset_defaults: ipset = fw.config().getIPSetByName(a.load_ipset_defaults) ipset.loadDefaults() elif a.info_ipset: ipset = fw.config().getIPSetByName(a.info_ipset) cmd.print_ipset_info(a.info_ipset, ipset.getSettings()) sys.exit(0) elif a.path_ipset: ipset = fw.config().getIPSetByName(a.path_ipset) cmd.print_and_exit("%s/%s" % (ipset.get_property("path"), ipset.get_property("filename"))) elif a.ipset: ipset = fw.config().getIPSetByName(a.ipset) settings = ipset.getSettings() if a.add_entry: cmd.add_sequence(a.add_entry, settings.addEntry, settings.queryEntry, None, "'%s'") ipset.update(settings) elif a.remove_entry: cmd.remove_sequence(a.remove_entry, settings.removeEntry, settings.queryEntry, None, "'%s'") ipset.update(settings) elif a.query_entry: cmd.query_sequence(a.query_entry, settings.queryEntry, None, "'%s'") elif a.get_entries: l = settings.getEntries() cmd.print_and_exit("\n".join(l)) elif a.add_entries_from_file: changed = False for filename in a.add_entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(a.add_entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: old_entries = settings.getEntries() entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry not in entries_set: old_entries.append(entry) entries_set.add(entry) changed = True else: cmd.print_if_verbose( "Warning: ALREADY_ENABLED: %s" % entry) if changed: settings.setEntries(old_entries) if changed: ipset.update(settings) elif a.remove_entries_from_file: changed = False for filename in a.remove_entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(a.remove_entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: old_entries = settings.getEntries() entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry in entries_set: old_entries.remove(entry) entries_set.discard(entry) changed = True else: cmd.print_if_verbose("Warning: NOT_ENABLED: %s" % entry) if changed: settings.setEntries(old_entries) if changed: ipset.update(settings) elif a.set_description: settings.setDescription(a.set_description) ipset.update(settings) elif a.get_description: cmd.print_and_exit(settings.getDescription()) elif a.set_short: settings.setShort(a.set_short) ipset.update(settings) elif a.get_short: cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") elif a.get_zones: cmd.print_and_exit(" ".join(fw.config().getZoneNames())) elif a.new_zone: config = fw.config() config.addZone(a.new_zone, FirewallClientZoneSettings()) elif a.new_zone_from_file: filename = os.path.basename(a.new_zone_from_file) dirname = os.path.dirname(a.new_zone_from_file) if dirname == "": dirname = "./" try: obj = zone_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load zone file '%s': %s" % \ (a.new_zone_from_file, msg)) except IOError as msg: cmd.fail("Failed to load zone file: %s" % msg) if a.name: obj.name = a.name config = fw.config() config.addZone(obj.name, obj.export_config()) elif a.delete_zone: zone = fw.config().getZoneByName(a.delete_zone) zone.remove() elif a.load_zone_defaults: zone = fw.config().getZoneByName(a.load_zone_defaults) zone.loadDefaults() elif a.info_zone: zone = fw.config().getZoneByName(a.info_zone) cmd.print_zone_info(a.info_zone, zone.getSettings(), True) sys.exit(0) elif a.path_zone: zone = fw.config().getZoneByName(a.path_zone) cmd.print_and_exit("%s/%s" % (zone.get_property("path"), zone.get_property("filename"))) elif a.get_services: cmd.print_and_exit(" ".join(fw.config().getServiceNames())) elif a.new_service: config = fw.config() config.addService(a.new_service, FirewallClientServiceSettings()) elif a.new_service_from_file: filename = os.path.basename(a.new_service_from_file) dirname = os.path.dirname(a.new_service_from_file) if dirname == "": dirname = "./" try: obj = service_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load service file '%s': %s" % \ (a.new_service_from_file, msg)) except IOError as msg: cmd.fail("Failed to load service file: %s" % msg) if a.name: obj.name = a.name config = fw.config() config.addService(obj.name, obj.export_config()) elif a.delete_service: service = fw.config().getServiceByName(a.delete_service) service.remove() elif a.load_service_defaults: service = fw.config().getServiceByName(a.load_service_defaults) service.loadDefaults() elif a.info_service: service = fw.config().getServiceByName(a.info_service) cmd.print_service_info(a.info_service, service.getSettings()) sys.exit(0) elif a.path_service: service = fw.config().getServiceByName(a.path_service) cmd.print_and_exit("%s/%s" % (service.get_property("path"), service.get_property("filename"))) elif a.get_helpers: cmd.print_and_exit(" ".join(fw.config().getHelperNames())) elif a.new_helper: if not a.module: cmd.fail(parser.format_usage() + "No module specified.") settings = FirewallClientHelperSettings() settings.setModule(a.module) if a.family: settings.setFamily(a.family) config = fw.config() config.addHelper(a.new_helper, settings) elif a.new_helper_from_file: filename = os.path.basename(a.new_helper_from_file) dirname = os.path.dirname(a.new_helper_from_file) if dirname == "": dirname = "./" try: obj = helper_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load helper file '%s': %s" % \ (a.new_helper_from_file, msg)) except IOError as msg: cmd.fail("Failed to load helper file: %s" % msg) if a.name: obj.name = a.name config = fw.config() config.addHelper(obj.name, obj.export_config()) elif a.delete_helper: helper = fw.config().getHelperByName(a.delete_helper) helper.remove() elif a.load_helper_defaults: helper = fw.config().getHelperByName(a.load_helper_defaults) helper.loadDefaults() elif a.info_helper: helper = fw.config().getHelperByName(a.info_helper) cmd.print_helper_info(a.info_helper, helper.getSettings()) sys.exit(0) elif a.path_helper: helper = fw.config().getHelperByName(a.path_helper) cmd.print_and_exit("%s/%s" % (helper.get_property("path"), helper.get_property("filename"))) elif a.helper: helper = fw.config().getHelperByName(a.helper) settings = helper.getSettings() if a.add_port: cmd.add_sequence(a.add_port, settings.addPort, settings.queryPort, cmd.parse_port, "%s/%s") helper.update(settings) elif a.remove_port: cmd.remove_sequence(a.remove_port, settings.removePort, settings.queryPort, cmd.parse_port, "%s/%s") helper.update(settings) elif a.query_port: cmd.query_sequence(a.query_port, settings.queryPort, cmd.parse_port, "%s/%s") elif a.get_ports: l = helper.getPorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.get_module: cmd.print_and_exit(settings.getModule()) elif a.set_module: settings.setModule(cmd.check_module(a.set_module)) helper.update(settings) elif a.get_family: cmd.print_and_exit(settings.getFamily()) elif a.set_family: settings.setFamily(cmd.check_helper_family(a.set_family[0])) helper.update(settings) elif a.set_description: settings.setDescription(a.set_description) helper.update(settings) elif a.get_description: cmd.print_and_exit(settings.getDescription()) elif a.set_short: settings.setShort(a.set_short) helper.update(settings) elif a.get_short: cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") elif a.get_icmptypes: cmd.print_and_exit(" ".join(fw.config().getIcmpTypeNames())) elif a.new_icmptype: config = fw.config() config.addIcmpType(a.new_icmptype, FirewallClientIcmpTypeSettings()) elif a.new_icmptype_from_file: filename = os.path.basename(a.new_icmptype_from_file) dirname = os.path.dirname(a.new_icmptype_from_file) if dirname == "": dirname = "./" try: obj = icmptype_reader(filename, dirname) except FirewallError as msg: cmd.fail("Failed to load icmptype file '%s': %s" % \ (a.new_icmptype_from_file, msg)) except IOError as msg: cmd.fail("Failed to load icmptype file: %s" % msg) if a.name: obj.name = a.name config = fw.config() config.addIcmpType(obj.name, obj.export_config()) elif a.delete_icmptype: icmptype = fw.config().getIcmpTypeByName(a.delete_icmptype) icmptype.remove() elif a.load_icmptype_defaults: icmptype = fw.config().getIcmpTypeByName(a.load_icmptype_defaults) icmptype.loadDefaults() elif a.info_icmptype: icmptype = fw.config().getIcmpTypeByName(a.info_icmptype) cmd.print_icmptype_info(a.info_icmptype, icmptype.getSettings()) sys.exit(0) elif a.path_icmptype: icmptype = fw.config().getIcmpTypeByName(a.path_icmptype) cmd.print_and_exit("%s/%s" % (icmptype.get_property("path"), icmptype.get_property("filename"))) elif a.icmptype: icmptype = fw.config().getIcmpTypeByName(a.icmptype) settings = icmptype.getSettings() if a.add_destination: cmd.add_sequence(a.add_destination, settings.addDestination, settings.queryDestination, cmd.check_destination_ipv, "'%s'") icmptype.update(settings) elif a.remove_destination: cmd.remove_sequence(a.remove_destination, settings.removeDestination, settings.queryDestination, cmd.check_destination_ipv, "'%s'") icmptype.update(settings) elif a.query_destination: cmd.query_sequence(a.query_destination, settings.queryDestination, cmd.check_destination_ipv , "'%s'") elif a.get_destinations: l = settings.getDestinations() if len(l) == 0: l = [ "ipv4", "ipv6" ] cmd.print_and_exit("\n".join(l)) elif a.set_description: settings.setDescription(a.set_description) icmptype.update(settings) elif a.get_description: cmd.print_and_exit(settings.getDescription()) elif a.set_short: settings.setShort(a.set_short) icmptype.update(settings) elif a.get_short: cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") elif a.service: service = fw.config().getServiceByName(a.service) settings = service.getSettings() if a.add_port: cmd.add_sequence(a.add_port, settings.addPort, settings.queryPort, cmd.parse_port, "%s/%s") service.update(settings) elif a.remove_port: cmd.remove_sequence(a.remove_port, settings.removePort, settings.queryPort, cmd.parse_port, "%s/%s") service.update(settings) elif a.query_port: cmd.query_sequence(a.query_port, settings.queryPort, cmd.parse_port, "%s/%s") elif a.get_ports: l = settings.getPorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_protocol: cmd.add_sequence(a.add_protocol, settings.addProtocol, settings.queryProtocol, None, "'%s'") service.update(settings) elif a.remove_protocol: cmd.remove_sequence(a.remove_protocol, settings.removeProtocol, settings.queryProtocol, None, "'%s'") service.update(settings) elif a.query_protocol: cmd.query_sequence(a.query_protocol, settings.queryProtocol, None, "'%s'") elif a.get_protocols: l = settings.getProtocols() cmd.print_and_exit(" ".join(["%s" % protocol for protocol in l])) elif a.add_source_port: cmd.add_sequence(a.add_source_port, settings.addSourcePort, settings.querySourcePort, cmd.parse_port, "%s/%s") service.update(settings) elif a.remove_source_port: cmd.remove_sequence(a.remove_source_port, settings.removeSourcePort, settings.querySourcePort, cmd.parse_port, "%s/%s") service.update(settings) elif a.query_source_port: cmd.query_sequence(a.query_source_port, settings.querySourcePort, cmd.parse_port, "%s/%s") elif a.get_source_ports: l = settings.getSourcePorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_module: cmd.add_sequence(a.add_module, settings.addModule, settings.queryModule, None, "'%s'") service.update(settings) elif a.remove_module: cmd.remove_sequence(a.remove_module, settings.removeModule, settings.queryModule, None, "'%s'") service.update(settings) elif a.query_module: cmd.query_sequence(a.query_module, settings.queryModule, None, "'%s'") elif a.get_modules: l = settings.getModules() cmd.print_and_exit(" ".join(["%s" % module for module in l])) elif a.set_destination: cmd.add_sequence(a.set_destination, settings.setDestination, settings.queryDestination, cmd.parse_service_destination, "%s:%s") service.update(settings) elif a.remove_destination: # special case for removeDestination: Only ipv, no address for ipv in a.remove_destination: cmd.check_destination_ipv(ipv) if ipv not in settings.getDestinations(): if len(a.remove_destination) > 1: cmd.print_warning("Warning: NOT_ENABLED: '%s'" % ipv) else: code = FirewallError.get_code("NOT_ENABLED") cmd.print_and_exit("Error: NOT_ENABLED: '%s'" % ipv, code) else: settings.removeDestination(ipv) service.update(settings) elif a.query_destination: cmd.query_sequence(a.query_destination, settings.queryDestination, cmd.parse_service_destination, "'%s'") elif a.get_destinations: l = settings.getDestinations() cmd.print_and_exit(" ".join(["%s:%s" % (dest[0], dest[1]) for dest in l.items()])) elif a.set_description: settings.setDescription(a.set_description) service.update(settings) elif a.get_description: cmd.print_and_exit(settings.getDescription()) elif a.set_short: settings.setShort(a.set_short) service.update(settings) elif a.get_short: cmd.print_and_exit(settings.getShort()) else: cmd.fail(parser.format_usage() + "Unknown option") # lockdown whitelist elif options_lockdown_whitelist: policies = fw.config().policies() # commands if a.list_lockdown_whitelist_commands: l = policies.getLockdownWhitelistCommands() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_command: cmd.add_sequence(a.add_lockdown_whitelist_command, policies.addLockdownWhitelistCommand, policies.queryLockdownWhitelistCommand, None, "'%s'") elif a.remove_lockdown_whitelist_command: cmd.remove_sequence(a.remove_lockdown_whitelist_command, policies.removeLockdownWhitelistCommand, policies.queryLockdownWhitelistCommand, None, "'%s'") elif a.query_lockdown_whitelist_command: cmd.query_sequence(a.query_lockdown_whitelist_command, policies.queryLockdownWhitelistCommand, None, "'%s'") # contexts elif a.list_lockdown_whitelist_contexts: l = policies.getLockdownWhitelistContexts() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_context: cmd.add_sequence(a.add_lockdown_whitelist_context, policies.addLockdownWhitelistContext, policies.queryLockdownWhitelistContext, None, "'%s'") elif a.remove_lockdown_whitelist_context: cmd.remove_sequence(a.remove_lockdown_whitelist_context, policies.removeLockdownWhitelistContext, policies.queryLockdownWhitelistContext, None, "'%s'") elif a.query_lockdown_whitelist_context: cmd.query_sequence(a.query_lockdown_whitelist_context, policies.queryLockdownWhitelistContext, None, "'%s'") # uids elif a.list_lockdown_whitelist_uids: l = policies.getLockdownWhitelistUids() cmd.print_and_exit(" ".join(map(str, l))) elif a.add_lockdown_whitelist_uid is not None: cmd.add_sequence(a.add_lockdown_whitelist_uid, policies.addLockdownWhitelistUid, policies.queryLockdownWhitelistUid, None, "%s") elif a.remove_lockdown_whitelist_uid is not None: cmd.remove_sequence(a.remove_lockdown_whitelist_uid, policies.removeLockdownWhitelistUid, policies.queryLockdownWhitelistUid, None, "%s") elif a.query_lockdown_whitelist_uid is not None: cmd.query_sequence(a.query_lockdown_whitelist_uid, policies.queryLockdownWhitelistUid, None, "%s") # users elif a.list_lockdown_whitelist_users: l = policies.getLockdownWhitelistUsers() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_user: cmd.add_sequence(a.add_lockdown_whitelist_user, policies.addLockdownWhitelistUser, policies.queryLockdownWhitelistUser, None, "%s") elif a.remove_lockdown_whitelist_user: cmd.remove_sequence(a.remove_lockdown_whitelist_user, policies.removeLockdownWhitelistUser, policies.queryLockdownWhitelistUser, None, "%s") elif a.query_lockdown_whitelist_user: cmd.query_sequence(a.query_lockdown_whitelist_user, policies.queryLockdownWhitelistUser, None, "'%s'") elif options_direct: direct = fw.config().direct() if a.passthrough: if len(a.passthrough) < 2: cmd.fail("usage: --permanent --direct --passthrough { ipv4 | ipv6 | eb } <args>") cmd.print_msg(direct.addPassthrough(cmd.check_ipv(a.passthrough[0]), splitArgs(a.passthrough[1]))) if a.add_passthrough: if len(a.add_passthrough) < 2: cmd.fail("usage: --permanent --direct --add-passthrough { ipv4 | ipv6 | eb } <args>") cmd.print_msg(direct.addPassthrough(cmd.check_ipv(a.add_passthrough[0]), splitArgs(a.add_passthrough[1]))) elif a.remove_passthrough: if len(a.remove_passthrough) < 2: cmd.fail("usage: --permanent --direct --remove-passthrough { ipv4 | ipv6 | eb } <args>") direct.removePassthrough(cmd.check_ipv(a.remove_passthrough[0]), splitArgs(a.remove_passthrough[1])) elif a.query_passthrough: if len(a.query_passthrough) < 2: cmd.fail("usage: --permanent --direct --query-passthrough { ipv4 | ipv6 | eb } <args>") cmd.print_query_result( direct.queryPassthrough(cmd.check_ipv(a.query_passthrough[0]), splitArgs(a.query_passthrough[1]))) sys.exit(0) elif a.get_passthroughs: rules = direct.getPassthroughs(cmd.check_ipv(a.get_passthroughs[0])) for rule in rules: cmd.print_msg(joinArgs(rule)) sys.exit(0) elif a.get_all_passthroughs: for (ipv, rule) in direct.getAllPassthroughs(): cmd.print_msg("%s %s" % (ipv, joinArgs(rule))) sys.exit(0) elif a.add_chain: direct.addChain(cmd.check_ipv(a.add_chain[0]), a.add_chain[1], a.add_chain[2]) elif a.remove_chain: direct.removeChain(cmd.check_ipv(a.remove_chain[0]), a.remove_chain[1], a.remove_chain[2]) elif a.query_chain: cmd.print_query_result( direct.queryChain(cmd.check_ipv(a.query_chain[0]), a.query_chain[1], a.query_chain[2])) sys.exit(0) elif a.get_chains: cmd.print_and_exit( " ".join(direct.getChains(cmd.check_ipv(a.get_chains[0]), a.get_chains[1]))) sys.exit(0) elif a.get_all_chains: chains = direct.getAllChains() for (ipv, table, chain) in chains: cmd.print_msg("%s %s %s" % (ipv, table, chain)) sys.exit(0) elif a.add_rule: if len(a.add_rule) < 5: cmd.fail("usage: --permanent --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") try: priority = int(a.add_rule[3]) except ValueError: cmd.fail("usage: --permanent --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") direct.addRule(cmd.check_ipv(a.add_rule[0]), a.add_rule[1], a.add_rule[2], priority, splitArgs(a.add_rule[4])) elif a.remove_rule: if len(a.remove_rule) < 5: cmd.fail("usage: --permanent --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") try: priority = int(a.remove_rule[3]) except ValueError: cmd.fail("usage: --permanent --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") direct.removeRule(cmd.check_ipv(a.remove_rule[0]), a.remove_rule[1], a.remove_rule[2], priority, splitArgs(a.remove_rule[4])) elif a.remove_rules: if len(a.remove_rules) < 3: cmd.fail("usage: --permanent --direct --remove-rules { ipv4 | ipv6 | eb } <table> <chain>") direct.removeRules(cmd.check_ipv(a.remove_rules[0]), a.remove_rules[1], a.remove_rules[2]) elif a.query_rule: if len(a.query_rule) < 5: cmd.fail("usage: --permanent --direct --query-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") try: priority = int(a.query_rule[3]) except ValueError: cmd.fail("usage: --permanent --direct --query-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") cmd.print_query_result( direct.queryRule(cmd.check_ipv(a.query_rule[0]), a.query_rule[1], a.query_rule[2], priority, splitArgs(a.query_rule[4]))) sys.exit(0) elif a.get_rules: rules = direct.getRules(cmd.check_ipv(a.get_rules[0]), a.get_rules[1], a.get_rules[2]) for (priority, rule) in rules: cmd.print_msg("%d %s" % (priority, joinArgs(rule))) sys.exit(0) elif a.get_all_rules: rules = direct.getAllRules() for (ipv, table, chain, priority, rule) in rules: cmd.print_msg("%s %s %s %d %s" % (ipv, table, chain, priority, joinArgs(rule))) sys.exit(0) else: if zone == "": zone = fw.getDefaultZone() fw_zone = fw.config().getZoneByName(zone) # interface if a.list_interfaces: interfaces = sorted(set(try_nm_get_interfaces_in_zone(zone)) | set(fw_zone.getInterfaces())) cmd.print_and_exit(" ".join(interfaces)) elif a.get_zone_of_interface: for interface in a.get_zone_of_interface: # ask NM before checking our config zone = try_get_zone_of_interface(interface) if not zone: zone = fw.config().getZoneOfInterface(interface) if zone: if len(a.get_zone_of_interface) > 1: cmd.print_warning("%s: %s" % (interface, zone)) else: cmd.print_and_exit(zone) else: if len(a.get_zone_of_interface) > 1: cmd.print_warning("%s: no zone" % interface) else: cmd.fail("no zone") elif a.change_interface: interfaces = [ ] for interface in a.change_interface: if not try_set_zone_of_interface(zone, interface): interfaces.append(interface) for interface in interfaces: old_zone_name = fw.config().getZoneOfInterface(interface) if old_zone_name != zone: if old_zone_name: old_zone_obj = fw.config().getZoneByName(old_zone_name) old_zone_obj.removeInterface(interface)# remove from old fw_zone.addInterface(interface) # add to new elif a.add_interface: interfaces = [ ] for interface in a.add_interface: if not try_set_zone_of_interface(a.zone, interface): interfaces.append(interface) cmd.add_sequence(interfaces, fw_zone.addInterface, fw_zone.queryInterface, None, "'%s'") elif a.remove_interface: interfaces = [ ] for interface in a.remove_interface: if not try_set_zone_of_interface("", interface): interfaces.append(interface) cmd.remove_sequence(interfaces, fw_zone.removeInterface, fw_zone.queryInterface, None, "'%s'") elif a.query_interface: cmd.query_sequence(a.query_interface, fw_zone.queryInterface, None, "'%s'") # source if a.list_sources: sources = fw_zone.getSources() cmd.print_and_exit(" ".join(sources)) elif a.get_zone_of_source: for source in a.get_zone_of_source: zone = fw.config().getZoneOfSource(source) if zone: if len(a.get_zone_of_source) > 1: cmd.print_warning("%s: %s" % (source, zone)) else: cmd.print_and_exit(zone) else: if len(a.get_zone_of_source) > 1: cmd.print_warning("%s: no zone" % source) else: cmd.fail("no zone") elif a.change_source: for source in a.change_source: old_zone_name = fw.config().getZoneOfSource(source) if old_zone_name != zone: if old_zone_name: old_zone_obj = fw.config().getZoneByName(old_zone_name) old_zone_obj.removeSource(source) # remove from old fw_zone.addSource(source) # add to new elif a.add_source: cmd.add_sequence(a.add_source, fw_zone.addSource, fw_zone.querySource, None, "'%s'") elif a.remove_source: cmd.remove_sequence(a.remove_source, fw_zone.removeSource, fw_zone.querySource, None, "'%s'") elif a.query_source: cmd.query_sequence(a.query_source, fw_zone.querySource, None, "'%s'") # rich rules if a.list_rich_rules: l = fw_zone.getRichRules() cmd.print_and_exit("\n".join(l)) elif a.add_rich_rule: cmd.add_sequence(a.add_rich_rule, fw_zone.addRichRule, fw_zone.queryRichRule, None, "'%s'") elif a.remove_rich_rule: cmd.remove_sequence(a.remove_rich_rule, fw_zone.removeRichRule, fw_zone.queryRichRule, None, "'%s'") elif a.query_rich_rule: cmd.query_sequence(a.query_rich_rule, fw_zone.queryRichRule, None, "'%s'") # service if a.list_services: l = fw_zone.getServices() cmd.print_and_exit(" ".join(sorted(l))) elif a.add_service: cmd.add_sequence(a.add_service, fw_zone.addService, fw_zone.queryService, None, "'%s'") elif a.remove_service: cmd.remove_sequence(a.remove_service, fw_zone.removeService, fw_zone.queryService, None, "'%s'") elif a.query_service: cmd.query_sequence(a.query_service, fw_zone.queryService, None, "'%s'") # port elif a.list_ports: l = fw_zone.getPorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_port: cmd.add_sequence(a.add_port, fw_zone.addPort, fw_zone.queryPort, cmd.parse_port, "%s/%s") elif a.remove_port: cmd.remove_sequence(a.remove_port, fw_zone.removePort, fw_zone.queryPort, cmd.parse_port, "%s/%s") elif a.query_port: cmd.query_sequence(a.query_port, fw_zone.queryPort, cmd.parse_port, "%s/%s") # protocol elif a.list_protocols: l = fw_zone.getProtocols() cmd.print_and_exit(" ".join(["%s" % protocol for protocol in sorted(l)])) elif a.add_protocol: cmd.add_sequence(a.add_protocol, fw_zone.addProtocol, fw_zone.queryProtocol, None, "'%s'") elif a.remove_protocol: cmd.remove_sequence(a.remove_protocol, fw_zone.removeProtocol, fw_zone.queryProtocol, None, "'%s'") elif a.query_protocol: cmd.query_sequence(a.query_protocol, fw_zone.queryProtocol, None, "'%s'") # source port elif a.list_source_ports: l = fw_zone.getSourcePorts() cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_source_port: cmd.add_sequence(a.add_source_port, fw_zone.addSourcePort, fw_zone.querySourcePort, cmd.parse_port, "%s/%s") elif a.remove_source_port: cmd.remove_sequence(a.remove_source_port, fw_zone.removeSourcePort, fw_zone.querySourcePort, cmd.parse_port, "%s/%s") elif a.query_source_port: cmd.query_sequence(a.query_source_port, fw_zone.querySourcePort, cmd.parse_port, "%s/%s") # masquerade elif a.add_masquerade: fw_zone.addMasquerade() elif a.remove_masquerade: fw_zone.removeMasquerade() elif a.query_masquerade: cmd.print_query_result(fw_zone.queryMasquerade()) # forward port elif a.list_forward_ports: l = fw_zone.getForwardPorts() cmd.print_and_exit("\n".join(["port=%s:proto=%s:toport=%s:toaddr=%s" % (port, protocol, toport, toaddr) for (port, protocol, toport, toaddr) in l])) elif a.add_forward_port: cmd.add_sequence(a.add_forward_port, fw_zone.addForwardPort, fw_zone.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") elif a.remove_forward_port: cmd.remove_sequence(a.remove_forward_port, fw_zone.removeForwardPort, fw_zone.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") elif a.query_forward_port: cmd.query_sequence(a.query_forward_port, fw_zone.queryForwardPort, cmd.parse_forward_port, "port=%s:proto=%s:toport=%s:toaddr=%s") # block icmp elif a.list_icmp_blocks: l = fw_zone.getIcmpBlocks() cmd.print_and_exit(" ".join(l)) elif a.add_icmp_block: cmd.add_sequence(a.add_icmp_block, fw_zone.addIcmpBlock, fw_zone.queryIcmpBlock, None, "'%s'") elif a.remove_icmp_block: cmd.remove_sequence(a.remove_icmp_block, fw_zone.removeIcmpBlock, fw_zone.queryIcmpBlock, None, "'%s'") elif a.query_icmp_block: cmd.query_sequence(a.query_icmp_block, fw_zone.queryIcmpBlock, None, "'%s'") # icmp block inversion elif a.add_icmp_block_inversion: fw_zone.addIcmpBlockInversion() elif a.remove_icmp_block_inversion: fw_zone.removeIcmpBlockInversion() elif a.query_icmp_block_inversion: cmd.print_query_result(fw_zone.queryIcmpBlockInversion()) # zone target elif a.get_target: target = fw_zone.getTarget() cmd.print_and_exit(target if target != "%%REJECT%%" else "REJECT") elif a.set_target: fw_zone.setTarget(a.set_target if a.set_target != "REJECT" else "%%REJECT%%") # list all zone settings elif a.list_all: interfaces = try_nm_get_interfaces_in_zone(zone) cmd.print_zone_info(zone, fw_zone.getSettings(), extra_interfaces=interfaces) sys.exit(0) # list everything elif a.list_all_zones: names = fw.config().getZoneNames() for zone in sorted(names): interfaces = try_nm_get_interfaces_in_zone(zone) settings = fw.config().getZoneByName(zone).getSettings() cmd.print_zone_info(zone, settings, extra_interfaces=interfaces) cmd.print_msg("") sys.exit(0) # set zone description elif a.set_description: settings = fw.config().getZoneByName(zone).getSettings() settings.setDescription(a.set_description) fw_zone.update(settings) # get zone description elif a.get_description: settings = fw.config().getZoneByName(zone).getSettings() cmd.print_and_exit(settings.getDescription()) # set zone short description elif a.set_short: settings = fw.config().getZoneByName(zone).getSettings() settings.setShort(a.set_short) fw_zone.update(settings) # get zone short description elif a.get_short: settings = fw.config().getZoneByName(zone).getSettings() cmd.print_and_exit(settings.getShort()) elif a.version: cmd.print_and_exit(fw.get_property("version")) elif a.state: state = fw.get_property("state") if state == "RUNNING": cmd.print_and_exit ("running") elif state == "FAILED": cmd.print_and_exit("failed", errors.RUNNING_BUT_FAILED) else: cmd.print_and_exit ("not running", errors.NOT_RUNNING) elif a.get_log_denied: cmd.print_and_exit(fw.getLogDenied()) elif a.set_log_denied: fw.setLogDenied(a.set_log_denied) elif a.get_automatic_helpers: cmd.print_and_exit(fw.getAutomaticHelpers()) elif a.set_automatic_helpers: fw.setAutomaticHelpers(a.set_automatic_helpers) elif a.get_ipset_types: types = fw.get_property("IPSetTypes") cmd.print_and_exit(" ".join(sorted(types))) elif a.reload: fw.reload() elif a.complete_reload: fw.complete_reload() elif a.runtime_to_permanent: fw.runtimeToPermanent() elif a.check_config: fw.checkPermanentConfig() elif a.direct: if a.passthrough: if len(a.passthrough) < 2: cmd.fail("usage: --direct --passthrough { ipv4 | ipv6 | eb } <args>") msg = fw.passthrough(cmd.check_ipv(a.passthrough[0]), splitArgs(a.passthrough[1])) if msg: sys.stdout.write(msg + "\n") elif a.add_passthrough: if len(a.add_passthrough) < 2: cmd.fail("usage: --direct --add-passthrough { ipv4 | ipv6 | eb } <args>") fw.addPassthrough(cmd.check_ipv(a.add_passthrough[0]), splitArgs(a.add_passthrough[1])) elif a.remove_passthrough: if len(a.remove_passthrough) < 2: cmd.fail("usage: --direct --remove-passthrough { ipv4 | ipv6 | eb } <args>") fw.removePassthrough(cmd.check_ipv(a.remove_passthrough[0]), splitArgs(a.remove_passthrough[1])) elif a.query_passthrough: if len(a.query_passthrough) < 2: cmd.fail("usage: --direct --query-passthrough { ipv4 | ipv6 | eb } <args>") cmd.print_query_result( fw.queryPassthrough(cmd.check_ipv(a.query_passthrough[0]), splitArgs(a.query_passthrough[1]))) elif a.get_passthroughs: rules = fw.getPassthroughs(cmd.check_ipv(a.get_passthroughs[0])) for rule in rules: cmd.print_msg(joinArgs(rule)) sys.exit(0) elif a.get_all_passthroughs: for (ipv, rule) in fw.getAllPassthroughs(): cmd.print_msg("%s %s" % (ipv, joinArgs(rule))) sys.exit(0) elif a.add_chain: fw.addChain(cmd.check_ipv(a.add_chain[0]), a.add_chain[1], a.add_chain[2]) elif a.remove_chain: fw.removeChain(cmd.check_ipv(a.remove_chain[0]), a.remove_chain[1], a.remove_chain[2]) elif a.query_chain: cmd.print_query_result(fw.queryChain(cmd.check_ipv(a.query_chain[0]), a.query_chain[1], a.query_chain[2])) elif a.get_chains: cmd.print_and_exit(" ".join(fw.getChains(cmd.check_ipv(a.get_chains[0]), a.get_chains[1]))) elif a.get_all_chains: chains = fw.getAllChains() for (ipv, table, chain) in chains: cmd.print_msg("%s %s %s" % (ipv, table, chain)) sys.exit(0) elif a.add_rule: if len(a.add_rule) < 5: cmd.fail("usage: --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") try: priority = int(a.add_rule[3]) except ValueError: cmd.fail("usage: --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") fw.addRule(cmd.check_ipv(a.add_rule[0]), a.add_rule[1], a.add_rule[2], priority, splitArgs(a.add_rule[4])) elif a.remove_rule: if len(a.remove_rule) < 5: cmd.fail("usage: --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") try: priority = int(a.remove_rule[3]) except ValueError: cmd.fail("usage: --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") fw.removeRule(cmd.check_ipv(a.remove_rule[0]), a.remove_rule[1], a.remove_rule[2], priority, splitArgs(a.remove_rule[4])) elif a.remove_rules: if len(a.remove_rules) < 3: cmd.fail("usage: --direct --remove-rules { ipv4 | ipv6 | eb } <table> <chain>") fw.removeRules(cmd.check_ipv(a.remove_rules[0]), a.remove_rules[1], a.remove_rules[2]) elif a.query_rule: if len(a.query_rule) < 5: cmd.fail("usage: --direct --query-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") try: priority = int(a.query_rule[3]) except ValueError: cmd.fail("usage: --direct --query-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>") cmd.print_query_result( fw.queryRule(cmd.check_ipv(a.query_rule[0]), a.query_rule[1], a.query_rule[2], priority, splitArgs(a.query_rule[4]))) elif a.get_rules: rules = fw.getRules(cmd.check_ipv(a.get_rules[0]), a.get_rules[1], a.get_rules[2]) for (priority, rule) in rules: cmd.print_msg("%d %s" % (priority, joinArgs(rule))) sys.exit(0) elif a.get_all_rules: rules = fw.getAllRules() for (ipv, table, chain, priority, rule) in rules: cmd.print_msg("%s %s %s %d %s" % (ipv, table, chain, priority, joinArgs(rule))) sys.exit(0) elif a.get_default_zone: cmd.print_and_exit(fw.getDefaultZone()) elif a.set_default_zone: fw.setDefaultZone(a.set_default_zone) elif a.get_zones: cmd.print_and_exit(" ".join(fw.getZones())) elif a.get_active_zones: zones = fw.getActiveZones() for zone in zones: cmd.print_msg("%s" % zone) for x in [ "interfaces", "sources" ]: if x in zones[zone]: cmd.print_msg(" %s: %s" % (x, " ".join(zones[zone][x]))) sys.exit(0) elif a.get_services: l = fw.listServices() cmd.print_and_exit(" ".join(l)) elif a.get_icmptypes: l = fw.listIcmpTypes() cmd.print_and_exit(" ".join(l)) # panic elif a.panic_on: fw.enablePanicMode() elif a.panic_off: fw.disablePanicMode() elif a.query_panic: cmd.print_query_result(fw.queryPanicMode()) # ipset elif a.get_ipsets: ipsets = fw.getIPSets() cmd.print_and_exit(" ".join(sorted(ipsets))) elif a.info_ipset: cmd.print_ipset_info(a.info_ipset, fw.getIPSetSettings(a.info_ipset)) sys.exit(0) elif a.add_entry: cmd.x_add_sequence(a.ipset, a.add_entry, fw.addEntry, fw.queryEntry, None, "'%s'") elif a.remove_entry: cmd.x_remove_sequence(a.ipset, a.remove_entry, fw.removeEntry, fw.queryEntry, None, "'%s'") elif a.query_entry: cmd.x_query_sequence(a.ipset, a.query_entry, fw.queryEntry, None, "'%s'") elif a.get_entries: l = fw.getEntries(a.ipset) cmd.print_and_exit("\n".join(l)) elif a.add_entries_from_file: old_entries = fw.getEntries(a.ipset) changed = False for filename in a.add_entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(a.add_entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry not in entries_set: old_entries.append(entry) entries_set.add(entry) changed = True else: cmd.print_if_verbose("Warning: ALREADY_ENABLED: %s" % entry) if changed: fw.setEntries(a.ipset, old_entries) elif a.remove_entries_from_file: old_entries = fw.getEntries(a.ipset) changed = False for filename in a.remove_entries_from_file: try: entries = cmd.get_ipset_entries_from_file(filename) except IOError as msg: message = "Failed to read file '%s': %s" % (filename, msg) if len(a.remove_entries_from_file) > 1: cmd.print_warning(message) else: cmd.print_and_exit(message) else: entries_set = set() for entry in old_entries: entries_set.add(entry) for entry in entries: if entry in entries_set: old_entries.remove(entry) entries_set.discard(entry) changed = True else: cmd.print_if_verbose("Warning: NOT_ENABLED: %s" % entry) if changed: fw.setEntries(a.ipset, old_entries) # helper elif a.get_helpers: helpers = fw.getHelpers() cmd.print_and_exit(" ".join(sorted(helpers))) elif a.info_helper: cmd.print_helper_info(a.info_helper, fw.getHelperSettings(a.info_helper)) sys.exit(0) # lockdown elif a.lockdown_on: fw.config().set_property("Lockdown", "yes") # permanent fw.enableLockdown() # runtime elif a.lockdown_off: fw.config().set_property("Lockdown", "no") # permanent fw.disableLockdown() # runtime elif a.query_lockdown: cmd.print_query_result(fw.queryLockdown()) # runtime #lockdown = fw.config().get_property("Lockdown") #cmd.print_query_result(lockdown.lower() in [ "yes", "true" ]) # lockdown whitelist # commands elif a.list_lockdown_whitelist_commands: l = fw.getLockdownWhitelistCommands() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_command: cmd.add_sequence(a.add_lockdown_whitelist_command, fw.addLockdownWhitelistCommand, fw.queryLockdownWhitelistCommand, None, "'%s'") elif a.remove_lockdown_whitelist_command: cmd.remove_sequence(a.remove_lockdown_whitelist_command, fw.removeLockdownWhitelistCommand, fw.queryLockdownWhitelistCommand, None, "'%s'") elif a.query_lockdown_whitelist_command: cmd.query_sequence(a.query_lockdown_whitelist_command, fw.queryLockdownWhitelistCommand, None, "'%s'") # contexts elif a.list_lockdown_whitelist_contexts: l = fw.getLockdownWhitelistContexts() cmd.print_and_exit("\n".join(l)) elif a.add_lockdown_whitelist_context: cmd.add_sequence(a.add_lockdown_whitelist_context, fw.addLockdownWhitelistContext, fw.queryLockdownWhitelistContext, None, "'%s'") elif a.remove_lockdown_whitelist_context: cmd.remove_sequence(a.remove_lockdown_whitelist_context, fw.removeLockdownWhitelistContext, fw.queryLockdownWhitelistContext, None, "'%s'") elif a.query_lockdown_whitelist_context: cmd.query_sequence(a.query_lockdown_whitelist_context, fw.queryLockdownWhitelistContext, None, "'%s'") # uids elif a.list_lockdown_whitelist_uids: l = fw.getLockdownWhitelistUids() cmd.print_and_exit(" ".join(map(str, l))) elif a.add_lockdown_whitelist_uid is not None: cmd.add_sequence(a.add_lockdown_whitelist_uid, fw.addLockdownWhitelistUid, fw.queryLockdownWhitelistUid, None, "'%s'") elif a.remove_lockdown_whitelist_uid is not None: cmd.remove_sequence(a.remove_lockdown_whitelist_uid, fw.removeLockdownWhitelistUid, fw.queryLockdownWhitelistUid, None, "'%s'") elif a.query_lockdown_whitelist_uid is not None: cmd.query_sequence(a.query_lockdown_whitelist_uid, fw.queryLockdownWhitelistUid, None, "'%s'") # users elif a.list_lockdown_whitelist_users: l = fw.getLockdownWhitelistUsers() cmd.print_and_exit(" ".join(l)) elif a.add_lockdown_whitelist_user: cmd.add_sequence(a.add_lockdown_whitelist_user, fw.addLockdownWhitelistUser, fw.queryLockdownWhitelistUser, None, "'%s'") elif a.remove_lockdown_whitelist_user: cmd.remove_sequence(a.remove_lockdown_whitelist_user, fw.removeLockdownWhitelistUser, fw.queryLockdownWhitelistUser, None, "'%s'") elif a.query_lockdown_whitelist_user: cmd.query_sequence(a.query_lockdown_whitelist_user, fw.queryLockdownWhitelistUser, None, "'%s'") # interface elif a.list_interfaces: l = fw.getInterfaces(zone) cmd.print_and_exit(" ".join(l)) elif a.get_zone_of_interface: for interface in a.get_zone_of_interface: zone = fw.getZoneOfInterface(interface) if zone: if len(a.get_zone_of_interface) > 1: cmd.print_warning("%s: %s" % (interface, zone)) else: cmd.print_and_exit(zone) else: if len(a.get_zone_of_interface) > 1: cmd.print_warning("%s: no zone" % interface) else: cmd.fail("no zone") elif a.add_interface: interfaces = [ ] for interface in a.add_interface: interfaces.append(interface) cmd.x_add_sequence(zone, interfaces, fw.addInterface, fw.queryInterface, None, "'%s'") elif a.change_interface: interfaces = [ ] for interface in a.change_interface: interfaces.append(interface) cmd.x_add_sequence(zone, interfaces, fw.changeZoneOfInterface, fw.queryInterface, None, "'%s'") elif a.remove_interface: interfaces = [ ] for interface in a.remove_interface: interfaces.append(interface) cmd.x_remove_sequence(zone, interfaces, fw.removeInterface, fw.queryInterface, None, "'%s'") elif a.query_interface: cmd.x_query_sequence(zone, a.query_interface, fw.queryInterface, None, "'%s'") # source elif a.list_sources: sources = fw.getSources(zone) cmd.print_and_exit(" ".join(sources)) elif a.get_zone_of_source: for source in a.get_zone_of_source: zone = fw.getZoneOfSource(source) if zone: if len(a.get_zone_of_source) > 1: cmd.print_warning("%s: %s" % (source, zone)) else: cmd.print_and_exit(zone) else: if len(a.get_zone_of_source) > 1: cmd.print_warning("%s: no zone" % source) else: cmd.fail("no zone") sys.exit(0) elif a.add_source: cmd.x_add_sequence(zone, a.add_source, fw.addSource, fw.querySource, None, "'%s'") elif a.change_source: cmd.x_add_sequence(zone, a.change_source, fw.changeZoneOfSource, fw.querySource, None, "'%s'") elif a.remove_source: cmd.x_remove_sequence(zone, a.remove_source, fw.removeSource, fw.querySource, None, "'%s'") elif a.query_source: cmd.x_query_sequence(zone, a.query_source, fw.querySource, None, "'%s'") # rich rules elif a.list_rich_rules: l = fw.getRichRules(zone) cmd.print_and_exit("\n".join(l)) elif a.add_rich_rule: cmd.zone_add_timeout_sequence(zone, a.add_rich_rule, fw.addRichRule, fw.queryRichRule, None, "'%s'", a.timeout) elif a.remove_rich_rule: cmd.x_remove_sequence(zone, a.remove_rich_rule, fw.removeRichRule, fw.queryRichRule, None, "'%s'") elif a.query_rich_rule: cmd.x_query_sequence(zone, a.query_rich_rule, fw.queryRichRule, None, "'%s'") # service elif a.list_services: l = fw.getServices(zone) cmd.print_and_exit(" ".join(sorted(l))) elif a.add_service: cmd.zone_add_timeout_sequence(zone, a.add_service, fw.addService, fw.queryService, None, "'%s'", a.timeout) elif a.remove_service: cmd.x_remove_sequence(zone, a.remove_service, fw.removeService, fw.queryService, None, "'%s'") elif a.query_service: cmd.x_query_sequence(zone, a.query_service, fw.queryService, None, "'%s'") # port elif a.list_ports: l = fw.getPorts(zone) cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_port: cmd.zone_add_timeout_sequence(zone, a.add_port, fw.addPort, fw.queryPort, cmd.parse_port, "'%s/%s'", a.timeout) elif a.remove_port: cmd.x_remove_sequence(zone, a.remove_port, fw.removePort, fw.queryPort, cmd.parse_port, "'%s/%s'") elif a.query_port: cmd.x_query_sequence(zone, a.query_port, fw.queryPort, cmd.parse_port, "'%s/%s'") # protocol elif a.list_protocols: l = fw.getProtocols(zone) cmd.print_and_exit(" ".join(["%s" % protocol for protocol in sorted(l)])) elif a.add_protocol: cmd.zone_add_timeout_sequence(zone, a.add_protocol, fw.addProtocol, fw.queryProtocol, None, "'%s'", a.timeout) elif a.remove_protocol: cmd.x_remove_sequence(zone, a.remove_protocol, fw.removeProtocol, fw.queryProtocol, None, "'%s'") elif a.query_protocol: cmd.x_query_sequence(zone, a.query_protocol, fw.queryProtocol, None, "'%s'") # source port elif a.list_source_ports: l = fw.getSourcePorts(zone) cmd.print_and_exit(" ".join(["%s/%s" % (port[0], port[1]) for port in l])) elif a.add_source_port: cmd.zone_add_timeout_sequence(zone, a.add_source_port, fw.addSourcePort, fw.querySourcePort, cmd.parse_port, "'%s/%s'", a.timeout) elif a.remove_source_port: cmd.x_remove_sequence(zone, a.remove_source_port, fw.removeSourcePort, fw.querySourcePort, cmd.parse_port, "'%s/%s'") elif a.query_source_port: cmd.x_query_sequence(zone, a.query_source_port, fw.querySourcePort, cmd.parse_port, "'%s/%s'") # masquerade elif a.add_masquerade: fw.addMasquerade(zone, a.timeout) elif a.remove_masquerade: fw.removeMasquerade(zone) elif a.query_masquerade: cmd.print_query_result(fw.queryMasquerade(zone)) # forward port elif a.list_forward_ports: l = fw.getForwardPorts(zone) cmd.print_and_exit("\n".join(["port=%s:proto=%s:toport=%s:toaddr=%s" % (port, protocol, toport, toaddr) for (port, protocol, toport, toaddr) in l])) elif a.add_forward_port: cmd.zone_add_timeout_sequence(zone, a.add_forward_port, fw.addForwardPort, fw.queryForwardPort, cmd.parse_forward_port, "'port=%s:proto=%s:toport=%s:toaddr=%s'", a.timeout) elif a.remove_forward_port: cmd.x_remove_sequence(zone, a.remove_forward_port, fw.removeForwardPort, fw.queryForwardPort, cmd.parse_forward_port, "'port=%s:proto=%s:toport=%s:toaddr=%s'") elif a.query_forward_port: cmd.x_query_sequence(zone, a.query_forward_port, fw.queryForwardPort, cmd.parse_forward_port, "'port=%s:proto=%s:toport=%s:toaddr=%s'") # block icmp elif a.list_icmp_blocks: l = fw.getIcmpBlocks(zone) cmd.print_and_exit(" ".join(l)) elif a.add_icmp_block: cmd.zone_add_timeout_sequence(zone, a.add_icmp_block, fw.addIcmpBlock, fw.queryIcmpBlock, None, "'%s'", a.timeout) elif a.remove_icmp_block: cmd.x_remove_sequence(zone, a.remove_icmp_block, fw.removeIcmpBlock, fw.queryIcmpBlock, None, "'%s'") elif a.query_icmp_block: cmd.x_query_sequence(zone, a.query_icmp_block, fw.queryIcmpBlock, None, "'%s'") # icmp block inversion elif a.add_icmp_block_inversion: fw.addIcmpBlockInversion(zone) elif a.remove_icmp_block_inversion: fw.removeIcmpBlockInversion(zone) elif a.query_icmp_block_inversion: cmd.print_query_result(fw.queryIcmpBlockInversion(zone)) # list all elif a.list_all: z = zone if zone else fw.getDefaultZone() cmd.print_zone_info(z, fw.getZoneSettings(z)) sys.exit(0) # list everything elif a.list_all_zones: for zone in fw.getZones(): cmd.print_zone_info(zone, fw.getZoneSettings(zone)) cmd.print_msg("") sys.exit(0) elif a.info_zone: cmd.print_zone_info(a.info_zone, fw.getZoneSettings(a.info_zone), True) sys.exit(0) elif a.info_service: cmd.print_service_info(a.info_service, fw.getServiceSettings(a.info_service)) sys.exit(0) elif a.info_icmptype: cmd.print_icmptype_info(a.info_icmptype, fw.getIcmpTypeSettings(a.info_icmptype)) sys.exit(0) cmd.print_and_exit("success")
Upload File
Create Folder