AA-UNCONFINED(8)
π aa-unconfined(8) β the manual page, but make it make sense
okay bestie, welcome to aa-unconfined, section 8 of the AppArmor manual. it's a lil script that spits out a list of processes holding tcp or udp ports that are out here living their lives with no AppArmor profiles loaded. wild, right? let's get into it π¦
β¨ NAME β¨
aa-unconfined β outputs a list of processes with tcp or udp ports that do not have AppArmor profiles loaded. that's the whole job. that's the assignment. and she ate. π
πΈ SYNOPSIS πΈ
aa-unconfined [options] [--with-ss | --with-netstat]
π OPTIONS π
--paranoidβ shows literally every process it can see from the/procfilesystem, and tells you whether each one is confined by a profile or"not confined". it's exactly the same as--show=all. maximum nosiness, zero chill. π--show=(all|network|server|client)β this one decides which set of processes get displayed. pick your fighter:--show=allβ shows all processes. this is equivalent to--paranoid(see above, twin behaviour fr).--show=networkβ shows only processes with any sockets open.--show=serverβ shows only processes with listening sockets open. this is the default value if--show=or--paranoidaren't specified. so if you just run the thing, this is what you get π--show=clientβ shows only processes with non-listening sockets open.
--with-ssβ uses thess(8)command to hunt down processes listening on network sockets. this is the default, no cap. β--with-netstatβ uses thenetstat(8)command to hunt down processes listening on network sockets instead. this is also whataa-unconfinedwill fall back to whenss(8)isn't available. she's got a backup plan, always. π«Ά
π DESCRIPTION π
aa-unconfined will use netstat(8) to figure out which processes have open network sockets and do not have AppArmor profiles loaded into the kernel. that's it. that's the vibe check. π
π BUGS π
okay so, important things, listen up:
aa-unconfined must be run as root to retrieve the process executable link from the /proc filesystem. no root, no results, sorry bestie π
also this program is susceptible to race conditions of several flavours, and we're gonna list them all because we don't gatekeep:
- an unlinked executable will be mishandled.
- an executable started before an AppArmor profile is loaded will not appear in the output, despite running without confinement. (yeah. that one's sneaky.)
- a process that dies between the
netstat(8)call and further checks will be mishandled.
this program only lists processes using TCP and UDP.
in short: this program is unsuitable for forensics use and is provided only as an aid to profiling all network-accessible processes in the lab. do not bring her to court. she is not a witness. π
if you find any bugs, please report them at <https://gitlab.com/apparmor/apparmor/-/issues>.
π₯ SEE ALSO π₯
ss(8), netstat(8), apparmor(7), apparmor.d(5), aa_change_hat(2), and <https://wiki.apparmor.net>. go read them, iykyk π
okay that's the whole page, you're officially educated β¨ this was AppArmor 6.0.0~alpha1, dated 2026-10-05, and she's still out here doing her little network-accessible-process thing. periodt. π ππ¦
π¦ where this page comes from
- ubuntu stonking: apparmor-utils 6.0.0~alpha1-0ubuntu4 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms