AA-NOTIFY(8)
πΈ AA-NOTIFY(8) β aa-notify: your AppArmor DENIED-message bestie π
β¨ NAME β¨
aa-notify is your bestie for displaying information about logged AppArmor messages β literally the receipts. π
π¦ SYNOPSIS π¦
aa-notify [option]
π DESCRIPTION π
Okay so aa-notify will show you a summary or provide desktop notifications for AppArmor DENIED messages. Thatβs the whole vibe, periodt: AppArmor said no, and aa-notify helps you see the receipts. β¨
π₯ OPTIONS π₯
aa-notify accepts the following arguments β collect them like PokΓ©mon, but only the ones you need:
-p,--pollβ polls AppArmor logs and shows desktop notifications. You can pair it with the-soption to display a summary on startup. π--display $DISPLAYβ sets theDISPLAYenvironment variable to$DISPLAY; this might be needed ifsudoresets$DISPLAY. (sudo really said βnew phone who disβ to your display π)-f FILE,--file=FILEβ searchesFILEfor AppArmor messages. Give it the file and let it snoop. π-l,--since-lastβ shows a summary since last login. Welcome back, hereβs the recap. π«Ά-s NUM,--since-days=NUMβ shows a summary for the lastNUMof days. Math but make it AppArmor. β¨-u USER,--user=USERβ the user to drop privileges to when running privileged. When you use it with the-poption, this should be set to the user who will receive desktop notifications. This has no effect when running undersudo. The sudo plot twist is real. π-w NUM,--wait=NUMβ waitsNUMseconds before displaying notifications (for use with-p). Patience, queen. β³-v,--verboseβ shows messages with summaries. More tea, more context. π΅-h,--helpβ displays a short usage statement. The classic βhelp me help youβ moment. π
π CONFIGURATION π
System-wide config for aa-notify lives at /etc/apparmor/notify.conf β hereβs the whole config mood board, comments and all. Itβs giving config couture:
# Set to 'no' to disable AppArmor notifications globally
show_notifications="yes"
# Special profiles used to remove privileges for unconfined binaries using user namespaces. If unsure, leave as is.
userns_special_profiles="unconfined,unprivileged_userns"
# Theme for aa-notify GUI. See https://ttkthemes.readthedocs.io/en/latest/themes.html for available themes.
interface_theme="ubuntu"
# Binaries for which we ignore userns-related capability denials
ignore_denied_capability="sudo,su"
# OPTIONAL - kind of operations which display a popup prompt.
prompt_filter="userns"
# OPTIONAL - restrict using aa-notify to users in the given group
# (if not set, everybody who has permissions to read the logfile can use it)
# use_group="admin"
# OPTIONAL - custom notification message body
message_body="This is a custom notification message."
# OPTIONAL - custom notification message footer
message_footer="For more information visit https://foo.com"
# OPTIONAL - custom notification filtering
# Filters are used to reduce the output of information to only those entries that will match the filter. Filters use Python's regular expression syntax.
filter.profile="^(foo|bar)$" # Match the profile: Only shows notifications for profiles "foo" or "bar"
filter.operation="^open$" # Match the operation: Only shows notifications for "open" operation
filter.name="^(?!/usr/lib/)" # Match the name: Excludes notifications for names starting by "/usr/lib/"
filter.denied="^r$" # Match the denied_mask: Only shows notifications where "r", and only "r", was denied
filter.family="^inet$" # Match the network family: Only shows notifications for "inet" family
filter.socket="stream" # Match the network socket type: Only shows notifications for "stream" sockets
Per-user config is done via $XDG_CONFIG_HOME/apparmor/notify.conf (or the deprecated ~/.apparmor/notify.conf if it exists):
Heads up: ~/.apparmor/notify.conf is deprecated β itβs used if it exists. π«Ά
# set to 'yes' to enable AppArmor DENIED notifications
show_notifications="yes"
π BUGS π
Okay so aa-notify needs to be able to read the logfiles containing the AppArmor DENIED messages. Thatβs the price of admission. If it canβt read them, it canβt spill the tea. π
If you find any additional bugs, please report them to Gitlab at <https://gitlab.com/apparmor/apparmor/-/issues>. The maintainers will appreciate the heads-up, fr fr. π«Ά
π SEE ALSO π
apparmor(7) β go read it if you want the bigger AppArmor picture. π
xoxo π this page is from AppArmor 4.1.8, dated 2026-10-18. Stay iconic, bestie! β¨
π¦ where this page comes from
- arch rolling: apparmor 4.1.8-2 Β· GPL-2.0-only AND LGPL-2.0-only AND LGPL-2.1-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms