Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 1 | Why an applet can't be NOFORK or NOEXEC? |
| 2 | |
| 3 | Why can't be NOFORK: |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 4 | interactive: may wait for user input, ^C has to work |
Denys Vlasenko | 7f9d62d | 2017-08-04 16:01:39 +0200 | [diff] [blame] | 5 | spawner: "tool PROG ARGS" which changes program state and execs - must fork |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 6 | changes state: e.g. environment, signal handlers |
Denys Vlasenko | 7f9d62d | 2017-08-04 16:01:39 +0200 | [diff] [blame] | 7 | leaks: does not free allocated memory or opened fds |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 8 | alloc+xfunc: xmalloc, then xfunc - leaks memory if xfunc dies |
| 9 | open+xfunc: opens fd, then calls xfunc - fd is leaked if xfunc dies |
Denys Vlasenko | 90ad4ba | 2017-08-08 00:42:15 +0200 | [diff] [blame] | 10 | talks to network/serial/etc: it's not known how long the delay can be, |
| 11 | it's reasonable to expect it might be many seconds |
| 12 | (even if usually it is not), so ^C has to work |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 13 | runner: sometimes may run for long(ish) time, and/or works with network: |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 14 | ^C has to work (cat BIGFILE, chmod -R, ftpget, nc) |
| 15 | |
Denys Vlasenko | 7f9d62d | 2017-08-04 16:01:39 +0200 | [diff] [blame] | 16 | "runners" can become eligible after shell is taught ^C to interrupt NOFORKs, |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 17 | need to be inspected that they do not fall into alloc+xfunc, open+xfunc, |
| 18 | leak categories. |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 19 | |
| 20 | Why can't be NOEXEC: |
| 21 | suid: runs under different uid - must fork+exec |
Denys Vlasenko | 248a67f | 2017-08-07 18:18:09 +0200 | [diff] [blame] | 22 | if it's important that /proc/PID/cmdline and comm are correct. |
| 23 | ("pkill sh" killing itself before it kills real "sh" is no fun) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 24 | |
| 25 | Why shouldn't be NOFORK/NOEXEC: |
Denys Vlasenko | 7f9d62d | 2017-08-04 16:01:39 +0200 | [diff] [blame] | 26 | rare: not started often enough to bother optimizing (example: poweroff) |
| 27 | daemon: runs indefinitely; these are also always fit "rare" category |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 28 | longterm: often runs for a long time (many seconds), execing makes |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 29 | memory footprint smaller |
Denys Vlasenko | 7f9d62d | 2017-08-04 16:01:39 +0200 | [diff] [blame] | 30 | complex: no immediately obvious reason why NOFORK wouldn't work, |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 31 | but does some non-obvoius operations (example: fuser, lsof, losetup); |
| 32 | detailed audit often turns out that it's a leaker |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 33 | hardware: performs unusual hardware ops which may take long, |
| 34 | or even hang due to hardware or firmware bugs |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 35 | |
| 36 | Interesting example of "interactive" applet which is nevertheless can be |
| 37 | (and is) NOEXEC is "rm". Yes, "rm -i" is interactive - but it's not that typical |
| 38 | for users to keep it waiting for many minutes, whereas running "rm" in shell |
| 39 | is very typical, and speeding up this common use via NOEXEC is useful. |
| 40 | IOW: rm is "interactive", but not "longterm". |
| 41 | |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 42 | |
| 43 | [ - NOFORK |
| 44 | [[ - NOFORK |
| 45 | acpid - daemon |
Denys Vlasenko | 7b8372b | 2017-08-07 00:28:15 +0200 | [diff] [blame] | 46 | add-shell - noexec. leaks: open+xfunc |
| 47 | addgroup - noexec. leaks |
| 48 | adduser - noexec. leaks |
Denys Vlasenko | ed7d118 | 2017-08-06 20:00:21 +0200 | [diff] [blame] | 49 | adjtimex - NOFORK |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 50 | ar - runner |
| 51 | arch - NOFORK |
Denys Vlasenko | 90ad4ba | 2017-08-08 00:42:15 +0200 | [diff] [blame] | 52 | arp - talks to network: arp -n queries DNS |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 53 | arping - longterm |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 54 | ash - interactive, longterm |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 55 | awk - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 56 | base64 - runner |
| 57 | basename - NOFORK |
Denys Vlasenko | 035e715 | 2017-08-06 20:39:27 +0200 | [diff] [blame] | 58 | beep - longterm: beep -r 999999999 |
Denys Vlasenko | 277081e | 2017-08-06 20:20:47 +0200 | [diff] [blame] | 59 | blkdiscard - noexec. leaks: open+xioctl |
Denys Vlasenko | bf18239 | 2017-08-06 20:16:28 +0200 | [diff] [blame] | 60 | blkid - noexec |
Denys Vlasenko | 9f59849 | 2017-08-05 01:29:12 +0200 | [diff] [blame] | 61 | blockdev - noexec. leaks fd |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 62 | bootchartd - daemon |
Denys Vlasenko | 86e07f6 | 2017-08-06 20:14:02 +0200 | [diff] [blame] | 63 | brctl - noexec |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 64 | bunzip2 - runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 65 | bzcat - runner |
| 66 | bzip2 - runner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 67 | cal - runner: cal -n9999 |
Denys Vlasenko | 90ad4ba | 2017-08-08 00:42:15 +0200 | [diff] [blame] | 68 | cat - runner: cat HUGEFILE |
| 69 | chat - longterm (when used as intended - talking to modem over stdin/out) |
Denys Vlasenko | 99125c0 | 2017-08-05 20:38:04 +0200 | [diff] [blame] | 70 | chattr - noexec. runner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 71 | chgrp - noexec. runner |
| 72 | chmod - noexec. runner |
| 73 | chown - noexec. runner |
Denys Vlasenko | 90ad4ba | 2017-08-08 00:42:15 +0200 | [diff] [blame] | 74 | chpasswd - longterm? (list of "user:password"s from stdin) |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 75 | chpst - noexec. spawner |
| 76 | chroot - noexec. spawner |
| 77 | chrt - noexec. spawner |
Denys Vlasenko | ff53bee | 2017-08-05 02:02:31 +0200 | [diff] [blame] | 78 | chvt - noexec. leaks: get_console_fd_or_die() may open a new fd, or return one of stdio fds |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 79 | cksum - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 80 | clear - NOFORK |
| 81 | cmp - runner |
| 82 | comm - runner |
Denys Vlasenko | 83d7785 | 2017-08-04 17:59:46 +0200 | [diff] [blame] | 83 | conspy - interactive, longterm |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 84 | cp - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 85 | cpio - runner |
| 86 | crond - daemon |
Denys Vlasenko | 2262746 | 2017-08-06 17:14:09 +0200 | [diff] [blame] | 87 | crontab - longterm (runs $EDITOR), leaks: open+xasprintf |
Denys Vlasenko | feb79e8 | 2017-08-05 02:08:23 +0200 | [diff] [blame] | 88 | cryptpw - noexec. changes state: with --password-fd=N, moves N to stdin |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 89 | cttyhack - noexec. spawner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 90 | cut - noexec. runner |
| 91 | date - noexec. nofork candidate(needs to stop messing up env, free xasprintf result, not use xfuncs after xasprintf) |
Denys Vlasenko | dbbc3f2 | 2017-08-07 23:30:22 +0200 | [diff] [blame] | 92 | dc - longterm (eats stdin if no params) |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 93 | dd - noexec. runner |
Denys Vlasenko | ff53bee | 2017-08-05 02:02:31 +0200 | [diff] [blame] | 94 | deallocvt - noexec. leaks: get_console_fd_or_die() may open a new fd, or return one of stdio fds |
Denys Vlasenko | 7b8372b | 2017-08-07 00:28:15 +0200 | [diff] [blame] | 95 | delgroup - noexec. leaks |
| 96 | deluser - noexec. leaks |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 97 | depmod - longterm(ish) |
Denys Vlasenko | fc9efcb | 2017-08-07 22:19:17 +0200 | [diff] [blame] | 98 | devmem - hardware (access to device memory may hang) |
| 99 | df - noexec. leaks: nested allocs |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 100 | dhcprelay - daemon |
| 101 | diff - runner |
| 102 | dirname - NOFORK |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 103 | dmesg - runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 104 | dnsd - daemon |
Denys Vlasenko | 90ad4ba | 2017-08-08 00:42:15 +0200 | [diff] [blame] | 105 | dnsdomainname - noexec. talks to network (may query DNS) |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 106 | dos2unix - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 107 | dpkg - runner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 108 | du - runner |
Denys Vlasenko | ff53bee | 2017-08-05 02:02:31 +0200 | [diff] [blame] | 109 | dumpkmap - noexec. leaks: get_console_fd_or_die() may open a new fd, or return one of stdio fds |
Denys Vlasenko | dbbc3f2 | 2017-08-07 23:30:22 +0200 | [diff] [blame] | 110 | dumpleases - noexec. leaks: open+xread |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 111 | echo - NOFORK |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 112 | ed - interactive, longterm |
| 113 | egrep - longterm runner ("CMD | egrep ..." may run indefinitely, better to exec to conserve memory) |
Denys Vlasenko | af5d008 | 2017-08-07 23:23:18 +0200 | [diff] [blame] | 114 | eject - hardware, leaks: open+ioctl_or_perror_and_die, changes state (moves fds) |
Denys Vlasenko | 83d7785 | 2017-08-04 17:59:46 +0200 | [diff] [blame] | 115 | env - noexec. spawner, changes state (env) |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 116 | envdir - noexec. spawner |
| 117 | envuidgid - noexec. spawner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 118 | expand - runner |
Denys Vlasenko | af5d008 | 2017-08-07 23:23:18 +0200 | [diff] [blame] | 119 | expr - noexec. leaks: nested allocs |
Denys Vlasenko | dbbc3f2 | 2017-08-07 23:30:22 +0200 | [diff] [blame] | 120 | factor - longterm (eats stdin if no params) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 121 | fakeidentd - daemon |
| 122 | false - NOFORK |
Denys Vlasenko | 354b104 | 2017-08-07 22:21:54 +0200 | [diff] [blame] | 123 | fatattr - noexec. leaks: open+xioctl, complex |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 124 | fbset - hardware, leaks: open+xfunc |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 125 | fbsplash - runner, longterm |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 126 | fdflush - hardware, leaks: open+ioctl_or_perror_and_die |
Denys Vlasenko | 8858a98 | 2017-08-08 01:21:49 +0200 | [diff] [blame] | 127 | fdformat - hardware, longterm |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 128 | fdisk - interactive, longterm |
Denys Vlasenko | ff53bee | 2017-08-05 02:02:31 +0200 | [diff] [blame] | 129 | fgconsole - noexec. leaks: get_console_fd_or_die() may open a new fd, or return one of stdio fds |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 130 | fgrep - longterm runner ("CMD | fgrep ..." may run indefinitely, better to exec to conserve memory) |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 131 | find - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 132 | findfs - suid |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 133 | flash_eraseall - hardware |
| 134 | flash_lock - hardware |
| 135 | flash_unlock - hardware |
| 136 | flashcp - hardware |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 137 | flock - spawner, changes state (file locks), let's play safe and not be noexec |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 138 | fold - noexec. runner |
Denys Vlasenko | 248a67f | 2017-08-07 18:18:09 +0200 | [diff] [blame] | 139 | free - noexec. nofork candidate(struct globals, needs to close /proc/meminfo fd) |
Denys Vlasenko | ec98e3a | 2017-08-07 23:17:14 +0200 | [diff] [blame] | 140 | freeramdisk - noexec. leaks: open+ioctl_or_perror_and_die |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 141 | fsck - interactive, longterm |
Denys Vlasenko | 6514785 | 2017-08-04 19:16:01 +0200 | [diff] [blame] | 142 | fsck.minix - needs ^C |
Denys Vlasenko | 9f59849 | 2017-08-05 01:29:12 +0200 | [diff] [blame] | 143 | fsfreeze - noexec. leaks: open+xioctl |
| 144 | fstrim - noexec. leaks: open+xioctl, find_block_device -> readdir+xstrdup |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 145 | fsync - NOFORK |
| 146 | ftpd - daemon |
| 147 | ftpget - runner |
| 148 | ftpput - runner |
| 149 | fuser - complex |
Denys Vlasenko | 83d7785 | 2017-08-04 17:59:46 +0200 | [diff] [blame] | 150 | getopt - noexec. leaks: many allocs |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 151 | getty - interactive, longterm |
| 152 | grep - longterm runner ("CMD | grep ..." may run indefinitely, better to exec to conserve memory) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 153 | groups - noexec |
| 154 | gunzip - runner |
| 155 | gzip - runner |
| 156 | halt - rare |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 157 | hd - noexec. runner |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 158 | hdparm - hardware |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 159 | head - noexec. runner |
| 160 | hexdump - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 161 | hostid - NOFORK |
Denys Vlasenko | 90ad4ba | 2017-08-08 00:42:15 +0200 | [diff] [blame] | 162 | hostname - noexec. talks to network (hostname -d may query DNS) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 163 | httpd - daemon |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 164 | hush - interactive, longterm |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 165 | hwclock - hardware (xioctl(RTC_RD_TIME)) |
| 166 | i2cdetect - hardware |
| 167 | i2cdump - hardware |
| 168 | i2cget - hardware |
| 169 | i2cset - hardware |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 170 | id - noexec |
Denys Vlasenko | ae84418 | 2017-08-07 23:14:49 +0200 | [diff] [blame] | 171 | ifconfig - hardware? (mem_start NN io_addr NN irq NN), leaks: xsocket+ioctl_or_perror_and_die |
| 172 | ifenslave - noexec. leaks: xsocket+bb_perror_msg_and_die |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 173 | ifplugd - daemon |
| 174 | inetd - daemon |
| 175 | init - daemon |
| 176 | inotifyd - daemon |
Denys Vlasenko | 3346b4a | 2017-08-04 02:56:39 +0200 | [diff] [blame] | 177 | insmod - noexec |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 178 | install - runner |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 179 | ionice - noexec. spawner |
Denys Vlasenko | 248a67f | 2017-08-07 18:18:09 +0200 | [diff] [blame] | 180 | iostat - longterm: "iostat 1" runs indefinitely |
Denys Vlasenko | 72d725d | 2017-08-03 19:30:21 +0200 | [diff] [blame] | 181 | ip - noexec candidate |
| 182 | ipaddr - noexec candidate |
Denys Vlasenko | 90ad4ba | 2017-08-08 00:42:15 +0200 | [diff] [blame] | 183 | ipcalc - noexec. ipcalc -h talks to network |
Denys Vlasenko | 72d725d | 2017-08-03 19:30:21 +0200 | [diff] [blame] | 184 | ipcrm - noexec candidate |
| 185 | ipcs - noexec candidate |
| 186 | iplink - noexec candidate |
| 187 | ipneigh - noexec candidate |
| 188 | iproute - noexec candidate |
| 189 | iprule - noexec candidate |
| 190 | iptunnel - noexec candidate |
Denys Vlasenko | 9a58cc0 | 2017-08-06 12:28:00 +0200 | [diff] [blame] | 191 | kbd_mode - noexec. leaks: xopen_nonblocking+xioctl |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 192 | kill - NOFORK |
| 193 | killall - NOFORK |
| 194 | killall5 - NOFORK |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 195 | klogd - daemon |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 196 | last - runner (I've got 1300 lines of output when tried it) |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 197 | less - interactive, longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 198 | link - NOFORK |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 199 | linux32 - noexec. spawner |
| 200 | linux64 - noexec. spawner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 201 | linuxrc - daemon |
| 202 | ln - noexec |
Denys Vlasenko | 1b280e4 | 2017-08-06 19:05:45 +0200 | [diff] [blame] | 203 | loadfont - noexec. leaks: config_open+bb_error_msg_and_die("map format") |
Denys Vlasenko | ff53bee | 2017-08-05 02:02:31 +0200 | [diff] [blame] | 204 | loadkmap - noexec. leaks: get_console_fd_or_die() may open a new fd, or return one of stdio fds |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 205 | logger - runner |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 206 | login - suid, interactive, longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 207 | logname - NOFORK |
Denys Vlasenko | ae84418 | 2017-08-07 23:14:49 +0200 | [diff] [blame] | 208 | losetup - noexec. complex |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 209 | lpd - daemon |
| 210 | lpq - runner |
| 211 | lpr - runner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 212 | ls - noexec. runner |
Denys Vlasenko | 99125c0 | 2017-08-05 20:38:04 +0200 | [diff] [blame] | 213 | lsattr - noexec. runner |
Denys Vlasenko | 3346b4a | 2017-08-04 02:56:39 +0200 | [diff] [blame] | 214 | lsmod - noexec |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 215 | lsof - complex |
Denys Vlasenko | 3239ab8 | 2017-08-05 23:28:19 +0200 | [diff] [blame] | 216 | lspci - noexec. too rare to bother for nofork |
| 217 | lsscsi - noexec. too rare to bother for nofork |
| 218 | lsusb - noexec. too rare to bother for nofork |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 219 | lzcat - runner |
| 220 | lzma - runner |
| 221 | lzop - runner |
| 222 | lzopcat - runner |
Denys Vlasenko | 9536ef7 | 2017-08-06 21:47:07 +0200 | [diff] [blame] | 223 | makedevs - noexec |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 224 | makemime - runner |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 225 | man - spawner, interactive, longterm |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 226 | md5sum - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 227 | mdev - daemon |
Denys Vlasenko | 6514785 | 2017-08-04 19:16:01 +0200 | [diff] [blame] | 228 | mesg - NOFORK |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 229 | microcom - interactive, longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 230 | mkdir - NOFORK |
Denys Vlasenko | 947b239 | 2017-08-04 18:36:55 +0200 | [diff] [blame] | 231 | mkdosfs - needs ^C |
| 232 | mke2fs - needs ^C |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 233 | mkfifo - noexec |
Denys Vlasenko | 947b239 | 2017-08-04 18:36:55 +0200 | [diff] [blame] | 234 | mkfs.ext2 - needs ^C |
| 235 | mkfs.minix - needs ^C |
| 236 | mkfs.vfat - needs ^C |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 237 | mknod - noexec |
Denys Vlasenko | feb79e8 | 2017-08-05 02:08:23 +0200 | [diff] [blame] | 238 | mkpasswd - noexec. changes state: with --password-fd=N, moves N to stdin |
Denys Vlasenko | 947b239 | 2017-08-04 18:36:55 +0200 | [diff] [blame] | 239 | mkswap - needs ^C |
Denys Vlasenko | 6bec24c | 2017-08-04 17:39:05 +0200 | [diff] [blame] | 240 | mktemp - noexec. leaks: xstrdup+concat_path_file |
Denys Vlasenko | 3346b4a | 2017-08-04 02:56:39 +0200 | [diff] [blame] | 241 | modinfo - noexec |
| 242 | modprobe - noexec |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 243 | more - interactive, longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 244 | mount - suid |
Denys Vlasenko | 9f59849 | 2017-08-05 01:29:12 +0200 | [diff] [blame] | 245 | mountpoint - noexec. leaks: option -n "print dev name": find_block_device -> readdir+xstrdup |
Denys Vlasenko | a759b22 | 2017-08-06 14:15:24 +0200 | [diff] [blame] | 246 | mpstat - longterm: "mpstat 1" runs indefinitely |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 247 | mt - hardware |
Denys Vlasenko | 6514785 | 2017-08-04 19:16:01 +0200 | [diff] [blame] | 248 | mv - noexec candidate, runner |
Denys Vlasenko | a759b22 | 2017-08-06 14:15:24 +0200 | [diff] [blame] | 249 | nameif - noexec. openlog(), leaks: config_open2+ioctl_or_perror_and_die |
Denys Vlasenko | bfc66d4 | 2017-08-06 21:53:39 +0200 | [diff] [blame] | 250 | nbd-client - noexec |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 251 | nc - runner |
Denys Vlasenko | 248a67f | 2017-08-07 18:18:09 +0200 | [diff] [blame] | 252 | netstat - longterm with -c (continuous listing) |
Denys Vlasenko | 692eeb8 | 2017-08-04 20:07:19 +0200 | [diff] [blame] | 253 | nice - noexec. spawner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 254 | nl - runner |
Denys Vlasenko | 947b239 | 2017-08-04 18:36:55 +0200 | [diff] [blame] | 255 | nmeter - longterm |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 256 | nohup - noexec. spawner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 257 | nproc - NOFORK |
| 258 | ntpd - daemon |
| 259 | od - runner |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 260 | openvt - longterm: spawns a child and waits for it |
Denys Vlasenko | 9c49d6e | 2017-08-05 01:46:39 +0200 | [diff] [blame] | 261 | partprobe - noexec. leaks: open+ioctl_or_perror_and_die(BLKRRPART) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 262 | passwd - suid |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 263 | paste - noexec. runner |
Denys Vlasenko | 947b239 | 2017-08-04 18:36:55 +0200 | [diff] [blame] | 264 | patch - needs ^C |
Denys Vlasenko | 248a67f | 2017-08-07 18:18:09 +0200 | [diff] [blame] | 265 | pgrep - must fork+exec to get correct /proc/PID/cmdline and comm field |
| 266 | pidof - must fork+exec to get correct /proc/PID/cmdline and comm field |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 267 | ping - suid, longterm |
| 268 | ping6 - suid, longterm |
Denys Vlasenko | 6514785 | 2017-08-04 19:16:01 +0200 | [diff] [blame] | 269 | pipe_progress - longterm |
Denys Vlasenko | fdb9235 | 2017-08-05 01:51:12 +0200 | [diff] [blame] | 270 | pivot_root - NOFORK |
Denys Vlasenko | 248a67f | 2017-08-07 18:18:09 +0200 | [diff] [blame] | 271 | pkill - must fork+exec to get correct /proc/PID/cmdline and comm field |
Denys Vlasenko | 947b239 | 2017-08-04 18:36:55 +0200 | [diff] [blame] | 272 | pmap - noexec candidate, leaks: open+xstrdup |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 273 | popmaildir - runner |
| 274 | poweroff - rare |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 275 | powertop - interactive, longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 276 | printenv - NOFORK |
| 277 | printf - NOFORK |
Denys Vlasenko | 00c1811 | 2017-08-05 22:25:00 +0200 | [diff] [blame] | 278 | ps - looks for AT_CLKTCK elf aux vector, therefore can't be noexec |
Denys Vlasenko | 72d725d | 2017-08-03 19:30:21 +0200 | [diff] [blame] | 279 | pscan - longterm |
Denys Vlasenko | 00c1811 | 2017-08-05 22:25:00 +0200 | [diff] [blame] | 280 | pstree - noexec |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 281 | pwd - NOFORK |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 282 | pwdx - NOFORK |
Denys Vlasenko | a894a4b | 2017-08-06 19:08:46 +0200 | [diff] [blame] | 283 | raidautorun - noexec. very simple. leaks: open+xioctl |
Denys Vlasenko | 90ad4ba | 2017-08-08 00:42:15 +0200 | [diff] [blame] | 284 | rdate - talks to network |
| 285 | rdev - noexec. leaks: find_block_device -> readdir+xstrdup |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 286 | readlink - NOFORK |
Denys Vlasenko | 9536ef7 | 2017-08-06 21:47:07 +0200 | [diff] [blame] | 287 | readprofile - reads /boot/System.map and /proc/profile, better to free more memory by execing? |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 288 | realpath - NOFORK |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 289 | reboot - rare |
| 290 | reformime - runner |
Denys Vlasenko | 7b8372b | 2017-08-07 00:28:15 +0200 | [diff] [blame] | 291 | remove-shell - noexec. leaks: open+xfunc |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 292 | renice - noexec. nofork candidate(uses getpwnam, is that ok?) |
Denys Vlasenko | 692eeb8 | 2017-08-04 20:07:19 +0200 | [diff] [blame] | 293 | reset - noexec. spawner (execs "stty") |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 294 | resize - noexec. changes state (signal handlers) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 295 | rev - runner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 296 | rm - noexec. rm -i interactive |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 297 | rmdir - NOFORK |
Denys Vlasenko | 3346b4a | 2017-08-04 02:56:39 +0200 | [diff] [blame] | 298 | rmmod - noexec |
Denys Vlasenko | 90ad4ba | 2017-08-08 00:42:15 +0200 | [diff] [blame] | 299 | route - talks to network (may query DNS to convert IPs to names) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 300 | rpm - runner |
| 301 | rpm2cpio - runner |
Denys Vlasenko | 947b239 | 2017-08-04 18:36:55 +0200 | [diff] [blame] | 302 | rtcwake - longterm: puts system to sleep, optimizing this for speed is pointless |
Denys Vlasenko | a894a4b | 2017-08-06 19:08:46 +0200 | [diff] [blame] | 303 | run-parts - longterm |
Denys Vlasenko | 83d7785 | 2017-08-04 17:59:46 +0200 | [diff] [blame] | 304 | runlevel - noexec. can be nofork if "endutxent()" is called unconditionally, but too rare to bother? |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 305 | runsv - daemon |
| 306 | runsvdir - daemon |
| 307 | rx - runner |
Denys Vlasenko | dd55d5d | 2017-08-07 01:53:17 +0200 | [diff] [blame] | 308 | script - longterm: pumps script output from slave pty |
| 309 | scriptreplay - longterm: plays back "script" saved output, sleeping as necessary. |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 310 | sed - runner |
| 311 | sendmail - runner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 312 | seq - noexec. runner |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 313 | setarch - noexec. spawner |
Denys Vlasenko | 5cb907f | 2017-08-06 18:56:25 +0200 | [diff] [blame] | 314 | setconsole - noexec |
Denys Vlasenko | 1b280e4 | 2017-08-06 19:05:45 +0200 | [diff] [blame] | 315 | setfont - noexec. leaks a lot of stuff |
Denys Vlasenko | b83db4d | 2017-08-06 18:29:25 +0200 | [diff] [blame] | 316 | setkeycodes - noexec |
Denys Vlasenko | 341ce0a | 2017-08-06 18:17:58 +0200 | [diff] [blame] | 317 | setlogcons - noexec |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 318 | setpriv - spawner, changes state, let's play safe and not be noexec |
Denys Vlasenko | 97b738d | 2017-08-06 18:06:46 +0200 | [diff] [blame] | 319 | setserial - noexec |
Denys Vlasenko | 2262746 | 2017-08-06 17:14:09 +0200 | [diff] [blame] | 320 | setsid - spawner, uses fork_or_rexec() [not audited to work in noexec], let's play safe and not be noexec |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 321 | setuidgid - noexec. spawner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 322 | sha1sum - noexec. runner |
| 323 | sha256sum - noexec. runner |
| 324 | sha3sum - noexec. runner |
| 325 | sha512sum - noexec. runner |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 326 | showkey - interactive, longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 327 | shred - runner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 328 | shuf - noexec. runner |
Denys Vlasenko | 2262746 | 2017-08-06 17:14:09 +0200 | [diff] [blame] | 329 | slattach - longterm (may sleep forever), uses bb_common_bufsiz1 |
Denys Vlasenko | 947b239 | 2017-08-04 18:36:55 +0200 | [diff] [blame] | 330 | sleep - runner, longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 331 | smemcap - runner |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 332 | softlimit - noexec. spawner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 333 | sort - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 334 | split - runner |
Denys Vlasenko | 947b239 | 2017-08-04 18:36:55 +0200 | [diff] [blame] | 335 | ssl_client - longterm |
Denys Vlasenko | 184c738 | 2017-08-06 20:55:56 +0200 | [diff] [blame] | 336 | start-stop-daemon - not noexec: uses bb_common_bufsiz1 |
Denys Vlasenko | 248a67f | 2017-08-07 18:18:09 +0200 | [diff] [blame] | 337 | stat - noexec. nofork candidate(needs fewer allocs) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 338 | strings - runner |
Denys Vlasenko | 692eeb8 | 2017-08-04 20:07:19 +0200 | [diff] [blame] | 339 | stty - noexec. nofork candidate: has no allocs or opens except xmove_fd(xopen("-F DEVICE"),STDIN). tcsetattr(STDIN) is not a problem: it would work the same across processes sharing this fd |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 340 | su - suid, spawner |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 341 | sulogin - noexec. spawner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 342 | sum - runner |
Denys Vlasenko | a453ca5 | 2017-08-05 01:42:08 +0200 | [diff] [blame] | 343 | sv - noexec. needs ^C (uses usleep(420000)) |
| 344 | svc - noexec. needs ^C (uses usleep(420000)) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 345 | svlogd - daemon |
Denys Vlasenko | 248a67f | 2017-08-07 18:18:09 +0200 | [diff] [blame] | 346 | swapoff - longterm: may cause memory pressure, execing is beneficial |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 347 | swapon - rare |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 348 | switch_root - spawner, rare, changes state (oh yes), execing may be important to free binary's inode |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 349 | sync - NOFORK |
Denys Vlasenko | caf26b3 | 2017-08-05 18:23:10 +0200 | [diff] [blame] | 350 | sysctl - noexec. leaks: xstrdup+xmalloc_read |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 351 | syslogd - daemon |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 352 | tac - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 353 | tail - runner |
| 354 | tar - runner |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 355 | taskset - noexec. spawner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 356 | tcpsvd - daemon |
| 357 | tee - runner |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 358 | telnet - interactive, longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 359 | telnetd - daemon |
| 360 | test - NOFORK |
| 361 | tftp - runner |
| 362 | tftpd - daemon |
Denys Vlasenko | 5c527dc | 2017-08-04 19:55:01 +0200 | [diff] [blame] | 363 | time - spawner, longterm, changes state (signals) |
| 364 | timeout - spawner, longterm, changes state (signals) |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 365 | top - interactive, longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 366 | touch - NOFORK |
| 367 | tr - runner |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 368 | traceroute - suid, longterm |
| 369 | traceroute6 - suid, longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 370 | true - NOFORK |
| 371 | truncate - NOFORK |
| 372 | tty - NOFORK |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 373 | ttysize - NOFORK |
Denys Vlasenko | 9a58cc0 | 2017-08-06 12:28:00 +0200 | [diff] [blame] | 374 | tunctl - noexec |
Denys Vlasenko | 99125c0 | 2017-08-05 20:38:04 +0200 | [diff] [blame] | 375 | tune2fs - noexec. leaks: open+xfunc |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 376 | ubiattach - hardware |
| 377 | ubidetach - hardware |
| 378 | ubimkvol - hardware |
| 379 | ubirename - hardware |
| 380 | ubirmvol - hardware |
| 381 | ubirsvol - hardware |
| 382 | ubiupdatevol - hardware |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 383 | udhcpc - daemon |
| 384 | udhcpd - daemon |
| 385 | udpsvd - daemon |
| 386 | uevent - daemon |
Denys Vlasenko | 83a6c8d | 2017-08-05 23:21:02 +0200 | [diff] [blame] | 387 | umount - noexec. leaks: nested xmalloc |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 388 | uname - NOFORK |
| 389 | uncompress - runner |
| 390 | unexpand - runner |
| 391 | uniq - runner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 392 | unix2dos - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 393 | unlink - NOFORK |
| 394 | unlzma - runner |
| 395 | unlzop - runner |
| 396 | unxz - runner |
| 397 | unzip - runner |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 398 | uptime - noexec. nofork candidate(is getutxent ok?) |
| 399 | users - noexec. nofork candidate(is getutxent ok?) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 400 | usleep - NOFORK |
| 401 | uudecode - runner |
| 402 | uuencode - runner |
Denys Vlasenko | a4d4ab0 | 2017-08-09 18:52:19 +0200 | [diff] [blame] | 403 | vconfig - noexec. leaks: xsocket+ioctl_or_perror_and_die |
Denys Vlasenko | 74c05f5 | 2017-08-04 17:36:16 +0200 | [diff] [blame] | 404 | vi - interactive, longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 405 | vlock - suid |
Denys Vlasenko | ae84418 | 2017-08-07 23:14:49 +0200 | [diff] [blame] | 406 | volname - hardware (reads CDROM, this can take long-ish if need to spin up) |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 407 | w - noexec. nofork candidate(is getutxent ok?) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 408 | wall - suid |
Denys Vlasenko | 83d7785 | 2017-08-04 17:59:46 +0200 | [diff] [blame] | 409 | watch - longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 410 | watchdog - daemon |
| 411 | wc - runner |
Denys Vlasenko | 83d7785 | 2017-08-04 17:59:46 +0200 | [diff] [blame] | 412 | wget - longterm |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 413 | which - NOFORK |
Denys Vlasenko | 1a1203f | 2017-08-07 16:47:34 +0200 | [diff] [blame] | 414 | who - noexec. nofork candidate(is getutxent ok?) |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 415 | whoami - NOFORK |
Denys Vlasenko | 8858a98 | 2017-08-08 01:21:49 +0200 | [diff] [blame] | 416 | whois - talks to network |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 417 | xargs - noexec. spawner |
| 418 | xxd - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 419 | xz - runner |
| 420 | xzcat - runner |
Denys Vlasenko | 39194f0 | 2017-08-03 19:00:01 +0200 | [diff] [blame] | 421 | yes - noexec. runner |
Denys Vlasenko | 819b47a | 2017-08-03 03:29:32 +0200 | [diff] [blame] | 422 | zcat - runner |
| 423 | zcip - daemon |