blob: d6959e363b6835058faed2f4d5e87d79d9af215c [file] [log] [blame]
Denys Vlasenko819b47a2017-08-03 03:29:32 +02001Why an applet can't be NOFORK or NOEXEC?
2
3Why can't be NOFORK:
Denys Vlasenko819b47a2017-08-03 03:29:32 +02004interactive: may wait for user input, ^C has to work
Denys Vlasenko7f9d62d2017-08-04 16:01:39 +02005spawner: "tool PROG ARGS" which changes program state and execs - must fork
Denys Vlasenko819b47a2017-08-03 03:29:32 +02006changes state: e.g. environment, signal handlers
Denys Vlasenko49e6bf22017-08-04 14:28:16 +02007alloc+xfunc: xmalloc, then xfunc - leaks memory if xfunc dies
8open+xfunc: opens fd, then calls xfunc - fd is leaked if xfunc dies
Denys Vlasenko7f9d62d2017-08-04 16:01:39 +02009leaks: does not free allocated memory or opened fds
Denys Vlasenko39194f02017-08-03 19:00:01 +020010runner: sometimes may run for long(ish) time, and/or works with network:
Denys Vlasenko819b47a2017-08-03 03:29:32 +020011 ^C has to work (cat BIGFILE, chmod -R, ftpget, nc)
12
Denys Vlasenko7f9d62d2017-08-04 16:01:39 +020013"runners" can become eligible after shell is taught ^C to interrupt NOFORKs,
Denys Vlasenko74c05f52017-08-04 17:36:16 +020014need to be inspected that they do not fall into alloc+xfunc, open+xfunc,
15leak categories.
Denys Vlasenko819b47a2017-08-03 03:29:32 +020016
17Why can't be NOEXEC:
18suid: runs under different uid - must fork+exec
19
20Why shouldn't be NOFORK/NOEXEC:
Denys Vlasenko7f9d62d2017-08-04 16:01:39 +020021rare: not started often enough to bother optimizing (example: poweroff)
22daemon: runs indefinitely; these are also always fit "rare" category
Denys Vlasenko39194f02017-08-03 19:00:01 +020023longterm: often runs for a long time (many seconds), execing would make
24 memory footprint smaller
Denys Vlasenko7f9d62d2017-08-04 16:01:39 +020025complex: no immediately obvious reason why NOFORK wouldn't work,
Denys Vlasenko74c05f52017-08-04 17:36:16 +020026 but does some non-obvoius operations (example: fuser, lsof, losetup);
27 detailed audit often turns out that it's a leaker
28
29Interesting example of "interactive" applet which is nevertheless can be
30(and is) NOEXEC is "rm". Yes, "rm -i" is interactive - but it's not that typical
31for users to keep it waiting for many minutes, whereas running "rm" in shell
32is very typical, and speeding up this common use via NOEXEC is useful.
33IOW: rm is "interactive", but not "longterm".
34
Denys Vlasenko819b47a2017-08-03 03:29:32 +020035
36[ - NOFORK
37[[ - NOFORK
38acpid - daemon
39add-shell
40addgroup
41adduser
42adjtimex
43ar - runner
44arch - NOFORK
Denys Vlasenko74c05f52017-08-04 17:36:16 +020045arp - complex, rare
Denys Vlasenko819b47a2017-08-03 03:29:32 +020046arping - runner
Denys Vlasenko74c05f52017-08-04 17:36:16 +020047ash - interactive, longterm
Denys Vlasenko39194f02017-08-03 19:00:01 +020048awk - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +020049base64 - runner
50basename - NOFORK
51beep
52blkdiscard
53blkid
54blockdev
55bootchartd - daemon
56brctl
57bunzip2 - runner
58busybox
59bzcat - runner
60bzip2 - runner
Denys Vlasenko39194f02017-08-03 19:00:01 +020061cal - runner: cal -n9999
Denys Vlasenko819b47a2017-08-03 03:29:32 +020062cat - runner
Denys Vlasenko74c05f52017-08-04 17:36:16 +020063chat - needs ^C to work
Denys Vlasenko819b47a2017-08-03 03:29:32 +020064chattr - runner
Denys Vlasenko39194f02017-08-03 19:00:01 +020065chgrp - noexec. runner
66chmod - noexec. runner
67chown - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +020068chpasswd - runner (list of "user:password"s from stdin)
Denys Vlasenko83d77852017-08-04 17:59:46 +020069chpst - noexec candidate, spawner
70chroot - noexec candidate, spawner
71chrt - noexec candidate, spawner
Denys Vlasenko7f9d62d2017-08-04 16:01:39 +020072chvt - leaks: get_console_fd_or_die() may open a new fd, or return one of stdio fds. Also, "rare" category. Can be noexec.
Denys Vlasenko39194f02017-08-03 19:00:01 +020073cksum - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +020074clear - NOFORK
75cmp - runner
76comm - runner
Denys Vlasenko83d77852017-08-04 17:59:46 +020077conspy - interactive, longterm
Denys Vlasenko39194f02017-08-03 19:00:01 +020078cp - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +020079cpio - runner
80crond - daemon
81crontab
Denys Vlasenko7f9d62d2017-08-04 16:01:39 +020082cryptpw - changes state: with --password-fd=N, moves N to stdin. Also, "rare" category. Can be noexec.
Denys Vlasenko83d77852017-08-04 17:59:46 +020083cttyhack - noexec candidate, spawner
Denys Vlasenko39194f02017-08-03 19:00:01 +020084cut - noexec. runner
85date - noexec. nofork candidate(needs to stop messing up env, free xasprintf result, not use xfuncs after xasprintf)
Denys Vlasenko819b47a2017-08-03 03:29:32 +020086dc - runner (eats stdin if no params)
Denys Vlasenko39194f02017-08-03 19:00:01 +020087dd - noexec. runner
Denys Vlasenko74c05f52017-08-04 17:36:16 +020088deallocvt - leaks: get_console_fd_or_die() may open a new fd, or return one of stdio fds. Also, "rare" category. Can be noexec.
Denys Vlasenko819b47a2017-08-03 03:29:32 +020089delgroup
90deluser
Denys Vlasenko74c05f52017-08-04 17:36:16 +020091depmod - complex, rare
Denys Vlasenko39194f02017-08-03 19:00:01 +020092devmem - runner, complex (access to device memory may hang)
Denys Vlasenko83d77852017-08-04 17:59:46 +020093df - leaks: nested allocs
Denys Vlasenko819b47a2017-08-03 03:29:32 +020094dhcprelay - daemon
95diff - runner
96dirname - NOFORK
Denys Vlasenko39194f02017-08-03 19:00:01 +020097dmesg - runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +020098dnsd - daemon
Denys Vlasenko74c05f52017-08-04 17:36:16 +020099dnsdomainname - needs ^C (may talk to DNS servers, which may be down)
Denys Vlasenko39194f02017-08-03 19:00:01 +0200100dos2unix - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200101dpkg - runner
Denys Vlasenko39194f02017-08-03 19:00:01 +0200102du - runner
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200103dumpkmap - leaks: get_console_fd_or_die() may open a new fd, or return one of stdio fds. Also, "rare" category. Can be noexec.
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200104dumpleases
105echo - NOFORK
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200106ed - interactive, longterm
107egrep - longterm runner ("CMD | egrep ..." may run indefinitely, better to exec to conserve memory)
108eject - leaks: open+ioctl_or_perror_and_die, changes state (moves fds)
Denys Vlasenko83d77852017-08-04 17:59:46 +0200109env - noexec. spawner, changes state (env)
110envdir - noexec candidate, spawner
111envuidgid - noexec candidate, spawner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200112expand - runner
Denys Vlasenko83d77852017-08-04 17:59:46 +0200113expr - leaks: nested allocs
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200114factor - runner (eats stdin if no params)
115fakeidentd - daemon
116false - NOFORK
Denys Vlasenko83d77852017-08-04 17:59:46 +0200117fatattr - leaks: open+xioctl, complex
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200118fbset - leaks: open+xfunc, complex, rare
119fbsplash - runner, longterm
120fdflush - leaks: open+ioctl_or_perror_and_die, needs ^C (floppy may be unresponsive), rare
121fdformat - needs ^C (floppy may be unresponsive), longterm, rare
122fdisk - interactive, longterm
123fgconsole - leaks: get_console_fd_or_die() may open a new fd, or return one of stdio fds. Also, "rare" category. Can be noexec.
124fgrep - longterm runner ("CMD | fgrep ..." may run indefinitely, better to exec to conserve memory)
Denys Vlasenko39194f02017-08-03 19:00:01 +0200125find - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200126findfs - suid
127flash_eraseall
128flash_lock
129flash_unlock
130flashcp
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200131flock - spawner, changes state (file locks)
Denys Vlasenko39194f02017-08-03 19:00:01 +0200132fold - noexec. runner
133free - nofork candidate(struct globals, needs to close /proc/meminfo fd)
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200134freeramdisk - leaks: open+ioctl_or_perror_and_die
135fsck - interactive, longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200136fsck.minix
Denys Vlasenko83d77852017-08-04 17:59:46 +0200137fsfreeze - noexec candidate (it's very simple), leaks: open+xioctl
138fstrim - noexec candidate (it's very simple), leaks: open+xioctl
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200139fsync - NOFORK
140ftpd - daemon
141ftpget - runner
142ftpput - runner
143fuser - complex
Denys Vlasenko83d77852017-08-04 17:59:46 +0200144getopt - noexec. leaks: many allocs
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200145getty - interactive, longterm
146grep - longterm runner ("CMD | grep ..." may run indefinitely, better to exec to conserve memory)
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200147groups - noexec
148gunzip - runner
149gzip - runner
150halt - rare
Denys Vlasenko39194f02017-08-03 19:00:01 +0200151hd - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200152hdparm - complex, rare
Denys Vlasenko39194f02017-08-03 19:00:01 +0200153head - noexec. runner
154hexdump - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200155hostid - NOFORK
Denys Vlasenko39194f02017-08-03 19:00:01 +0200156hostname - DNS resolution may trigger, need ^C
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200157httpd - daemon
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200158hush - interactive, longterm
Denys Vlasenko83d77852017-08-04 17:59:46 +0200159hwclock - talks to hardware (xioctl(RTC_RD_TIME)) - needs ^C
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200160i2cdetect
161i2cdump
162i2cget
163i2cset
164id - noexec
165ifconfig
166ifenslave
167ifplugd - daemon
168inetd - daemon
169init - daemon
170inotifyd - daemon
Denys Vlasenko3346b4a2017-08-04 02:56:39 +0200171insmod - noexec
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200172install - runner
173ionice - spawner
174iostat - runner
Denys Vlasenko72d725d2017-08-03 19:30:21 +0200175ip - noexec candidate
176ipaddr - noexec candidate
177ipcalc - noexec candidate
178ipcrm - noexec candidate
179ipcs - noexec candidate
180iplink - noexec candidate
181ipneigh - noexec candidate
182iproute - noexec candidate
183iprule - noexec candidate
184iptunnel - noexec candidate
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200185kbd_mode
Denys Vlasenko39194f02017-08-03 19:00:01 +0200186kill - NOFORK
187killall - NOFORK
188killall5 - NOFORK
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200189klogd - daemon
Denys Vlasenko39194f02017-08-03 19:00:01 +0200190last - runner (I've got 1300 lines of output when tried it)
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200191less - interactive, longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200192link - NOFORK
193linux32 - spawner
194linux64 - spawner
195linuxrc - daemon
196ln - noexec
197loadfont
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200198loadkmap - leaks: get_console_fd_or_die() may open a new fd, or return one of stdio fds. Also, "rare" category. Can be noexec.
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200199logger - runner
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200200login - suid, interactive, longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200201logname - NOFORK
202losetup - complex
203lpd - daemon
204lpq - runner
205lpr - runner
Denys Vlasenko39194f02017-08-03 19:00:01 +0200206ls - noexec. runner
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200207lsattr - runner. noexec candidate (ls is, why not this one?)
Denys Vlasenko3346b4a2017-08-04 02:56:39 +0200208lsmod - noexec
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200209lsof - complex
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200210lspci - noexec candidate, too rare to bother for nofork
211lsscsi - noexec candidate, too rare to bother for nofork
212lsusb - noexec candidate, too rare to bother for nofork
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200213lzcat - runner
214lzma - runner
215lzop - runner
216lzopcat - runner
217makedevs
218makemime - runner
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200219man - spawner, interactive, longterm
Denys Vlasenko39194f02017-08-03 19:00:01 +0200220md5sum - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200221mdev - daemon
222mesg
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200223microcom - interactive, longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200224mkdir - NOFORK
225mkdosfs
226mke2fs
227mkfifo - noexec
228mkfs.ext2
229mkfs.minix
230mkfs.vfat
231mknod - noexec
232mkpasswd
233mkswap
Denys Vlasenko6bec24c2017-08-04 17:39:05 +0200234mktemp - noexec. leaks: xstrdup+concat_path_file
Denys Vlasenko3346b4a2017-08-04 02:56:39 +0200235modinfo - noexec
236modprobe - noexec
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200237more - interactive, longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200238mount - suid
239mountpoint
240mpstat
241mt
Denys Vlasenko39194f02017-08-03 19:00:01 +0200242mv - runner (can be noexec?)
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200243nameif
244nbd-client
245nc - runner
Denys Vlasenko39194f02017-08-03 19:00:01 +0200246netstat - runner with -c
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200247nice - spawner
248nl - runner
249nmeter - runner
250nohup - spawner
251nproc - NOFORK
252ntpd - daemon
253od - runner
254openvt - spawner
255partprobe
256passwd - suid
Denys Vlasenko39194f02017-08-03 19:00:01 +0200257paste - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200258patch
Denys Vlasenko39194f02017-08-03 19:00:01 +0200259pgrep - nofork candidate(xregcomp, procps_scan - are they ok?)
260pidof - nofork candidate(uses find_pid_by_name, is that ok?)
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200261ping - suid, runner
262ping6 - suid, runner
263pipe_progress
264pivot_root
Denys Vlasenko39194f02017-08-03 19:00:01 +0200265pkill - nofork candidate(xregcomp, procps_scan - are they ok?)
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200266pmap
267popmaildir - runner
268poweroff - rare
Denys Vlasenko39194f02017-08-03 19:00:01 +0200269powertop - interactive, longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200270printenv - NOFORK
271printf - NOFORK
Denys Vlasenko72d725d2017-08-03 19:30:21 +0200272ps - noexec candidate
273pscan - longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200274pstree
275pwd - NOFORK
Denys Vlasenko39194f02017-08-03 19:00:01 +0200276pwdx - NOFORK
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200277raidautorun
278rdate
279rdev
Denys Vlasenko39194f02017-08-03 19:00:01 +0200280readlink - NOFORK
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200281readprofile
Denys Vlasenko39194f02017-08-03 19:00:01 +0200282realpath - NOFORK
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200283reboot - rare
284reformime - runner
285remove-shell
Denys Vlasenko39194f02017-08-03 19:00:01 +0200286renice - nofork candidate(uses getpwnam, is that ok?)
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200287reset - spawner (execs "stty")
Denys Vlasenko39194f02017-08-03 19:00:01 +0200288resize - noexec. changes state (signal handlers)
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200289rev - runner
Denys Vlasenko39194f02017-08-03 19:00:01 +0200290rm - noexec. rm -i interactive
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200291rmdir - NOFORK
Denys Vlasenko3346b4a2017-08-04 02:56:39 +0200292rmmod - noexec
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200293route
294rpm - runner
295rpm2cpio - runner
Denys Vlasenko83d77852017-08-04 17:59:46 +0200296rtcwake - puts system to sleep, optimizing this for speed is pointless
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200297run-parts
Denys Vlasenko83d77852017-08-04 17:59:46 +0200298runlevel - noexec. can be nofork if "endutxent()" is called unconditionally, but too rare to bother?
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200299runsv - daemon
300runsvdir - daemon
301rx - runner
302script
303scriptreplay
304sed - runner
305sendmail - runner
Denys Vlasenko39194f02017-08-03 19:00:01 +0200306seq - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200307setarch - spawner
308setconsole
309setfont
310setkeycodes
311setlogcons
312setpriv - spawner
313setserial
314setsid - spawner
315setuidgid
Denys Vlasenko39194f02017-08-03 19:00:01 +0200316sha1sum - noexec. runner
317sha256sum - noexec. runner
318sha3sum - noexec. runner
319sha512sum - noexec. runner
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200320showkey - interactive, longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200321shred - runner
Denys Vlasenko39194f02017-08-03 19:00:01 +0200322shuf - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200323slattach
324sleep - runner
325smemcap - runner
326softlimit - spawner
Denys Vlasenko39194f02017-08-03 19:00:01 +0200327sort - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200328split - runner
329ssl_client - network
330start-stop-daemon
Denys Vlasenko39194f02017-08-03 19:00:01 +0200331stat - nofork candidate(needs fewer allocs)
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200332strings - runner
333stty
334su - suid, spawner
335sulogin - spawner
336sum - runner
337sv
338svc
339svlogd - daemon
340swapoff - rare
341swapon - rare
Denys Vlasenko39194f02017-08-03 19:00:01 +0200342switch_root - spawner, rare, changes state
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200343sync - NOFORK
344sysctl
345syslogd - daemon
Denys Vlasenko39194f02017-08-03 19:00:01 +0200346tac - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200347tail - runner
348tar - runner
349taskset - spawner
350tcpsvd - daemon
351tee - runner
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200352telnet - interactive, longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200353telnetd - daemon
354test - NOFORK
355tftp - runner
356tftpd - daemon
Denys Vlasenko39194f02017-08-03 19:00:01 +0200357time - spawner, changes state (signals)
358timeout - spawner, changes state (signals)
359top - interactive, longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200360touch - NOFORK
361tr - runner
362traceroute - suid, runner
363traceroute6 - suid, runner
364true - NOFORK
365truncate - NOFORK
366tty - NOFORK
Denys Vlasenko39194f02017-08-03 19:00:01 +0200367ttysize - NOFORK
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200368tunctl
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200369tune2fs - leaks: open+xfunc
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200370ubiattach
371ubidetach
372ubimkvol
373ubirename
374ubirmvol
375ubirsvol
376ubiupdatevol
377udhcpc - daemon
378udhcpd - daemon
379udpsvd - daemon
380uevent - daemon
381umount
382uname - NOFORK
383uncompress - runner
384unexpand - runner
385uniq - runner
Denys Vlasenko39194f02017-08-03 19:00:01 +0200386unix2dos - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200387unlink - NOFORK
388unlzma - runner
389unlzop - runner
390unxz - runner
391unzip - runner
Denys Vlasenko39194f02017-08-03 19:00:01 +0200392uptime - nofork candidate(is getutxent ok?)
393users - nofork candidate(is getutxent ok?)
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200394usleep - NOFORK
395uudecode - runner
396uuencode - runner
Denys Vlasenko74c05f52017-08-04 17:36:16 +0200397vconfig - leaks: xsocket+ioctl_or_perror_and_die
398vi - interactive, longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200399vlock - suid
400volname - runner
401w
402wall - suid
Denys Vlasenko83d77852017-08-04 17:59:46 +0200403watch - longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200404watchdog - daemon
405wc - runner
Denys Vlasenko83d77852017-08-04 17:59:46 +0200406wget - longterm
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200407which - NOFORK
408who
409whoami - NOFORK
410whois
Denys Vlasenko39194f02017-08-03 19:00:01 +0200411xargs - noexec. spawner
412xxd - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200413xz - runner
414xzcat - runner
Denys Vlasenko39194f02017-08-03 19:00:01 +0200415yes - noexec. runner
Denys Vlasenko819b47a2017-08-03 03:29:32 +0200416zcat - runner
417zcip - daemon