aboutsummaryrefslogtreecommitdiff
path: root/straper/db/public/apparmor/apparmor.d/abstractions
diff options
context:
space:
mode:
Diffstat (limited to 'straper/db/public/apparmor/apparmor.d/abstractions')
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/X67
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/apache2-common43
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/change_profile13
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/examine14
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/find_mountpoint16
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/introspect14
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/is_enabled20
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/aspell18
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/audio93
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/authentication74
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/base185
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/bash49
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/consoles27
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/crypto34
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/cups-client23
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/dbus21
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/dbus-accessibility21
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/dbus-accessibility-strict22
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/dbus-network-manager-strict47
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/dbus-session22
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/dbus-session-strict39
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/dbus-strict24
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/dconf14
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/devices-usb22
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/devices-usb-read35
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/dovecot-common24
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/dri-common19
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/dri-enumerate13
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/enchant64
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/exo-open69
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/fcitx18
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/fcitx-strict39
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/fonts68
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/freedesktop.org41
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/gio-open59
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/gnome117
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/gnupg16
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/groff67
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/gtk58
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/gvfs-open47
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/hosts_access17
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ibus29
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/kde88
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/kde-globals-write15
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/kde-icon-cache-write12
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/kde-language-write18
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/kde-open5105
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/kerberosclient44
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ldapclient29
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/libpam-systemd24
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/likewise18
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/mdns19
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/mesa37
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/mir22
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/mozc17
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/mysql20
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/nameservice106
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/nameservice-strict40
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/nis20
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/nss-systemd31
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/nvidia40
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/opencl15
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/opencl-common16
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/opencl-intel23
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/opencl-mesa26
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/opencl-nvidia36
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/opencl-pocl81
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/openssl20
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/orbit210
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/p11-kit32
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/perl28
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/php43
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/php-worker22
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/php58
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/postfix-common45
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/private-files52
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/private-files-strict30
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/python54
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/qt527
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/qt5-compose-cache-write13
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/qt5-settings-write16
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/qt627
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/qt6-compose-cache-write13
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/qt6-settings-write16
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/recent-documents-write15
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ruby26
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/samba42
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/samba-rpcd30
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/smbpass18
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/snap_browsers39
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ssl_certs46
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ssl_keys35
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/svn-repositories57
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/terminfo10
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/tor33
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/transmission-common153
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/trash75
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-bittorrent-clients22
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers41
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/java120
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/kde12
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/mailto11
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/multimedia51
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/plugins-common18
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/productivity26
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/text-editors16
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration37
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration-xul8
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/user-files31
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-console-browsers23
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-console-email23
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-email29
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-feed-readers15
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-gnome-terminal15
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-helpers98
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-konsole22
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-media-players65
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-base105
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-launcher12
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-messaging12
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-xterm18
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/user-download29
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/user-mail28
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/user-manpages29
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/user-tmp25
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/user-write26
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/video20
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/vulkan26
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/wayland21
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/web-data30
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/winbind27
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/wutmp27
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/xad30
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/xdg-desktop29
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/xdg-open86
135 files changed, 4922 insertions, 0 deletions
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/X b/straper/db/public/apparmor/apparmor.d/abstractions/X
new file mode 100644
index 0000000..6df8911
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/X
@@ -0,0 +1,67 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009-2011 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ include <abstractions/dri-common>
+
+
+ # .ICEauthority files required for X authentication, per user
+ owner @{HOME}/.ICEauthority r,
+ owner @{run}/user/*/ICEauthority r,
+
+ # .Xauthority files required for X connections, per user
+ owner @{HOME}/.Xauthority r,
+ owner @{HOME}/.local/share/sddm/.Xauthority r,
+ owner @{run}/gdm{,3}/*/database r,
+ owner @{run}/lightdm/authority/[0-9]* r,
+ owner @{run}/lightdm/*/xauthority r,
+ owner @{run}/user/*/gdm/Xauthority r,
+ owner @{run}/user/*/X11/Xauthority r,
+ owner @{run}/user/*/xauth_* r,
+ owner /tmp/xauth_?????? r,
+
+ # the unix socket to use to connect to the display
+ /tmp/.X11-unix/* rw,
+ unix (connect, receive, send)
+ type=stream
+ peer=(addr="@/tmp/.X11-unix/X[0-9]*"),
+ unix (connect, receive, send)
+ type=stream
+ peer=(addr="@/tmp/.ICE-unix/[0-9]*"),
+
+ /usr/include/X11/ r,
+ /usr/include/X11/** r,
+
+ # The X tree changes and is large -- grant read access to the whole thing
+ /usr/X11R6/** r,
+ /usr/share/X11/ r,
+ /usr/share/X11/** r,
+ /usr/X11R6/**.so* mr,
+
+ # EGL
+ /usr/lib/@{multiarch}/egl/*.so* mr,
+
+ # Xcompose
+ owner @{HOME}/.XCompose r,
+ /var/cache/libx11/compose/* r,
+ deny /var/cache/libx11/compose/* wlk,
+
+ # mouse themes
+ /etc/X11/cursors/ r,
+ /etc/X11/cursors/** r,
+
+ # Xwayland
+ owner @{run}/user/*/.mutter-Xwaylandauth.* r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/X.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/apache2-common b/straper/db/public/apparmor/apparmor.d/abstractions/apache2-common
new file mode 100644
index 0000000..0982635
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/apache2-common
@@ -0,0 +1,43 @@
+# vim:syntax=apparmor
+
+# This file contains basic permissions for Apache and every vHost
+
+ abi <abi/4.0>,
+
+ include <abstractions/nameservice>
+
+ # Allow other processes to read our /proc entries
+ ptrace (readby),
+ # Allow other processes to trace us by default
+ ptrace (tracedby),
+ # Allow unconfined processes to send us signals by default
+ signal (receive) peer=unconfined,
+ # Allow apache to send us signals by default
+ signal (receive) peer=apache2,
+ # Allow other hats to signal by default
+ signal peer=apache2//*,
+ # Allow us to signal ourselves
+ signal peer=@{profile_name},
+
+ # Apache
+ network inet stream,
+ network inet6 stream,
+ # apache manual, error pages and icons
+ /usr/share/apache2/** r,
+
+ # changehat itself
+ @{PROC}/@{pid}/attr/{apparmor/,}current rw,
+
+ # htaccess files - for what ever it is worth
+ /**/.htaccess r,
+
+ /dev/urandom r,
+
+ # sasl-auth
+ @{run}/saslauthd/mux rw,
+
+ # OCSP stapling
+ @{run}/lock/apache2/stapling-cache* rw,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/apache2-common.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/change_profile b/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/change_profile
new file mode 100644
index 0000000..13df61a
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/change_profile
@@ -0,0 +1,13 @@
+# Copyright (C) 2012 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/4.0>,
+
+include <abstractions/apparmor_api/introspect>
+
+@{PROC}/@{tid}/attr/{apparmor/,}{current,exec} w,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/examine b/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/examine
new file mode 100644
index 0000000..f90a364
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/examine
@@ -0,0 +1,14 @@
+# Copyright (C) 2012 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+# Make sure to include at least tunables/proc and tunables/kernelvars
+# when using this abstraction, if not tunables/global.
+
+abi <abi/4.0>,
+
+@{PROC}/@{pids}/attr/{apparmor/,}{current,prev,exec} r,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/find_mountpoint b/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/find_mountpoint
new file mode 100644
index 0000000..dae90c9
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/find_mountpoint
@@ -0,0 +1,16 @@
+# Copyright (C) 2012 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/4.0>,
+
+#permissions needed for aa_find_mountpoint
+
+# Make sure to include at least tunables/proc and tunables/kernelvars
+# when using this abstraction, if not tunables/global.
+
+@{PROC}/@{pids}/mounts r,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/introspect b/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/introspect
new file mode 100644
index 0000000..00934fb
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/introspect
@@ -0,0 +1,14 @@
+# Copyright (C) 2012 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/4.0>,
+
+# Make sure to include at least tunables/proc and tunables/kernelvars
+# when using this abstraction, if not tunables/global.
+
+@{PROC}/@{tid}/attr/{apparmor/,}{current,prev,exec} r,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/is_enabled b/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/is_enabled
new file mode 100644
index 0000000..a47b3d4
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/apparmor_api/is_enabled
@@ -0,0 +1,20 @@
+# Copyright (C) 2012 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/4.0>,
+
+# permissions needed for aa_is_enabled
+
+# Make sure to include tunables/apparmorfs and tunables/global
+# when using this abstraction
+
+include <abstractions/apparmor_api/find_mountpoint>
+@{sys}/module/apparmor/parameters/enabled r,
+@{sys}/module/apparmor/parameters/available r,
+
+# TODO: add alternate apparmorfs interface for enabled
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/aspell b/straper/db/public/apparmor/apparmor.d/abstractions/aspell
new file mode 100644
index 0000000..f6989d7
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/aspell
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+# aspell permissions
+
+ abi <abi/4.0>,
+
+ # per-user settings and dictionaries
+ owner @{HOME}/.aspell.*.{pws,prepl} rwk,
+
+ # system libraries and dictionaries
+ /usr/lib/aspell/ r,
+ /usr/lib/aspell/* r,
+ /usr/lib/aspell/*.so m,
+ /usr/share/aspell/ r,
+ /usr/share/aspell/* r,
+ /var/lib/aspell/* r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/aspell.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/audio b/straper/db/public/apparmor/apparmor.d/abstractions/audio
new file mode 100644
index 0000000..5965559
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/audio
@@ -0,0 +1,93 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/4.0>,
+
+
+/dev/admmidi* rw,
+/dev/adsp* rw,
+/dev/aload* rw,
+/dev/amidi* rw,
+/dev/audio* rw,
+/dev/dmfm* rw,
+/dev/dmmidi* rw,
+/dev/dsp* rw,
+/dev/midi* rw,
+/dev/mixer* rw,
+/dev/mpu401data rw,
+/dev/mpu401stat rw,
+/dev/patmgr* rw,
+/dev/phone* rw,
+/dev/radio* rw,
+/dev/rmidi* rw,
+/dev/sequencer rw,
+/dev/sequencer2 rw,
+/dev/smpte* rw,
+
+/dev/snd/* rw,
+/dev/sound/* rw,
+
+@{PROC}/asound/** rw,
+
+/usr/share/alsa/** r,
+/usr/share/sounds/ r,
+/usr/share/sounds/** r,
+
+owner @{HOME}/.esd_auth r,
+/etc/asound.conf r,
+owner @{HOME}/.asoundrc r,
+/etc/esound/esd.conf r,
+
+# libao
+/etc/libao.conf r,
+owner @{HOME}/.libao r,
+
+# libcanberra
+owner @{HOME}/.cache/event-sound-cache.* rwk,
+
+# pulse
+/etc/pulse/ r,
+/etc/pulse/** r,
+/dev/shm/ r,
+@{run}/shm/ r,
+owner /dev/shm/pulse-shm* rwk,
+owner @{run}/shm/pulse-shm* rwk,
+owner @{HOME}/.pulse-cookie rwk,
+owner @{HOME}/.pulse/ rw,
+owner @{HOME}/.pulse/* rwk,
+owner @{run}/user/*/pulse/ rw,
+owner @{run}/user/*/pulse/{native,pid} rwk,
+owner @{HOME}/.config/pulse/*.conf r,
+owner @{HOME}/.config/pulse/client.conf.d/{,*.conf} r,
+owner @{HOME}/.config/pulse/cookie rwk,
+owner /tmp/pulse-*/ rw,
+owner /tmp/pulse-*/* rw,
+
+# libgnome2
+/etc/sound/ r,
+/etc/sound/** r,
+
+# openal
+/etc/alsa/conf.d/{,*} r,
+/etc/openal/alsoft.conf r,
+owner @{HOME}/.alsoftrc r,
+/usr/{,local/}share/openal/hrtf/{,**} r,
+owner @{HOME}/.local/share/openal/hrtf/{,**} r,
+
+# wildmidi
+/etc/wildmidi/wildmidi.cfg r,
+
+# pipewire
+/usr/share/pipewire/client{,-rt}.conf r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/audio.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/authentication b/straper/db/public/apparmor/apparmor.d/abstractions/authentication
new file mode 100644
index 0000000..094f235
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/authentication
@@ -0,0 +1,74 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009-2012 Canonical Ltd
+# Copyright (C) 2019-2021 Christian Boltz
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+
+ # Some services need to perform authentication of users
+ # Such authentication almost certainly needs access to the local users
+ # databases containing passwords, PAM configuration files, PAM libraries
+ @{etc_ro}/nologin r,
+ @{etc_ro}/pam.d/* r,
+ @{etc_ro}/securetty r,
+ @{etc_ro}/security/* r,
+ @{etc_ro}/shadow r,
+ @{etc_ro}/gshadow r,
+ @{etc_ro}/pwdb.conf r,
+
+ /{usr/,}lib{,32,64}/security/pam_filter/* mr,
+ /{usr/,}lib{,32,64}/security/pam_*.so mr,
+ /{usr/,}lib{,32,64}/security/ r,
+ /{usr/,}lib/@{multiarch}/security/pam_filter/* mr,
+ /{usr/,}lib/@{multiarch}/security/pam_*.so mr,
+ /{usr/,}lib/@{multiarch}/security/ r,
+
+ # pam_unix
+ owner /proc/@{pid}/loginuid r,
+ /{,usr/}{,s}bin/unix_chkpwd Px,
+
+ # pam_env
+ @{etc_ro}/environment r,
+
+ # pam_limit
+ @{etc_ro}/security/limits.d/ r,
+ @{etc_ro}/security/limits.d/*.conf r,
+
+ # gssapi
+ @{etc_ro}/gss/mech r,
+ @{etc_ro}/gss/mech.d/ r,
+ @{etc_ro}/gss/mech.d/*.conf r,
+
+ # kerberos
+ include <abstractions/kerberosclient>
+ # SuSE's pwdutils are different:
+ @{etc_ro}/default/passwd r,
+ @{etc_ro}/login.defs r,
+ @{etc_ro}/login.defs.d/ r,
+ @{etc_ro}/login.defs.d/*.defs r,
+
+ # nis
+ include <abstractions/nis>
+
+ # winbind
+ include <abstractions/winbind>
+
+ # likewise
+ include <abstractions/likewise>
+
+ # smbpass
+ include <abstractions/smbpass>
+
+ # p11-kit (PKCS#11 modules configuration)
+ include <abstractions/p11-kit>
+
+ # Include additions to the abstraction
+ include if exists <abstractions/authentication.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/base b/straper/db/public/apparmor/apparmor.d/abstractions/base
new file mode 100644
index 0000000..20700db
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/base
@@ -0,0 +1,185 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009-2011 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ include <abstractions/crypto>
+
+ # (Note that the ldd profile has inlined this file; if you make
+ # modifications here, please consider including them in the ldd
+ # profile as well.)
+
+ # The __canary_death_handler function writes a time-stamped log
+ # message to /dev/log for logging by syslogd. So, /dev/log, timezones,
+ # and localisations of date should be available EVERYWHERE, so
+ # StackGuard, FormatGuard, etc., alerts can be properly logged.
+ /dev/log w,
+ /dev/random r,
+ /dev/urandom r,
+ # Allow access to the uuidd daemon (this daemon is a thin wrapper around
+ # time and getrandom()/{,u}random and, when available, runs under an
+ # unprivilged, dedicated user).
+ @{run}/uuidd/request r,
+ @{etc_ro}/locale/** r,
+ @{etc_ro}/locale.alias r,
+ @{etc_ro}/localtime r,
+ @{etc_rw}/localtime r,
+ /etc/writable/localtime r,
+ /usr/share/locale-bundle/** r,
+ /usr/share/locale-langpack/** r,
+ /usr/share/locale/ r,
+ /usr/share/locale/** r,
+ /usr/share/**/locale/** r,
+ /usr/share/zoneinfo{,-icu}/ r,
+ /usr/share/zoneinfo{,-icu}/** r,
+ /usr/share/X11/locale/** r,
+ @{run}/systemd/journal/dev-log w,
+ # systemd native journal API (see sd_journal_print(4))
+ @{run}/systemd/journal/socket w,
+ # Nested containers and anything using systemd-cat need this. 'r' shouldn't
+ # be required but applications fail without it. journald doesn't leak
+ # anything when reading so this is ok.
+ @{run}/systemd/journal/stdout rw,
+
+ /usr/lib{,32,64}/locale/** mr,
+ /usr/lib{,32,64}/gconv/*.so mr,
+ /usr/lib{,32,64}/gconv/gconv-modules* mr,
+ /usr/lib/@{multiarch}/gconv/*.so mr,
+ /usr/lib/@{multiarch}/gconv/gconv-modules* mr,
+
+ # used by glibc when binding to ephemeral ports
+ @{etc_ro}/bindresvport.blacklist r,
+
+ # ld.so.cache and ld are used to load shared libraries; they are best
+ # available everywhere
+ @{etc_ro}/ld.so.cache mr,
+ @{etc_ro}/ld.so.conf r,
+ @{etc_ro}/ld.so.conf.d/{,*.conf} r,
+ @{etc_ro}/ld.so.preload r,
+ @{etc_ro}/ld-musl-*.path r,
+ /{usr/,}lib{,32,64}/ld{,32,64}-*.so mr,
+ /{usr/,}lib/@{multiarch}/ld{,32,64}-*.so mr,
+ /{usr/,}lib/tls/i686/{cmov,nosegneg}/ld-*.so mr,
+ /{usr/,}lib/i386-linux-gnu/tls/i686/{cmov,nosegneg}/ld-*.so mr,
+ /opt/*-linux-uclibc/lib/ld-uClibc*so* mr,
+
+ # we might as well allow everything to use common libraries
+ /{usr/,}lib{,32,64}/** r,
+ /{usr/,}lib{,32,64}/**.so* mr,
+ /{usr/,}lib/@{multiarch}/** r,
+ /{usr/,}lib/@{multiarch}/**.so* mr,
+ /{usr/,}lib/tls/i686/{cmov,nosegneg}/*.so* mr,
+ /{usr/,}lib/i386-linux-gnu/tls/i686/{cmov,nosegneg}/*.so* mr,
+
+ # FIPS-140-2 versions of some crypto libraries need to access their
+ # associated integrity verification file, or they will abort.
+ /{usr/,}lib{,32,64}/.lib*.so*.hmac r,
+ /{usr/,}lib/@{multiarch}/.lib*.so*.hmac r,
+
+ # /dev/null is pretty harmless and frequently used
+ /dev/null rw,
+ # as is /dev/zero
+ /dev/zero rw,
+ # recent glibc uses /dev/full in preference to /dev/null for programs
+ # that don't have open fds at exec()
+ /dev/full rw,
+
+ # Sometimes used to determine kernel/user interfaces to use
+ @{PROC}/sys/kernel/version r,
+ # Depending on which glibc routine uses this file, base may not be the
+ # best place -- but many profiles require it, and it is quite harmless.
+ @{PROC}/sys/kernel/ngroups_max r,
+
+ # Used to determine if Linux is running in FIPS mode
+ @{PROC}/sys/crypto/fips_enabled r,
+
+ # glibc's sysconf(3) routine to determine free memory, etc
+ @{PROC}/meminfo r,
+ @{PROC}/stat r,
+ @{PROC}/cpuinfo r,
+ @{sys}/devices/system/cpu/ r,
+ @{sys}/devices/system/cpu/online r,
+ @{sys}/devices/system/cpu/possible r,
+
+ # transparent hugepage support
+ @{sys}/kernel/mm/transparent_hugepage/hpage_pmd_size r,
+
+ # glibc's *printf protections read the maps file
+ @{PROC}/@{pid}/{maps,auxv,status} r,
+
+ # some applications will display license information
+ /usr/share/common-licenses/** r,
+
+ # glibc statvfs
+ @{PROC}/filesystems r,
+
+ # glibc malloc (man 5 proc)
+ @{PROC}/sys/vm/overcommit_memory r,
+
+ # Allow determining the highest valid capability of the running kernel
+ @{PROC}/sys/kernel/cap_last_cap r,
+
+ # Allow other processes to read our /proc entries, futexes, perf tracing and
+ # kcmp for now (they will need 'read' in the first place). Administrators can
+ # override with:
+ # deny ptrace (readby) ...
+ ptrace (readby),
+
+ # Allow other processes to trace us by default (they will need 'trace' in
+ # the first place). Administrators can override with:
+ # deny ptrace (tracedby) ...
+ ptrace (tracedby),
+
+ # Allow us to ptrace read ourselves
+ ptrace (read) peer=@{profile_name},
+
+ # Allow unconfined processes to send us signals by default
+ signal (receive) peer=unconfined,
+
+ # Allow us to signal ourselves
+ signal peer=@{profile_name},
+
+ # Checking for PID existence is quite common so add it by default for now
+ signal (receive, send) set=("exists"),
+
+ # Allow us to create and use abstract and anonymous sockets
+ unix peer=(label=@{profile_name}),
+
+ # Allow unconfined processes to us via unix sockets
+ unix (receive) peer=(label=unconfined),
+
+ # Allow us to create abstract and anonymous sockets
+ unix (create),
+
+ # Allow us to getattr, getopt, setop and shutdown on unix sockets
+ unix (getattr, getopt, setopt, shutdown),
+
+ # Workaround https://launchpad.net/bugs/359338 until upstream handles stacked
+ # filesystems generally. This does not appreciably decrease security with
+ # Ubuntu profiles because the user is expected to have access to files owned
+ # by him/her. Exceptions to this are explicit in the profiles. While this rule
+ # grants access to those exceptions, the intended privacy is maintained due to
+ # the encrypted contents of the files in this directory. Files in this
+ # directory will also use filename encryption by default, so the files are
+ # further protected. Also, with the use of 'owner', this rule properly
+ # prevents access to the files from processes running under a different uid.
+
+ # encrypted ~/.Private and old-style encrypted $HOME
+ owner @{HOME}/.Private/ r,
+ owner @{HOME}/.Private/** mrixwlk,
+ # new-style encrypted $HOME
+ owner @{HOMEDIRS}/.ecryptfs/*/.Private/ r,
+ owner @{HOMEDIRS}/.ecryptfs/*/.Private/** mrixwlk,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/base.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/bash b/straper/db/public/apparmor/apparmor.d/abstractions/bash
new file mode 100644
index 0000000..ba2c4e3
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/bash
@@ -0,0 +1,49 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # user-specific bash files
+ @{HOMEDIRS} r,
+ @{HOME}/.bashrc r,
+ @{HOME}/.profile r,
+ @{HOME}/.bash_profile r,
+ @{HOME}/.bash_history rw,
+
+ # system-wide bash configuration
+ /etc/profile.dos r,
+ /etc/profile r,
+ /etc/profile.d/ r,
+ /etc/profile.d/* r,
+ /etc/bashrc r,
+ /etc/bash.bashrc r,
+ /etc/bash.bashrc.local r,
+ /etc/bash_completion r,
+ /etc/bash_completion.d/ r,
+ /etc/bash_completion.d/* r,
+
+ # bash relies on system-wide readline configuration
+ /etc/inputrc r,
+
+ # bash inspects filesystems at startup
+ /etc/mtab r,
+ @{PROC}/@{pid}/mounts r,
+ @{PROC}/filesystems r,
+
+ # probably readline wants to know terminal capabilities
+ /usr/share/terminfo/** r,
+
+ # run out of /etc/bash.bashrc
+ /etc/DIR_COLORS r,
+ /{usr/,}bin/ls mix,
+ /usr/bin/dircolors mix,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/bash.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/consoles b/straper/db/public/apparmor/apparmor.d/abstractions/consoles
new file mode 100644
index 0000000..267cb03
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/consoles
@@ -0,0 +1,27 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2005 Novell/SUSE
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+
+ # there are three common ways to refer to consoles
+ /dev/console rw,
+ /dev/tty rw,
+ # this next entry is a tad unfortunate; /dev/tty will always be
+ # associated with the controlling terminal by the kernel, but if a
+ # program uses the /dev/pts/ interface, it actually has access to
+ # -all- xterm, sshd, etc, terminals on the system.
+ /dev/pts/[0-9]* rw,
+ /dev/pts/ r,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/consoles.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/crypto b/straper/db/public/apparmor/apparmor.d/abstractions/crypto
new file mode 100644
index 0000000..9d46608
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/crypto
@@ -0,0 +1,34 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009-2011 Canonical Ltd.
+# Copyright (C) 2021 Christian Boltz
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # Global config of openssl
+ include <abstractions/openssl>
+
+ @{etc_ro}/gcrypt/hwf.deny r,
+ @{etc_ro}/gcrypt/random.conf r,
+ @{PROC}/sys/crypto/fips_enabled r,
+
+ # libgcrypt reads some flags from /proc
+ @{PROC}/sys/crypto/* r,
+
+ # crypto policies used by various libraries
+ /etc/crypto-policies/*/*.txt r,
+ /usr/share/crypto-policies/*/*.txt r,
+
+ # Global gnutls config
+ @{etc_ro}/gnutls/config r,
+ @{etc_ro}/gnutls/pkcs11.conf r,
+
+ include if exists <abstractions/crypto.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/cups-client b/straper/db/public/apparmor/apparmor.d/abstractions/cups-client
new file mode 100644
index 0000000..a085bd4
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/cups-client
@@ -0,0 +1,23 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2009-2012 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # discoverable system configuration for non-local cupsd
+ /etc/cups/client.conf r,
+ # client should be able to talk the local cupsd
+ @{run}/cups/cups.sock rw,
+ # client should be able to read user-specified cups configuration
+ owner @{HOME}/.cups/client.conf r,
+ owner @{HOME}/.cups/lpoptions r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/cups-client.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/dbus b/straper/db/public/apparmor/apparmor.d/abstractions/dbus
new file mode 100644
index 0000000..83d44e4
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/dbus
@@ -0,0 +1,21 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2009-2013 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # This abstraction grants full system bus access. Consider using the
+ # dbus-strict abstraction for fine-grained bus mediation.
+
+ include <abstractions/dbus-strict>
+ dbus bus=system,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/dbus.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/dbus-accessibility b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-accessibility
new file mode 100644
index 0000000..cade13e
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-accessibility
@@ -0,0 +1,21 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2013 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # This abstraction grants full accessibility bus access. Consider using the
+ # dbus-accessibility-strict abstraction for fine-grained bus mediation.
+
+ include <abstractions/dbus-accessibility-strict>
+ dbus bus=accessibility,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/dbus-accessibility.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/dbus-accessibility-strict b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-accessibility-strict
new file mode 100644
index 0000000..1a0a293
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-accessibility-strict
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2013 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ dbus send
+ bus=accessibility
+ path=/org/freedesktop/DBus
+ interface=org.freedesktop.DBus
+ member={Hello,AddMatch,RemoveMatch,GetNameOwner,NameHasOwner,StartServiceByName}
+ peer=(name=org.freedesktop.DBus),
+
+ # Include additions to the abstraction
+ include if exists <abstractions/dbus-accessibility-strict.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/dbus-network-manager-strict b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-network-manager-strict
new file mode 100644
index 0000000..849d6ec
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-network-manager-strict
@@ -0,0 +1,47 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+ dbus send
+ bus=system
+ path=/org/freedesktop/NetworkManager
+ interface=org.freedesktop.DBus.Properties
+ member=GetAll
+ peer=(name=org.freedesktop.NetworkManager),
+
+ dbus send
+ bus=system
+ path=/org/freedesktop/NetworkManager
+ interface=org.freedesktop.NetworkManager
+ member=GetDevices
+ peer=(name=org.freedesktop.NetworkManager),
+
+ dbus send
+ bus=system
+ path=/org/freedesktop/NetworkManager/ActiveConnection/[0-9]*
+ interface=org.freedesktop.DBus.Properties
+ member=GetAll
+ peer=(name=org.freedesktop.NetworkManager),
+
+ dbus send
+ bus=system
+ path=/org/freedesktop/NetworkManager/Devices/[0-9]*
+ interface=org.freedesktop.DBus.Properties
+ member=GetAll
+ peer=(name=org.freedesktop.NetworkManager),
+
+ dbus send
+ bus=system
+ path=/org/freedesktop/NetworkManager/Settings
+ interface=org.freedesktop.NetworkManager.Settings
+ member={GetDevices,ListConnections}
+ peer=(name=org.freedesktop.NetworkManager),
+
+ dbus send
+ bus=system
+ path=/org/freedesktop/NetworkManager/Settings/[0-9]*
+ interface=org.freedesktop.NetworkManager.Settings.Connection
+ member=GetSettings
+ peer=(name=org.freedesktop.NetworkManager),
+
+ include if exists <abstractions/dbus-network-manager-strict.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/dbus-session b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-session
new file mode 100644
index 0000000..99104c2
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-session
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2011-2013 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # This abstraction grants full session bus access. Consider using the
+ # dbus-session-strict abstraction for fine-grained bus mediation.
+
+ include <abstractions/dbus-session-strict>
+ /usr/bin/dbus-launch ix,
+ dbus bus=session,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/dbus-session.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/dbus-session-strict b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-session-strict
new file mode 100644
index 0000000..1796a55
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-session-strict
@@ -0,0 +1,39 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2011-2013 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # unique per-machine identifier
+ /etc/machine-id r,
+ /var/lib/dbus/machine-id r,
+
+ unix (connect, receive, send, accept) type=stream peer=(addr="@/tmp/dbus-*"),
+
+ unix (connect, send, receive, accept) type=stream addr="@/tmp/dbus-*",
+ unix (bind, listen) type=stream addr="@/tmp/dbus-*",
+
+ # dbus with systemd and --enable-user-session
+ owner @{run}/user/[0-9]*/bus rw,
+
+ dbus send
+ bus=session
+ path=/org/freedesktop/DBus
+ interface=org.freedesktop.DBus
+ member={Hello,AddMatch,RemoveMatch,GetNameOwner,NameHasOwner,StartServiceByName}
+ peer=(name=org.freedesktop.DBus),
+
+ owner @{run}/user/@{uid}/at-spi/ rw,
+ owner @{run}/user/@{uid}/at-spi/bus{,_[0-9]*} rw,
+
+ owner /tmp/dbus-[0-9a-zA-Z]* rw,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/dbus-session-strict.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/dbus-strict b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-strict
new file mode 100644
index 0000000..60b5d19
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/dbus-strict
@@ -0,0 +1,24 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2009-2013 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ @{run}/dbus/system_bus_socket rw,
+
+ dbus send
+ bus=system
+ path=/org/freedesktop/DBus
+ interface=org.freedesktop.DBus
+ member={Hello,AddMatch,RemoveMatch,GetNameOwner,NameHasOwner,StartServiceByName}
+ peer=(name=org.freedesktop.DBus),
+
+ # Include additions to the abstraction
+ include if exists <abstractions/dbus-strict.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/dconf b/straper/db/public/apparmor/apparmor.d/abstractions/dconf
new file mode 100644
index 0000000..959cfd4
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/dconf
@@ -0,0 +1,14 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# permissions for querying dconf settings; granting write access should
+# be specified in a specific application's profile.
+
+ @{etc_ro}/dconf/** r,
+ # TODO: make w conditional when an override is available, so it can be moved to a portal.
+ owner @{run}/user/*/dconf/user rw,
+ owner @{HOME}/.config/dconf/user r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/dconf.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/devices-usb b/straper/db/public/apparmor/apparmor.d/abstractions/devices-usb
new file mode 100644
index 0000000..9c3d5bb
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/devices-usb
@@ -0,0 +1,22 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2021 Mikhail Morfikov
+# Copyright (C) 2021-2025 Alexandre Pujol <alexandre@pujol.io>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ include <abstractions/devices-usb-read>
+
+ /dev/bus/usb/@{int}/@{int} wk,
+
+ @{sys}/devices/**/usb@{int}/{,**} w,
+
+ include if exists <abstractions/devices-usb.d>
+
+# vim:syntax=apparmor
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/devices-usb-read b/straper/db/public/apparmor/apparmor.d/abstractions/devices-usb-read
new file mode 100644
index 0000000..3fdb709
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/devices-usb-read
@@ -0,0 +1,35 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2021 Mikhail Morfikov
+# Copyright (C) 2021-2025 Alexandre Pujol <alexandre@pujol.io>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /dev/ r,
+ /dev/bus/usb/ r,
+ /dev/bus/usb/@{int}/ r,
+ /dev/bus/usb/@{int}/@{int} r,
+
+ @{sys}/class/ r,
+ @{sys}/class/usbmisc/ r,
+
+ @{sys}/bus/ r,
+ @{sys}/bus/usb/ r,
+ @{sys}/bus/usb/devices/{,**} r,
+
+ @{sys}/devices/**/usb@{int}/{,**} r,
+
+ # Udev data about usb devices (~equal to content of lsusb -v)
+ @{run}/udev/data/+usb:* r,
+ @{run}/udev/data/c16[6,7]:@{int} r, # USB modems
+ @{run}/udev/data/c18[0,8,9]:@{int} r, # USB devices & USB serial converters
+
+ include if exists <abstractions/devices-usb-read.d>
+
+# vim:syntax=apparmor
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/dovecot-common b/straper/db/public/apparmor/apparmor.d/abstractions/dovecot-common
new file mode 100644
index 0000000..d0722eb
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/dovecot-common
@@ -0,0 +1,24 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2014 Canonical, Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+# used with dovecot/*
+
+ abi <abi/4.0>,
+
+ capability setgid,
+
+ deny capability block_suspend,
+
+ # dovecot's master can send us signals
+ signal receive peer=dovecot,
+
+ owner @{run}/dovecot/config rw,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/dovecot-common.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/dri-common b/straper/db/public/apparmor/apparmor.d/abstractions/dri-common
new file mode 100644
index 0000000..fb82b8d
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/dri-common
@@ -0,0 +1,19 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# This file contains common DRI-specific rules useful for GUI applications
+# (needed by libdrm and similar).
+
+ /usr/lib{,32,64}/dri/** mr,
+ /usr/lib/@{multiarch}/dri/** mr,
+ /usr/lib/fglrx/dri/** mr,
+ /dev/dri/ r,
+ /dev/dri/** rw,
+ /etc/drirc r,
+ /usr/share/drirc.d/{,*.conf} r,
+ owner @{HOME}/.drirc r,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/dri-common.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/dri-enumerate b/straper/db/public/apparmor/apparmor.d/abstractions/dri-enumerate
new file mode 100644
index 0000000..4774cee
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/dri-enumerate
@@ -0,0 +1,13 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# This file contains common DRI-specific rules useful for GUI applications that
+# needs to enumerate graphic devices (as with drmParsePciDeviceInfo() from
+# libdrm).
+
+ @{sys}/devices/pci[0-9]*/**/{device,subsystem_device,subsystem_vendor,uevent,vendor} r,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/dri-enumerate.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/enchant b/straper/db/public/apparmor/apparmor.d/abstractions/enchant
new file mode 100644
index 0000000..ecfbe0e
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/enchant
@@ -0,0 +1,64 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2010 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # abstraction for Enchant spellchecking frontend
+
+ /usr/share/enchant/ r,
+ /usr/share/enchant/enchant.ordering r,
+
+ /usr/share/enchant-2/ r,
+ /usr/share/enchant-2/enchant.ordering r,
+
+ # aspell
+ include <abstractions/aspell>
+ /var/lib/dictionaries-common/aspell/ r,
+ /var/lib/dictionaries-common/aspell/* r,
+
+ # hspell
+ /usr/share/hspell/ r,
+ /usr/share/hspell/*.wgz.* r,
+
+ # hunspell
+ /usr/share/hunspell/ r,
+ /usr/share/hunspell/* r,
+
+ # ispell
+ /usr/lib/ispell/ r,
+ /usr/lib/ispell/*.hash r,
+ /usr/share/dict/ r,
+ /usr/share/dict/* r,
+ /var/lib/dictionaries-common/ r,
+ /var/lib/dictionaries-common/{ispell,wordlist}/ r,
+ /var/lib/dictionaries-common/{ispell,wordlist}/* r,
+
+ # myspell
+ /usr/share/myspell/ r,
+ /usr/share/myspell/** r,
+
+ # voikko
+ /usr/lib/voikko/ r,
+ /usr/lib/voikko/2/ r,
+ /usr/lib/voikko/2/mor-standard/ r,
+ /usr/lib/voikko/2/mor-standard/voikko* r,
+
+ # zemberek
+ /usr/share/java/ r,
+ /usr/share/java/zemberek-[0-9]*.jar r,
+ /usr/share/java/zemberek-tr-[0-9]*.jar r,
+
+ # per-user dictionaries
+ owner @{HOME}/.config/enchant/ rw,
+ owner @{HOME}/.config/enchant/* rwk,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/enchant.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/exo-open b/straper/db/public/apparmor/apparmor.d/abstractions/exo-open
new file mode 100644
index 0000000..a6b50c4
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/exo-open
@@ -0,0 +1,69 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# This abstraction is designed to be used in a child profile to limit what
+# confined application can invoke via exo-open helper.
+#
+# NOTE: most likely you want to use xdg-open abstraction instead for better
+# portability across desktop environments, unless you are sure that confined
+# application only uses /usr/bin/exo-open directly.
+#
+# Usage example:
+#
+# ```
+# profile foo /usr/bin/foo {
+# ...
+# /usr/bin/exo-open rPx -> foo//exo-open,
+# ...
+# } # end of main profile
+#
+# # out-of-line child profile
+# profile foo//exo-open {
+# include <abstractions/exo-open>
+#
+# # needed for ubuntu-* abstractions
+# include <abstractions/ubuntu-helpers>
+#
+# # Only allow to handle http[s]: and mailto: links
+# include <abstractions/ubuntu-browsers>
+# include <abstractions/ubuntu-email>
+#
+# # Add if accessibility access is considered as required
+# # (for message box in case exo-open fails)
+# include <abstractions/dbus-accessibility>
+#
+# # < add additional allowed applications here >
+# }
+
+ include <abstractions/X>
+ include <abstractions/audio> # for alert messages
+ include <abstractions/base>
+ include <abstractions/dbus-session-strict>
+ include <abstractions/gnome>
+
+ # Main executables
+
+ /usr/bin/exo-open rix,
+ /usr/lib{32,64,/@{multiarch}}/xfce4/exo-[0-9]/exo-helper-[0-9] ix,
+
+ # Other executables
+
+ /{,usr/}bin/which rix,
+
+ # System files
+
+ /etc/xdg/{,xdg-*/}xfce4/helpers.rc r,
+ /etc/xfce4/defaults.list r, # TODO: move into xfce4 abstraction?
+ /usr/share/sounds/freedesktop/** r, # for message box alert sound
+ /usr/share/xfce4/helpers/*.desktop r,
+ /usr/share/{xfce{,4},xubuntu}/applications/{,*.list} r,
+
+ # User files
+
+ owner @{PROC}/@{pid}/fd/ r,
+ owner @{HOME}/.config/xfce4/helpers.rc r,
+ owner @{HOME}/.local/share/xfce4/helpers/*.desktop r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/exo-open.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/fcitx b/straper/db/public/apparmor/apparmor.d/abstractions/fcitx
new file mode 100644
index 0000000..63173a0
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/fcitx
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2016 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ include <abstractions/fcitx-strict>
+ dbus bus=fcitx,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/fcitx.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/fcitx-strict b/straper/db/public/apparmor/apparmor.d/abstractions/fcitx-strict
new file mode 100644
index 0000000..c4e7301
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/fcitx-strict
@@ -0,0 +1,39 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2016 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ include <abstractions/dbus-session-strict>
+
+ dbus send
+ bus=fcitx
+ path=/org/freedesktop/DBus
+ interface=org.freedesktop.DBus
+ member={Hello,AddMatch,RemoveMatch,GetNameOwner,NameHasOwner,StartServiceByName}
+ peer=(name=org.freedesktop.DBus),
+
+ owner @{HOME}/.config/fcitx/dbus/* r,
+
+ # Allow access to the Fcitx portal, supported by fcitx/fcitx5
+ dbus (send)
+ bus=session
+ path=/{,org/freedesktop/portal/}inputmethod
+ interface=org.fcitx.Fcitx.InputMethod1
+ member={CreateInputContext,Version}
+ peer=(name=org.freedesktop.portal.Fcitx),
+
+ dbus (send, receive)
+ bus=session
+ path=/{,org/freedesktop/portal/}inputcontext/**
+ interface=org.fcitx.Fcitx.InputContext1,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/fcitx-strict.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/fonts b/straper/db/public/apparmor/apparmor.d/abstractions/fonts
new file mode 100644
index 0000000..d86d230
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/fonts
@@ -0,0 +1,68 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /usr/share/AbiSuite/fonts/** r,
+
+ /usr/lib/xorg/modules/fonts/**.so* mr,
+
+ /usr/share/fonts/{,**} r,
+ /usr/share/fonts-*/{,**} r,
+
+ /etc/fonts/** r,
+ # Debian, openSUSE paths are different
+ /usr/share/{fontconfig,fonts-config,*-fonts}/conf.avail/{,**} r,
+ /usr/share/ghostscript/fonts/{,**} r,
+
+ /opt/kde3/share/fonts/** r,
+
+ /usr/lib{,32,64}/openoffice/share/fonts/** r,
+
+ /var/cache/fonts/** r,
+ /var/cache/fontconfig/** mr,
+ /var/lib/defoma/** mr,
+
+ /usr/share/a2ps/fonts/** r,
+ /usr/share/xfce/fonts/** r,
+ /usr/share/ghostscript/fonts/** r,
+ /usr/share/javascript/*/fonts/** r,
+ /usr/share/texmf/{,*/}fonts/** r,
+ /usr/share/texlive/texmf-dist/fonts/** r,
+ /var/lib/ghostscript/** r,
+
+ owner @{HOME}/.fonts.conf r,
+ owner @{HOME}/.fonts/ r,
+ owner @{HOME}/.fonts/** r,
+ owner @{HOME}/.local/share/fonts/ r,
+ owner @{HOME}/.local/share/fonts/** r,
+ owner @{HOME}/.fonts.cache-2 mr,
+ owner @{HOME}/.{,cache/}fontconfig/ rw,
+ owner @{HOME}/.{,cache/}fontconfig/** mrwkl,
+ owner @{HOME}/.fonts.conf.d/ r,
+ owner @{HOME}/.fonts.conf.d/** r,
+ owner @{HOME}/.config/fontconfig/ r,
+ owner @{HOME}/.config/fontconfig/** r,
+ owner @{HOME}/.Fontmatrix/Activated/ r,
+ owner @{HOME}/.Fontmatrix/Activated/** r,
+
+ /usr/local/share/fonts/ r,
+ /usr/local/share/fonts/** r,
+
+ # poppler CMap tables
+ /usr/share/poppler/cMap/** r,
+
+ # data files for LibThai
+ /usr/share/libthai/thbrk.tri r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/fonts.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/freedesktop.org b/straper/db/public/apparmor/apparmor.d/abstractions/freedesktop.org
new file mode 100644
index 0000000..cb5e1ec
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/freedesktop.org
@@ -0,0 +1,41 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2009 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # system configuration
+ @{system_share_dirs}/applications/{**,} r,
+ @{system_share_dirs}/*ubuntu/applications/{**,} r,
+ @{system_share_dirs}/gnome/applications/{**,} r,
+ @{system_share_dirs}/xfce4/applications/{**,} r,
+ @{system_share_dirs}/icons/{**,} r,
+ @{system_share_dirs}/pixmaps/{**,} r,
+
+ # this should probably go elsewhere
+ @{system_share_dirs}/mime/** r,
+
+ @{system_share_dirs}/glib-2.0/schemas/gschemas.compiled r,
+
+ /etc/gnome/defaults.list r,
+ /etc/xfce4/defaults.list r,
+
+ # per-user configurations
+ owner @{HOME}/.icons/{,**} r,
+ owner @{HOME}/.recently-used.xbel* rw,
+ owner @{HOME}/.local/share/recently-used.xbel* rw,
+ owner @{HOME}/.config/user-dirs.dirs r,
+ owner @{HOME}/.config/mimeapps.list r,
+ owner @{user_share_dirs}/applications/{**,} r,
+ owner @{user_share_dirs}/icons/{**,} r,
+ owner @{user_share_dirs}/mime/{**,} r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/freedesktop.org.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/gio-open b/straper/db/public/apparmor/apparmor.d/abstractions/gio-open
new file mode 100644
index 0000000..f211717
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/gio-open
@@ -0,0 +1,59 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# This abstraction is designed to be used in a child profile to limit what
+# confined application can invoke via gio helper.
+#
+# NOTE: most likely you want to use xdg-open abstraction instead for better
+# portability across desktop environments, unless you are sure that confined
+# application only uses /usr/bin/gio directly.
+#
+# Usage example:
+#
+# ```
+# profile foo /usr/bin/foo {
+# ...
+# /usr/bin/gio rPx -> foo//gio-open,
+# ...
+# } # end of main profile
+#
+# # out-of-line child profile
+# profile foo//gio-open {
+# include <abstractions/gio-open>
+#
+# # needed for ubuntu-* abstractions
+# include <abstractions/ubuntu-helpers>
+#
+# # Only allow to handle http[s]: and mailto: links
+# include <abstractions/ubuntu-browsers>
+# include <abstractions/ubuntu-email>
+#
+# # < add additional allowed applications here >
+# }
+
+ include <abstractions/base>
+ include <abstractions/dbus-session-strict>
+
+ # Main executables
+
+ /usr/bin/gio rix,
+ /usr/bin/gio-launch-desktop ix, # for OpenSUSE
+ /usr/lib/@{multiarch}/glib-[0-9]*/gio-launch-desktop ix,
+
+ # System files
+
+ /etc/gnome/defaults.list r,
+ /usr/share/mime/* r,
+ /usr/share/{,*/}applications/{,**} r,
+ /var/cache/gio-[0-9]*.[0-9]*/gnome-mimeapps.list r,
+ /var/lib/snapd/desktop/applications/{,**} r,
+
+ # User files
+
+ owner @{HOME}/.config/mimeapps.list r,
+ owner @{HOME}/.local/share/applications/{,*.desktop} r,
+ owner @{PROC}/@{pid}/fd/ r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/gio-open.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/gnome b/straper/db/public/apparmor/apparmor.d/abstractions/gnome
new file mode 100644
index 0000000..ca2eb39
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/gnome
@@ -0,0 +1,117 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009-2011 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ include <abstractions/base>
+ include <abstractions/fonts>
+ include <abstractions/X>
+ include <abstractions/freedesktop.org>
+ include <abstractions/xdg-desktop>
+ include <abstractions/user-tmp>
+ include <abstractions/wayland>
+
+ # systemwide gtk defaults
+ /etc/gnome/gtkrc* r,
+ /etc/gtk/* r,
+ /usr/lib{,32,64}/gtk/** mr,
+ /usr/lib/@{multiarch}/gtk/** mr,
+ /usr/lib{,32,64}/gtk-[0-9]*/** mr,
+ /usr/lib/@{multiarch}/gtk-[0-9]*/** mr,
+ /usr/share/themes/ r,
+ /usr/share/themes/** r,
+ /usr/share/gtk-3.0/settings.ini r,
+
+ # for gnome 1 applications
+ /etc/orbitrc r,
+
+ # gtk-2 needed some new rights
+ /etc/fonts/* r,
+ /etc/gtk-*/* r,
+ /etc/pango/* r,
+ /usr/lib{,32,64}/pango/** mr,
+ /usr/lib{,32,64}/gtk-*/** mr,
+ /usr/lib{,32,64}/gdk-pixbuf-*/** mr,
+ /usr/lib/@{multiarch}/pango/** mr,
+ /usr/lib/@{multiarch}/gtk-*/** mr,
+ /usr/lib/@{multiarch}/gdk-pixbuf-*/** mr,
+
+ # per-user gtk configuration
+ owner @{HOME}/.config/gtk-3.0/ w,
+ owner @{HOME}/.config/gtk-3.0/* r,
+ owner @{HOME}/.gnome/Gnome r,
+ owner @{HOME}/.gtk r,
+ owner @{HOME}/.gtkrc r,
+ owner @{HOME}/.gtkrc-2.0 r,
+ owner @{HOME}/.gtk-bookmarks r,
+ owner @{HOME}/.themes/ r,
+ owner @{HOME}/.themes/** r,
+ owner @{user_share_dirs}/themes/ r,
+ owner @{user_share_dirs}/themes/** r,
+
+ # for gtk file dialog
+ owner @{HOME}/.config/gtk-2.0/ w,
+ owner @{HOME}/.config/gtk-2.0/** r,
+ owner @{HOME}/.config/gtk-2.0/gtkfilechooser.ini* rw,
+
+ # from evolution-mail
+ owner @{HOME}/.gconfd/lock/* r,
+ owner @{HOME}/.gnome/application-info r,
+
+ # per-user font business
+ owner @{HOME}/.fonts.cache-* rwl,
+
+ # GtkComposeTable
+ owner @{HOME}/.cache/gtk-3.0/** r,
+
+ # icon caches
+ /var/cache/**/icon-theme.cache r,
+ /usr/share/**/icon-theme.cache r,
+
+ # GLib schemas
+ /usr/{local/,}share/glib-[0-9]*/schemas/ r,
+ /usr/{local/,}share/glib-[0-9]*/schemas/** r,
+
+ # gnome VFS modules
+ /etc/gnome-vfs-2.0/modules/ r,
+ /etc/gnome-vfs-2.0/modules/* r,
+ /usr/lib/gnome-vfs-2.0/modules/*.so mr,
+ /usr/lib/@{multiarch}/gnome-vfs-2.0/modules/*.so mr,
+
+ # gvfs
+ /usr/share/gvfs/remote-volume-monitors/ r,
+ /usr/share/gvfs/remote-volume-monitors/* r,
+ @{PROC}/@{pid}/mounts r,
+ @{run}/mount/utab r,
+
+ # printing
+ /etc/papersize r,
+ /etc/cups/lpoptions r,
+ /usr/share/cups/charmaps/** r,
+
+ # holds MIT-MAGIC-COOKIE for gnome
+ owner @{run}/gdm/auth*/database r,
+
+ # mime-types
+ /etc/gnome/defaults.list r,
+ /etc/xdg/{,*-}mimeapps.list r,
+ /usr/share/gnome/applications/ r,
+ /usr/share/gnome/applications/mimeinfo.cache r,
+
+ # Allow connecting to the GNOME vfs socket (still need corresponding DBus
+ # rules)
+ unix (send, receive, connect)
+ type=stream
+ peer=(addr="@/dbus-vfs-daemon/socket-*"),
+
+ # Include additions to the abstraction
+ include if exists <abstractions/gnome.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/gnupg b/straper/db/public/apparmor/apparmor.d/abstractions/gnupg
new file mode 100644
index 0000000..e94f3bc
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/gnupg
@@ -0,0 +1,16 @@
+# vim:syntax=apparmor
+# gnupg sub-process running permissions
+
+ abi <abi/4.0>,
+
+ # user configurations
+ owner @{HOME}/.gnupg/options r,
+ owner @{HOME}/.gnupg/pubring.gpg r,
+ owner @{HOME}/.gnupg/pubring.kbx r,
+ owner @{HOME}/.gnupg/random_seed rw,
+ owner @{HOME}/.gnupg/secring.gpg r,
+ owner @{HOME}/.gnupg/so/*.x86_64 mr,
+ owner @{HOME}/.gnupg/trustdb.gpg rw,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/gnupg.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/groff b/straper/db/public/apparmor/apparmor.d/abstractions/groff
new file mode 100644
index 0000000..874fbb7
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/groff
@@ -0,0 +1,67 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009 Canonical Ltd.
+# Copyright (C) 2023 SUSE LLC
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ # Note: executing groff and nroff themself is not included in this abstraction
+ # so that you can choose to ix, Px or Cx them in your profile
+
+ # groff/nroff helpers, preprocessors, and postprocessors
+ /usr/bin/addftinfo mrix,
+ /usr/bin/afmtodit mrix,
+ /usr/bin/chem mrix,
+ /usr/bin/eqn mrix,
+ /usr/bin/eqn2graph mrix,
+ /usr/bin/gdiffmk mrix,
+ /usr/bin/geqn mrix,
+ /usr/bin/grap2graph mrix,
+ /usr/bin/grn mrix,
+ /usr/bin/grodvi mrix,
+ /usr/bin/groffer mrix,
+ /usr/bin/grog mrix,
+ /usr/bin/grolbp mrix,
+ /usr/bin/grolj4 mrix,
+ /usr/bin/gropdf mrix,
+ /usr/bin/grops mrix,
+ /usr/bin/grotty mrix,
+ /usr/bin/gtbl mrix,
+ /usr/bin/hpftodit mrix,
+ /usr/bin/indxbib mrix,
+ /usr/bin/lkbib mrix,
+ /usr/bin/lookbib mrix,
+ /usr/bin/mmroff mrix,
+ /usr/bin/neqn mrix,
+ /usr/bin/pdfmom mrix,
+ /usr/bin/pdfroff mrix,
+ /usr/bin/pfbtops mrix,
+ /usr/bin/pic mrix,
+ /usr/bin/pic2graph mrix,
+ /usr/bin/post-grohtml mrix,
+ /usr/bin/pre-grohtml mrix,
+ /usr/bin/preconv mrix,
+ /usr/bin/refer mrix,
+ /usr/bin/roff2dvi mrix,
+ /usr/bin/roff2html mrix,
+ /usr/bin/roff2pdf mrix,
+ /usr/bin/roff2ps mrix,
+ /usr/bin/roff2text mrix,
+ /usr/bin/roff2x mrix,
+ /usr/bin/soelim mrix,
+ /usr/bin/tbl mrix,
+ /usr/bin/tfmtodit mrix,
+ /usr/bin/troff mrix,
+ /usr/bin/xtotroff mrix,
+
+ # at least its macros and fonts
+ /usr/libexec/groff/** r,
+ /usr/share/groff/** r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/groff.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/gtk b/straper/db/public/apparmor/apparmor.d/abstractions/gtk
new file mode 100644
index 0000000..99f46ed
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/gtk
@@ -0,0 +1,58 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /usr/share/themes/{,**} r,
+
+ /usr/share/gtksourceview-[0-9]*/{,**} r,
+
+ /usr/share/gtk-2.0/ r,
+ /usr/share/gtk-2.0/gtkrc r,
+
+ /usr/share/gtk-{3,4}.0/ r,
+ /usr/share/gtk-{3,4}.0/settings.ini r,
+
+ /etc/gtk-2.0/ r,
+ /etc/gtk-2.0/gtkrc r,
+
+ /etc/gtk-{3,4}.0/ r,
+ /etc/gtk-{3,4}.0/*.conf r,
+ /etc/gtk-{3,4}.0/settings.ini r,
+
+ /etc/gtk/gtkrc r,
+
+ owner @{HOME}/.themes/{,**} r,
+ owner @{HOME}/.local/share/themes/{,**} r,
+
+ owner @{HOME}/.gtk r,
+ owner @{HOME}/.gtkrc r,
+ owner @{HOME}/.gtkrc-2.0 r,
+ owner @{HOME}/.gtk-bookmarks r,
+ owner @{HOME}/.config/gtkrc r,
+ owner @{HOME}/.config/gtkrc-2.0 r,
+ owner @{HOME}/.config/gtk-{3,4}.0/ rw,
+ owner @{HOME}/.config/gtk-{3,4}.0/settings.ini r,
+ owner @{HOME}/.config/gtk-{3,4}.0/bookmarks r,
+ owner @{HOME}/.config/gtk-{3,4}.0/gtk.css r,
+ owner @{HOME}/.config/gtk-{3,4}.0/colors.css r,
+ owner @{HOME}/.config/gtk-{3,4}.0/servers r,
+
+ # for gtk file dialog
+ owner @{HOME}/.config/gtk-2.0/ rw,
+ owner @{HOME}/.config/gtk-2.0/gtkfilechooser.ini* rw,
+
+ # .Xauthority file required for X connections
+ owner @{HOME}/.Xauthority r,
+
+ # Xsession errors file
+ owner @{HOME}/.xsession-errors w,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/gtk.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/gvfs-open b/straper/db/public/apparmor/apparmor.d/abstractions/gvfs-open
new file mode 100644
index 0000000..06b3585
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/gvfs-open
@@ -0,0 +1,47 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# This abstraction is designed to be used in a child profile to limit what
+# confined application can invoke via gvfs-open helper.
+#
+# NOTE: most likely you want to use xdg-open abstraction instead for better
+# portability across desktop environments, unless you are sure that confined
+# application only uses /usr/bin/gvfs-open directly.
+#
+# Usage example:
+#
+# ```
+# profile foo /usr/bin/foo {
+# ...
+# /usr/bin/gvfs-open rPx -> foo//gvfs-open,
+# ...
+# } # end of main profile
+#
+# # out-of-line child profile
+# profile foo//gvfs-open {
+# include <abstractions/gvfs-open>
+#
+# # needed for ubuntu-* abstractions
+# include <abstractions/ubuntu-helpers>
+#
+# # Only allow to handle http[s]: and mailto: links
+# include <abstractions/ubuntu-browsers>
+# include <abstractions/ubuntu-email>
+#
+# # < add additional allowed applications here >
+# }
+# ```
+
+ include <abstractions/base>
+
+ # gvfs-open is deprecated, it launches gio open <uri>
+ include <abstractions/gio-open>
+
+ # Main executables
+
+ /usr/bin/gvfs-open r,
+ /{,usr/}bin/dash mr,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/gvfs-open.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/hosts_access b/straper/db/public/apparmor/apparmor.d/abstractions/hosts_access
new file mode 100644
index 0000000..bc49814
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/hosts_access
@@ -0,0 +1,17 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2020 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /etc/hosts.deny r,
+ /etc/hosts.allow r,
+
+ include if exists <abstractions/hosts_access.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ibus b/straper/db/public/apparmor/apparmor.d/abstractions/ibus
new file mode 100644
index 0000000..9de24de
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ibus
@@ -0,0 +1,29 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2010 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # abstraction for ibus input methods
+ owner @{HOME}/.config/ibus/ r,
+ owner @{HOME}/.config/ibus/bus/ rw,
+ owner @{HOME}/.config/ibus/bus/* rw,
+
+ # abstract path in ibus >= 1.5.22 uses $XDG_CACHE_HOME (ie, @{HOME}/.cache)
+ # This should use this, but due to LP: #1856738 we cannot
+ #unix (connect, receive, send)
+ # type=stream
+ # peer=(addr="@@{HOME}/.cache/ibus/dbus-*"),
+ unix (connect, receive, send)
+ type=stream
+ peer=(addr="@/home/*/.cache/ibus/dbus-*"),
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ibus.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/kde b/straper/db/public/apparmor/apparmor.d/abstractions/kde
new file mode 100644
index 0000000..9ba93ce
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/kde
@@ -0,0 +1,88 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+# Copyright (C) 2009-2011 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+abi <abi/4.0>,
+
+include <abstractions/base>
+include <abstractions/fonts>
+include <abstractions/X>
+include <abstractions/freedesktop.org>
+include <abstractions/xdg-desktop>
+include <abstractions/user-tmp>
+include <abstractions/qt5>
+
+/etc/qt3/kstylerc r,
+/etc/qt3/qt_plugins_3.3rc r,
+/etc/qt3/qtrc r,
+/etc/kderc r,
+/etc/kde3/* r,
+/etc/kde4rc r,
+/etc/xdg/kdeglobals r,
+/etc/xdg/Trolltech.conf r,
+/usr/share/desktop-base/kf5-settings/baloofilerc r,
+/usr/share/desktop-base/kf5-settings/kdeglobals r,
+/usr/share/desktop-base/kf5-settings/kscreenlockerrc r,
+/usr/share/knotifications5/*.notifyrc r, # KNotification::sendEvent()
+/usr/share/kubuntu-default-settings/kf5-settings/* r,
+
+owner @{HOME}/.DCOPserver_* r,
+owner @{HOME}/.ICEauthority r,
+owner @{HOME}/.fonts.* lrw,
+owner @{HOME}/.kde{,4}/share/config/kdeglobals rw,
+owner @{HOME}/.kde{,4}/share/config/*.lock rwl,
+owner @{HOME}/.qt/** rw,
+owner @{HOME}/.cache/ksycoca5_??_* r, # KDE System Configuration Cache
+owner @{HOME}/.config/Trolltech.conf rwk,
+owner @{HOME}/.config/baloofilerc r, # indexing options (excludes, etc), used by KFileWidget
+owner @{HOME}/.config/dolphinrc r, # settings used by KFileWidget
+owner @{HOME}/.config/kde.org/libphonon.conf r, # for KNotifications::sendEvent()
+owner @{HOME}/.config/kdedefaults/kdeglobals r, # QPlatformThemeFactory::create() -> KDEPlasmaPlatformTheme.so
+owner @{HOME}/.config/kdedefaults/kwinrc r, # QStyleFactory::create() -> qt5/plugins/styles/breeze.so
+owner @{HOME}/.config/kdeglobals r, # global settings, used by Breeze style, etc.
+owner @{HOME}/.config/klanguageoverridesrc r, # per-application languages, for KDEPrivate::initializeLanguages() from libKF5XmlGui.so
+owner @{HOME}/.config/kwinrc r, # QStyleFactory::create() -> qt5/plugins/styles/breeze.so
+owner @{HOME}/.config/trashrc r, # Used by KFileWidget
+
+/usr/share/X11/XKeysymDB r,
+
+# kde3
+/usr/lib*/kde3/plugins/styles/ r,
+/usr/lib*/kde3/plugins/styles/* mr,
+/usr/lib*/kde3/lib*so* mr,
+/usr/lib/@{multiarch}/kde3/plugins/styles/ r,
+/usr/lib/@{multiarch}/kde3/plugins/styles/* mr,
+/usr/lib/@{multiarch}/kde3/lib*so* mr,
+/usr/lib*/qt3/lib*/lib*so* mr,
+/usr/lib*/qt3/plugins/** mr,
+/usr/lib/@{multiarch}/qt3/lib*/lib*so* mr,
+/usr/lib/@{multiarch}/qt3/plugins/** mr,
+/usr/lib*/libqt-mt*so* mr,
+/usr/lib*/libqui*so* mr,
+/usr/lib/@{multiarch}/libqt-mt*so* mr,
+/usr/lib/@{multiarch}/libqui*so* mr,
+/usr/share/qt3/lib*/libqt-mt*so* mr,
+/usr/share/qt3/lib*/libqui*so* mr,
+
+# kde4
+/usr/lib*/kde4/plugins/*/*.so mr,
+/usr/lib*/kde4/plugins/*/ r,
+/usr/lib*/kde4/lib*so* mr,
+/usr/lib/@{multiarch}/kde4/plugins/*/*.so mr,
+/usr/lib/@{multiarch}/kde4/plugins/*/ r,
+/usr/lib/@{multiarch}/kde4/lib*so* mr,
+/usr/lib*/qt4/lib*/lib*so* mr,
+/usr/lib*/qt4/plugins/** mr,
+/usr/lib/@{multiarch}/qt4/lib*/lib*so* mr,
+/usr/lib/@{multiarch}/qt4/plugins/** mr,
+/usr/share/qt4/** r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/kde.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/kde-globals-write b/straper/db/public/apparmor/apparmor.d/abstractions/kde-globals-write
new file mode 100644
index 0000000..b3142d8
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/kde-globals-write
@@ -0,0 +1,15 @@
+# vim:syntax=apparmor
+# Rules for changing KDE settings (for KFileDialog and other).
+
+ abi <abi/4.0>,
+
+ # User files
+
+ owner @{HOME}/.config/#[0-9]* rw,
+ owner @{HOME}/.config/kdeglobals rw,
+ owner @{HOME}/.config/kdeglobals.?????? rwl -> @{HOME}/.config/#[0-9]*,
+ owner @{HOME}/.config/kdeglobals.lock rwk,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/kde-globals-write.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/kde-icon-cache-write b/straper/db/public/apparmor/apparmor.d/abstractions/kde-icon-cache-write
new file mode 100644
index 0000000..9f01985
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/kde-icon-cache-write
@@ -0,0 +1,12 @@
+# vim:syntax=apparmor
+# Rules for writing KDE icon cache
+
+ abi <abi/4.0>,
+
+ # User files
+
+ owner @{HOME}/.cache/icon-cache.kcache rw, # for KIconLoader
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/kde-icon-cache-write.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/kde-language-write b/straper/db/public/apparmor/apparmor.d/abstractions/kde-language-write
new file mode 100644
index 0000000..ad124b7
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/kde-language-write
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# Rules for changing per-application language settings on KDE. Some KDE
+# applications have "Help -> Switch Application Language..." option, that needs
+# write access to language settings file.
+
+ # User files
+
+ owner @{HOME}/.config/#[0-9]* rw,
+ owner @{HOME}/.config/klanguageoverridesrc rw,
+ owner @{HOME}/.config/klanguageoverridesrc.?????? rwl -> @{HOME}/.config/#[0-9]*,
+ owner @{HOME}/.config/klanguageoverridesrc.lock rwk,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/kde-language-write.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/kde-open5 b/straper/db/public/apparmor/apparmor.d/abstractions/kde-open5
new file mode 100644
index 0000000..546a8f2
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/kde-open5
@@ -0,0 +1,105 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# This abstraction is designed to be used in a child profile to limit what
+# confined application can invoke via kde-open5 helper.
+#
+# NOTE: most likely you want to use xdg-open abstraction instead for better
+# portability across desktop environments, unless you are sure that confined
+# application only uses /usr/bin/kde-open5 directly.
+#
+# Usage example:
+#
+# ```
+# profile foo /usr/bin/foo {
+# ...
+# /usr/bin/kde-open5 rPx -> foo//kde-open5,
+# ...
+# } # end of main profile
+#
+# # out-of-line child profile
+# profile foo//kde-open5 {
+# include <abstractions/kde-open5>
+#
+# # needed for ubuntu-* abstractions
+# include <abstractions/ubuntu-helpers>
+#
+# # Only allow to handle http[s]: and mailto: links
+# include <abstractions/ubuntu-browsers>
+# include <abstractions/ubuntu-email>
+#
+# # Add if accessibility access is considered as required
+# # (for message box in case exo-open fails)
+# include <abstractions/dbus-accessibility>
+#
+# # Add if audio support for message box is
+# # considered as required.
+# include if exists <abstractions/gstreamer>
+#
+# # < add additional allowed applications here >
+# }
+# ```
+
+ include <abstractions/audio> # for alert messages
+ include <abstractions/base>
+ include <abstractions/dbus-accessibility-strict>
+ include <abstractions/dbus-network-manager-strict>
+ include <abstractions/dbus-session-strict>
+ include <abstractions/dbus-strict>
+ include <abstractions/kde-icon-cache-write>
+ include <abstractions/kde>
+ include <abstractions/nameservice> # for IceProcessMessages () from libICE.so (called by libQtCore.so)
+ include <abstractions/qt5>
+ include <abstractions/recent-documents-write>
+ include <abstractions/X>
+
+ # Main executables
+
+ /usr/bin/kde-open5 rix,
+ /usr/lib/@{multiarch}/libexec/kf5/kioslave{,5} ix,
+
+ # DBus
+
+ dbus
+ bus=session
+ interface=org.kde.KLauncher
+ member=start_service_by_desktop_path
+ peer=(name=org.kde.klauncher5),
+
+ # Denied system files
+
+ deny /usr/lib/vlc/plugins/* w, # VLC backed tries to create plugins.dat.16109
+
+ # libpcre2 on openSUSE tries to mmap() shared memory on directory.
+ # see: https://lists.ubuntu.com/archives/apparmor/2019-January/011925.html
+ # AppArmor does not allow to distinguish "real" file vs shared memory one,
+ # so we deny this path to protect from loading exploits from /tmp.
+ deny /tmp/#[0-9]*[0-9] m,
+
+ # System files
+
+ /dev/tty r,
+ /etc/xdg/accept-languages.codes r,
+ /etc/xdg/menus/{,*/} r,
+ /usr/share/*fonts*/conf.avail/*.conf r, # for openSUSE, when showing error message box
+ /usr/share/ghostscript/fonts/ r, # for openSUSE, when showing error message box
+ /usr/share/hwdata/pnp.ids r, # for openSUSE, when showing error message box, for QXcbConnection::initializeScreens() from libQt5XcbQpa.so
+ /usr/share/icu/[0-9]*.[0-9]*/*.dat r, # for openSUSE
+ /usr/share/kservices5/{,**} r, # for KProtocolManager::defaultUserAgent() from libKF5KIOCore.so
+ /usr/share/mime/ r,
+ /usr/share/mime/generic-icons r,
+ /usr/share/plasma/look-and-feel/*/contents/defaults r, # TODO: move to kde abstraction?
+ /usr/share/sounds/ r,
+ @{PROC}/sys/kernel/core_pattern r,
+ @{PROC}/sys/kernel/random/boot_id r,
+
+ # User files
+
+ owner /tmp/xauth-[0-9]*-_[0-9] r, # for libQt5XcbQpa.so
+ owner @{run}/user/[0-9]*/#[0-9]* rw, # for /run/user/1000/#13
+ owner @{run}/user/[0-9]*/kioclient*slave-socket lrw -> @{run}/user/[0-9]/#[0-9]*, # for KIO::Slave::holdSlave(QString const&, QUrl const&) () from libKF5KIOCore.so (not 100% sure)
+ owner @{HOME}/.cache/kio_http/ rw,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/kde-open5.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/kerberosclient b/straper/db/public/apparmor/apparmor.d/abstractions/kerberosclient
new file mode 100644
index 0000000..e5f3a93
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/kerberosclient
@@ -0,0 +1,44 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009-2011 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # files required by kerberos client programs
+ /usr/lib{,32,64}/krb5/plugins/libkrb5/ r,
+ /usr/lib{,32,64}/krb5/plugins/libkrb5/* mr,
+ /usr/lib/@{multiarch}/krb5/plugins/libkrb5/ r,
+ /usr/lib/@{multiarch}/krb5/plugins/libkrb5/* mr,
+
+ /usr/lib{,32,64}/krb5/plugins/preauth/ r,
+ /usr/lib{,32,64}/krb5/plugins/preauth/* mr,
+ /usr/lib/@{multiarch}/krb5/plugins/preauth/ r,
+ /usr/lib/@{multiarch}/krb5/plugins/preauth/* mr,
+
+ /usr/lib{,32,64}/krb5/plugins/authdata/ r,
+ /usr/lib{,32,64}/krb5/plugins/authdata/* mr,
+ /usr/lib/@{multiarch}/krb5/plugins/authdata/ r,
+ /usr/lib/@{multiarch}/krb5/plugins/authdata/* mr,
+
+ /etc/krb5.keytab rk,
+ /etc/krb5.conf r,
+ /etc/krb5.conf.d/ r,
+ /etc/krb5.conf.d/* r,
+
+ # config files found via strings on libs
+ /etc/krb.conf r,
+ /etc/krb.realms r,
+ /etc/srvtab r,
+
+ # credential caches
+ /tmp/krb5cc* r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/kerberosclient.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ldapclient b/straper/db/public/apparmor/apparmor.d/abstractions/ldapclient
new file mode 100644
index 0000000..ecc403f
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ldapclient
@@ -0,0 +1,29 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2011 Novell/SUSE
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # files required by LDAP clients (e.g. nss_ldap/pam_ldap)
+ /etc/ldap.conf r,
+ /etc/ldap.secret r,
+ /etc/openldap/* r,
+ /etc/openldap/cacerts/* r,
+
+ # SASL plugins and config
+ /etc/sasl2/* r,
+ /usr/lib{,32,64}/sasl2/* r,
+
+ # local LDAP name service daemon
+ @{run}/nslcd/socket rw,
+
+ include <abstractions/ssl_certs>
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ldapclient.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/libpam-systemd b/straper/db/public/apparmor/apparmor.d/abstractions/libpam-systemd
new file mode 100644
index 0000000..5d69abe
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/libpam-systemd
@@ -0,0 +1,24 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2015-2016 Simon Deziel
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+include <abstractions/dbus-strict>
+
+ # libpam-systemd notifies systemd-logind about session logins/logouts
+ dbus send
+ bus=system
+ path=/org/freedesktop/login1
+ interface=org.freedesktop.login1.Manager
+ member={CreateSession,ReleaseSession},
+
+ # Include additions to the abstraction
+ include if exists <abstractions/libpam-systemd.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/likewise b/straper/db/public/apparmor/apparmor.d/abstractions/likewise
new file mode 100644
index 0000000..1985f36
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/likewise
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2009 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /tmp/.lwidentity/pipe rw,
+ /var/lib/likewise-open/lwidentity_privileged/pipe rw,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/likewise.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/mdns b/straper/db/public/apparmor/apparmor.d/abstractions/mdns
new file mode 100644
index 0000000..5024b7a
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/mdns
@@ -0,0 +1,19 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # mdnsd
+ /etc/mdns.allow r,
+ /etc/nss_mdns.conf r,
+ @{run}/mdnsd w,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/mdns.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/mesa b/straper/db/public/apparmor/apparmor.d/abstractions/mesa
new file mode 100644
index 0000000..c401a8e
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/mesa
@@ -0,0 +1,37 @@
+# vim:syntax=apparmor
+# Rules for Mesa implementation of the OpenGL API
+
+ abi <abi/4.0>,
+
+ # System files
+ /dev/dri/ r, # libGLX_mesa.so calls drmGetDevice2()
+
+ # Needed to check if the kernel supports the i915 perf interface
+ # (src/intel/perf/gen_perf.c, load_oa_metrics())
+ @{PROC}/sys/dev/i915/perf_stream_paranoid r,
+
+ @{sys}/devices/pci[0-9]*/**/{revision,config} r,
+
+ # User files
+ owner @{HOME}/.cache/ w, # if user clears all caches
+ owner @{HOME}/.cache/mesa_shader_cache/ rw,
+ owner @{HOME}/.cache/mesa_shader_cache/index rw,
+ owner @{HOME}/.cache/mesa_shader_cache/[a-f0-9][a-f0-9]/ rw,
+ owner @{HOME}/.cache/mesa_shader_cache/[a-f0-9][a-f0-9]/[0-9a-f]* rw,
+ owner @{HOME}/.cache/mesa_shader_cache/[a-f0-9][a-f0-9]/[0-9a-f]*.tmp rwk,
+
+ owner @{HOME}/.cache/mesa_shader_cache_db/ rw,
+ owner @{HOME}/.cache/mesa_shader_cache_db/index rwk,
+ owner @{HOME}/.cache/mesa_shader_cache_db/part*/ rw,
+ owner @{HOME}/.cache/mesa_shader_cache_db/part*/mesa_cache.db rwk,
+ owner @{HOME}/.cache/mesa_shader_cache_db/part*/mesa_cache.idx rwk,
+
+ # Fallback location when @{HOME}/.cache is not available
+ owner /tmp/Temp-[a-f0-9]*/mesa_shader_cache/ rw,
+ owner /tmp/Temp-[a-f0-9]*/mesa_shader_cache/index rw,
+ owner /tmp/Temp-[a-f0-9]*/mesa_shader_cache/[a-f0-9][a-f0-9]/ rw,
+ owner /tmp/Temp-[a-f0-9]*/mesa_shader_cache/[a-f0-9][a-f0-9]/[0-9a-f]* rw,
+ owner /tmp/Temp-[a-f0-9]*/mesa_shader_cache/[a-f0-9][a-f0-9]/[0-9a-f]*.tmp rwk,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/mesa.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/mir b/straper/db/public/apparmor/apparmor.d/abstractions/mir
new file mode 100644
index 0000000..85ebde7
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/mir
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2015 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # mir libraries sometimes do not have a lib prefix
+ # see LP: #1422521
+ /usr/lib/@{multiarch}/mir/*.so* mr,
+ /usr/lib/@{multiarch}/mir/**/*.so* mr,
+
+ # unprivileged mir socket for clients
+
+ # Include additions to the abstraction
+ include if exists <abstractions/mir.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/mozc b/straper/db/public/apparmor/apparmor.d/abstractions/mozc
new file mode 100644
index 0000000..6ca1a84
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/mozc
@@ -0,0 +1,17 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2016 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ unix (connect, receive, send) type=stream peer=(addr="@tmp/.mozc.*"),
+
+ # Include additions to the abstraction
+ include if exists <abstractions/mozc.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/mysql b/straper/db/public/apparmor/apparmor.d/abstractions/mysql
new file mode 100644
index 0000000..5643953
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/mysql
@@ -0,0 +1,20 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+# Copyright (C) 2013 Christian Boltz
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /var/lib/mysql{,d}/mysql{,d}.sock rw,
+ @{run}/mysql{,d}/mysql{,d}.sock rw,
+ /usr/share/{mysql,mysql-community-server,mariadb}/charsets/ r,
+ /usr/share/{mysql,mysql-community-server,mariadb}/charsets/*.xml r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/mysql.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/nameservice b/straper/db/public/apparmor/apparmor.d/abstractions/nameservice
new file mode 100644
index 0000000..efba4ac
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/nameservice
@@ -0,0 +1,106 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009-2011 Canonical Ltd.
+# Copyright (C) 2011-2024 Christian Boltz
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ include <abstractions/nameservice-strict>
+
+ # libtirpc (used for NIS/YP login) needs this
+ @{etc_ro}/netconfig r,
+
+ # When using sssd, the passwd and group files are stored in an alternate path
+ # and the nss plugin also needs to talk to a pipe
+ /var/lib/sss/mc/group r,
+ /var/lib/sss/mc/initgroups r,
+ /var/lib/sss/mc/passwd r,
+ /var/lib/sss/pipes/nss rw,
+
+ # On systems where /etc/resolv.conf is managed programmatically, it is
+ # a symlink to @{run}/(whatever program is managing it)/resolv.conf.
+ @{run}/{NetworkManager,connman,netconfig}/resolv.conf r,
+ @{etc_ro}/resolvconf/run/resolv.conf r,
+ /mnt/wsl/resolv.conf r,
+
+ @{etc_ro}/samba/lmhosts r,
+ # db backend
+ /var/lib/misc/*.db r,
+ # The Name Service Cache Daemon can cache lookups, sometimes leading
+ # to vast speed increases when working with network-based lookups.
+ @{run}/.nscd_socket rw,
+ @{run}/nscd/socket rw,
+ /{var/db,var/cache,var/lib,var/run,run}/nscd/{passwd,group,services,hosts} r,
+ # nscd renames and unlinks files in it's operation that clients will
+ # have open
+ @{run}/nscd/db* mix,
+
+ # make libnss-libvirt name resolution work.
+ /var/lib/libvirt/dnsmasq/* r,
+
+ # make libnss-libvirt name resolution work.
+ /var/lib/libvirt/dnsmasq/ r,
+ /var/lib/libvirt/dnsmasq/*.status r,
+
+ # The nss libraries are sometimes used in addition to PAM; make sure
+ # they are available
+ /{usr/,}lib{,32,64}/libnss_*.so* mr,
+ /{usr/,}lib/@{multiarch}/libnss_*.so* mr,
+
+ # avahi-daemon is used for mdns4 resolution
+ @{run}/avahi-daemon/socket rw,
+
+ # libnl-3-200 via libnss-gw-name
+ @{PROC}/@{pid}/net/psched r,
+ @{etc_ro}/libnl-*/classid r,
+
+ # nis
+ include <abstractions/nis>
+
+ # ldap
+ include <abstractions/ldapclient>
+
+ # winbind
+ include <abstractions/winbind>
+
+ # likewise
+ include <abstractions/likewise>
+
+ # mdnsd
+ include <abstractions/mdns>
+
+ # kerberos
+ include <abstractions/kerberosclient>
+
+ # Also allow lookups for systemd-exec's DynamicUsers via D-Bus
+ # https://www.freedesktop.org/software/systemd/man/systemd.exec.html
+ dbus send
+ bus=system
+ path="/org/freedesktop/systemd1"
+ interface="org.freedesktop.systemd1.Manager"
+ member="{GetDynamicUsers,LookupDynamicUserByName,LookupDynamicUserByUID}"
+ peer=(name="org.freedesktop.systemd1"),
+
+ # TCP/UDP network access
+ network inet stream,
+ network inet6 stream,
+ network inet dgram,
+ network inet6 dgram,
+
+ # TODO: adjust when support finer-grained netlink rules
+ # Netlink raw needed for nscd
+ network netlink raw,
+
+ # interface details
+ @{PROC}/@{pid}/net/ipv6_route r,
+ @{PROC}/@{pid}/net/route r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/nameservice.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/nameservice-strict b/straper/db/public/apparmor/apparmor.d/abstractions/nameservice-strict
new file mode 100644
index 0000000..5f49a63
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/nameservice-strict
@@ -0,0 +1,40 @@
+# apparmor.d - Full set of apparmor profiles
+# Copyright (C) 2019-2022 Mikhail Morfikov
+# Copyright (C) 2021-2024 Alexandre Pujol <alexandre@pujol.io>
+# SPDX-License-Identifier: GPL-2.0-only
+
+# Many programs wish to perform nameservice-like operations, such as looking up
+# users by name or id, groups by name or id, hosts by name or IP, etc.
+
+ abi <abi/4.0>,
+
+ include <abstractions/nss-systemd>
+
+ @{etc_ro}/default/nss r,
+ @{etc_ro}/gai.conf r,
+ @{etc_ro}/group r,
+ @{etc_ro}/host.conf r,
+ @{etc_ro}/hosts r,
+ @{etc_ro}/nsswitch.conf r,
+ @{etc_ro}/passwd r,
+ @{etc_ro}/protocols r,
+ @{etc_ro}/resolv.conf r,
+ @{etc_ro}/services r,
+
+ # On systems with authselect installed, /etc/nsswitch.conf is a symlink to /etc/authselect/nsswitch.conf
+ @{etc_ro}/authselect/nsswitch.conf r,
+
+ # Alternative location for group & passwd files
+ /var/lib/extrausers/group r,
+ /var/lib/extrausers/passwd r,
+ /var/lib/nscd/group r,
+ /var/lib/nscd/passwd r,
+
+ @{run}/nscd/db* r,
+ @{run}/resolvconf/resolv.conf r,
+ @{run}/systemd/resolve/resolv.conf r,
+ @{run}/systemd/resolve/stub-resolv.conf r,
+
+ include if exists <abstractions/nameservice-strict.d>
+
+# vim:syntax=apparmor
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/nis b/straper/db/public/apparmor/apparmor.d/abstractions/nis
new file mode 100644
index 0000000..70c426b
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/nis
@@ -0,0 +1,20 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # NIS rules
+ /var/yp/binding/* r,
+ # portmapper may ask root processes to do nis/ldap at low ports
+ capability net_bind_service,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/nis.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/nss-systemd b/straper/db/public/apparmor/apparmor.d/abstractions/nss-systemd
new file mode 100644
index 0000000..0d2683c
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/nss-systemd
@@ -0,0 +1,31 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009-2011 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+# libnss-systemd
+ #
+ # https://systemd.io/USER_GROUP_API/
+ # https://systemd.io/USER_RECORD/
+ # https://www.freedesktop.org/software/systemd/man/nss-systemd.html
+ #
+ # Allow User/Group lookups via common VarLink socket APIs. Applications need
+ # to either consult all of them or the io.systemd.Multiplexer frontend.
+ @{run}/systemd/userdb/ r,
+ @{run}/systemd/userdb/io.systemd.Multiplexer rw,
+ @{run}/systemd/userdb/io.systemd.DynamicUser rw, # systemd-exec users
+ @{run}/systemd/userdb/io.systemd.Home rw, # systemd-home dirs
+ @{run}/systemd/userdb/io.systemd.NameServiceSwitch rw, # UNIX/glibc NSS
+ @{run}/systemd/userdb/io.systemd.Machine rw, # systemd-machined
+
+ @{PROC}/sys/kernel/random/boot_id r,
+
+ include if exists <abstractions/nss-systemd.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/nvidia b/straper/db/public/apparmor/apparmor.d/abstractions/nvidia
new file mode 100644
index 0000000..fb1ffaf
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/nvidia
@@ -0,0 +1,40 @@
+# vim:syntax=apparmor
+# nvidia access requirements
+
+ abi <abi/4.0>,
+
+ # configuration queries
+ capability ipc_lock,
+
+ /etc/nvidia/nvidia-application-profiles* r,
+ /usr/share/nvidia/nvidia-application-profiles* r,
+
+ # libvdpau config file for nvidia workarounds
+ /etc/vdpau_wrapper.cfg r,
+
+ # device files
+ /dev/nvidiactl rw,
+ /dev/nvidia-modeset rw,
+ /dev/nvidia[0-9]* rw,
+
+ @{PROC}/interrupts r,
+ @{PROC}/sys/vm/max_map_count r,
+ @{PROC}/driver/nvidia/params r,
+ @{PROC}/modules r,
+
+ @{sys}/devices/system/memory/block_size_bytes r,
+
+ owner @{HOME}/.cache/nvidia/ w,
+ owner @{HOME}/.cache/nvidia/GLCache/ rw,
+ owner @{HOME}/.cache/nvidia/GLCache/** rwk,
+ owner @{HOME}/.nv/ w,
+ owner @{HOME}/.nv/GLCache/ rw,
+ owner @{HOME}/.nv/GLCache/** rwk,
+ owner @{HOME}/.nv/nvidia-application-profiles* r,
+ owner @{PROC}/@{pid}/comm r, # somehwere in libnvidia-glcore.so
+
+ unix (send, receive) type=dgram peer=(addr="@nvidia[0-9a-f]*"),
+ unix (send, receive) type=dgram peer=(addr="@var/run/nvidia-xdriver-*"),
+
+ # Include additions to the abstraction
+ include if exists <abstractions/nvidia.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/opencl b/straper/db/public/apparmor/apparmor.d/abstractions/opencl
new file mode 100644
index 0000000..6dc3c5a
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/opencl
@@ -0,0 +1,15 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# OpenCL access requirements
+
+ # TODO: use conditionals to select allowed implementations
+ include <abstractions/opencl-intel>
+ include <abstractions/opencl-mesa>
+ include <abstractions/opencl-nvidia>
+ include <abstractions/opencl-pocl>
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/opencl.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/opencl-common b/straper/db/public/apparmor/apparmor.d/abstractions/opencl-common
new file mode 100644
index 0000000..52b40d3
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/opencl-common
@@ -0,0 +1,16 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# implementation-independent OpenCL access requirements
+
+ # System files
+
+ /etc/OpenCL/** r,
+ @{sys}/bus/pci/devices/ r, # libpocl.so -> libhwlock.so, libnvidia-opencl.so, beignet/libcl.so -> libdrm_intel.so
+ @{sys}/devices/system/node/ r, # for clGetPlatformIDs() from libOpenCL.so
+ @{sys}/devices/system/node/node[0-9]*/meminfo r, # for clGetPlatformIDs() from libOpenCL.so
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/opencl-common.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/opencl-intel b/straper/db/public/apparmor/apparmor.d/abstractions/opencl-intel
new file mode 100644
index 0000000..b584af2
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/opencl-intel
@@ -0,0 +1,23 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# OpenCL access requirements for Intel implementation
+
+ include <abstractions/opencl-common>
+
+ # for libcl.so (libOpenCL.so -> beignet/libcl.so calls XOpenDisplay())
+ include <abstractions/X>
+
+ # for libOpenCL.so -> beignet/libcl.so -> libpciaccess.so
+ include <abstractions/dri-enumerate>
+
+ # System files
+
+ /dev/dri/card[0-9]* rw, # beignet/libcl.so
+ @{sys}/devices/pci[0-9]*/**/{class,config,resource,revision} r, # libcl.so -> libdrm_intel.so -> libpciaccess.so (move to dri-enumerate ?)
+ /usr/lib/@{multiarch}/beignet/** r,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/opencl-intel.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/opencl-mesa b/straper/db/public/apparmor/apparmor.d/abstractions/opencl-mesa
new file mode 100644
index 0000000..3579277
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/opencl-mesa
@@ -0,0 +1,26 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# OpenCL access requirements for Mesa implementation
+
+ include <abstractions/opencl-common>
+
+ # Additional libraries
+
+ /usr/lib/@{multiarch}/gallium-pipe/*.so mr, # libMesaOpenCL.so
+ /usr/lib{,64}/gallium-pipe/*.so mr, # libMesaOpenCL.so on openSUSE
+
+ # System files
+
+ /dev/dri/ r, # libMesaOpenCL.so -> libdrm.so
+ /dev/dri/render* rw, # libMesaOpenCL.so
+ /etc/drirc r, # libMesaOpenCL.so
+
+ # User files
+
+ owner @{HOME}/.cache/mesa_shader_cache/{,**} rw, # libMesaOpenCL.so -> pipe_nouveau.so
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/opencl-mesa.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/opencl-nvidia b/straper/db/public/apparmor/apparmor.d/abstractions/opencl-nvidia
new file mode 100644
index 0000000..5ad69b3
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/opencl-nvidia
@@ -0,0 +1,36 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# OpenCL access requirements for NVIDIA implementation
+
+ include <abstractions/nvidia>
+ include <abstractions/opencl-common>
+
+ # Executables
+
+ # https://github.com/NVIDIA/nvidia-modprobe
+ # This setuid executable is used to create various device files and load the
+ # the nvidia kernel module.
+ /usr/bin/nvidia-modprobe Px -> nvidia_modprobe,
+
+ # System files
+
+ # libnvidia-opencl.so rules:
+ /dev/nvidia-uvm rw,
+ /dev/nvidia-uvm-tools rw,
+ @{sys}/devices/pci[0-9]*/**/config r,
+ @{sys}/devices/system/memory/block_size_bytes r,
+ /usr/share/nvidia/** r,
+ @{PROC}/devices r,
+ @{PROC}/sys/vm/mmap_min_addr r,
+
+ # User files
+
+ owner @{HOME}/.nv/ComputeCache/ w,
+ owner @{HOME}/.nv/ComputeCache/** rw,
+ owner @{HOME}/.nv/ComputeCache/index rwk,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/opencl-nvidia.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/opencl-pocl b/straper/db/public/apparmor/apparmor.d/abstractions/opencl-pocl
new file mode 100644
index 0000000..c69e7e6
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/opencl-pocl
@@ -0,0 +1,81 @@
+# vim:syntax=apparmor
+# OpenCL access requirements for POCL implementation
+
+ abi <abi/4.0>,
+
+ include <abstractions/opencl-common>
+
+ # Executables
+
+ /usr/bin/{,@{multiarch}-}ld.bfd Cx -> opencl_pocl_ld,
+ /usr/lib/llvm-[0-9]*.[0-9]*/bin/clang Cx -> opencl_pocl_clang,
+
+ # System files
+
+ / r, # libpocl.so -> libhwloc.so
+ @{sys}/bus/pci/slots/ r, # libpocl.so -> hwloc_topology_load() from libhwloc.so
+ @{sys}/bus/{cpu,node}/devices/ r, # libpocl.so -> libhwlock.so
+ @{sys}/class/net/ r, # libpocl.so -> hwloc_pci_traverse_lookuposdevices_cb() from libhwloc.so
+ @{sys}/devices/pci[0-9]*/**/ r, # for libpocl -> hwloc_linux_lookup_block_class() from libhwloc.so
+ @{sys}/devices/pci[0-9]*/**/block/*/dev r, # libpocl.so -> hwloc_linux_lookup_host_block_class() from libhwloc.so
+ @{sys}/devices/pci[0-9]*/**/{class,local_cpus} r, # libpocl.so -> libhwlock.so
+ @{sys}/devices/pci[0-9]*/*/net/*/address r, # libpocl.so -> hwloc_pci_traverse_lookuposdevices_cb() from libhwloc.so
+ @{sys}/devices/system/cpu/ r, # libpocl.so -> libnuma.so
+ @{sys}/devices/system/cpu/cpu[0-9]*/cache/index[0-9]*/* r, # libpocl.so -> libhwloc.so
+ @{sys}/devices/system/cpu/cpu[0-9]*/online r, # libpocl.so -> libhwlock.so
+ @{sys}/devices/system/cpu/cpu[0-9]*/topology/* r, # *_siblings, physical_package_id and lot's of others, for libpocl.so -> libhwloc.so
+ @{sys}/devices/system/cpu/cpufreq/policy[0-9]*/* r, # for clGetPlatformIDs() from libpocl.so
+ @{sys}/devices/system/cpu/possible r, # libpocl.so -> libhwloc.so
+ @{sys}/devices/virtual/dmi/id/{,*} r, # libpocl.so -> libhwloc.so
+ @{sys}/fs/cgroup/cpuset/cpuset.{cpus,mems} r, # libpocl.so -> libhwloc.so
+ @{sys}/kernel/mm/hugepages{/,/**} r, # libpocl.so -> libhwloc.so
+ /usr/share/pocl/** r,
+ @{run}/udev/data/*:* r, # libpocl.so -> hwloc_linux_block_class_fillinfos() from libhwloc.so
+
+ # User files
+
+ owner @{HOME}/.cache/pocl/ w,
+ owner @{HOME}/.cache/pocl/kcache/ w,
+ owner @{HOME}/.cache/pocl/kcache/** rw,
+ owner @{HOME}/.cache/pocl/kcache/**.so mrw, # dangerous!
+ owner @{PROC}/@{pid}/{cgroup,cpuset,status} r, # libpocl.so -> libhwloc.so, status for libpocl.so -> libnuma.so
+
+ # Child profiles
+
+ profile opencl_pocl_ld {
+ include <abstractions/base>
+
+ # Main executables
+
+ /usr/bin/{,@{multiarch}-}ld.bfd mr,
+
+ # User files
+
+ owner @{HOME}/.cache/pocl/kcache/tempfile*.so rw,
+ owner @{HOME}/.cache/pocl/kcache/**.so.o r,
+ }
+
+ profile opencl_pocl_clang {
+ include <abstractions/base>
+
+ # Main executables
+
+ /usr/lib/llvm-[0-9]*.[0-9]*/bin/clang mr,
+
+ # Additional executables
+
+ /usr/bin/{,@{multiarch}-}ld.bfd ix, # TODO: transfer to opencl_ld child profile?
+
+ # System files
+
+ /etc/debian-version r,
+ /etc/lsb-release r,
+
+ # User files
+
+ owner @{HOME}/.cache/pocl/kcache/*/*/*/*/*.so{,.o} rw,
+ }
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/opencl-pocl.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/openssl b/straper/db/public/apparmor/apparmor.d/abstractions/openssl
new file mode 100644
index 0000000..b4483b0
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/openssl
@@ -0,0 +1,20 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2011 Novell/SUSE
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /etc/ssl/openssl.cnf r,
+ /etc/ssl/openssl-*.cnf r,
+ /etc/ssl/{engdef*,engines*}.d/ r,
+ /etc/ssl/{engdef*,engines*}.d/*.cnf r,
+ /usr/share/ssl/openssl.cnf r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/openssl.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/orbit2 b/straper/db/public/apparmor/apparmor.d/abstractions/orbit2
new file mode 100644
index 0000000..20e6b6f
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/orbit2
@@ -0,0 +1,10 @@
+# vim:syntax=apparmor
+# orbit2 permissions
+
+ abi <abi/4.0>,
+
+ # system library
+ /usr/lib/orbit-2.0/*.so mr,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/orbit2.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/p11-kit b/straper/db/public/apparmor/apparmor.d/abstractions/p11-kit
new file mode 100644
index 0000000..57b8f88
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/p11-kit
@@ -0,0 +1,32 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2012 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /etc/pkcs11/ r,
+ /etc/pkcs11/pkcs11.conf r,
+ /etc/pkcs11/modules/ r,
+ /etc/pkcs11/modules/* r,
+
+ /usr/lib{,32,64}/pkcs11/*.so mr,
+ /usr/lib/@{multiarch}/pkcs11/*.so mr,
+
+ /usr/share/p11-kit/modules/ r,
+ /usr/share/p11-kit/modules/* r,
+
+ # gnome-keyring pkcs11 module
+ owner @{run}/user/[0-9]*/keyring*/pkcs11 rw,
+
+ # p11-kit also supports reading user configuration from ~/.pkcs11 depending
+ # on how /etc/pkcs11/pkcs11.conf is configured. This should generally not be
+ # included in this abstraction.
+
+ # Include additions to the abstraction
+ include if exists <abstractions/p11-kit.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/perl b/straper/db/public/apparmor/apparmor.d/abstractions/perl
new file mode 100644
index 0000000..d69fc54
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/perl
@@ -0,0 +1,28 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # a few files typically required for perl scripts
+ /usr/bin/perl rmix,
+ /usr/bin/perl[0-9].[0-9].[0-9] rmix,
+
+ /usr/lib{,32,64}/perl5/** r,
+ /usr/lib{,32,64}/perl{,5}/**.so* mr,
+ /usr/lib/@{multiarch}/perl{,5,-base}/** r,
+ /usr/lib/@{multiarch}/perl{,5,-base}/[0-9]*/**.so* mr,
+
+ /usr/share/perl/** r,
+ /usr/share/perl5/** r,
+ /etc/perl/** r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/perl.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/php b/straper/db/public/apparmor/apparmor.d/abstractions/php
new file mode 100644
index 0000000..ca7ca37
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/php
@@ -0,0 +1,43 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+# Copyright (C) 2009-2010 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # shared snippets for config files
+ /etc/php{,5,7,8,-legacy}/** r,
+
+ # Xlibs
+ /usr/X11R6/lib{,32,64}/lib*.so* mr,
+ # php extensions
+ /usr/lib{64,}/php{,5,7,8,-legacy}/*/*.so mr,
+
+ # ICU (unicode support) data tables
+ /usr/share/icu/*/*.dat r,
+
+ # php session mmap socket
+ /var/lib/php{,5,7,8,-legacy}/session_mm_* rwlk,
+ # file based session handler
+ /var/lib/php{,5,7,8,-legacy}/sess_* rwlk,
+ /var/lib/php{,5,7,8,-legacy}/sessions/* rwlk,
+
+ # php libraries
+ /usr/share/php{,5,7,8,-legacy}/ r,
+ /usr/share/php{,5,7,8,-legacy}/** mr,
+
+ # MySQL extension
+ /usr/share/mysql/** r,
+
+ # Zend opcache
+ /tmp/.ZendSem.* rwlk,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/php.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/php-worker b/straper/db/public/apparmor/apparmor.d/abstractions/php-worker
new file mode 100644
index 0000000..40f63ad
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/php-worker
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+
+# This file contains basic permissions for php-fpm workers
+
+ abi <abi/4.0>,
+
+ # load common libraries and their support files
+ include <abstractions/base>
+ # common php files and support files that php needs
+ include <abstractions/php>
+
+ signal (receive) peer=php-fpm,
+
+ # This is some php opcaching file
+ /tmp/.ZendSem.* rwk,
+
+ # I think this is adaptive memory management
+ /sys/devices/system/node/* r,
+ /sys/devices/system/node/*/meminfo r,
+ /sys/devices/system/node/ r,
+
+ include if exists <abstractions/php-worker.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/php5 b/straper/db/public/apparmor/apparmor.d/abstractions/php5
new file mode 100644
index 0000000..222968c
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/php5
@@ -0,0 +1,8 @@
+#backwards compatibility include, actual abstraction moved from php5 to php
+
+ abi <abi/4.0>,
+
+ include <abstractions/php>
+
+ # Include additions to the abstraction
+ include if exists <abstractions/php5.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/postfix-common b/straper/db/public/apparmor/apparmor.d/abstractions/postfix-common
new file mode 100644
index 0000000..2691de8
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/postfix-common
@@ -0,0 +1,45 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2005 Novell/SUSE
+# Copyright (C) 2015-2018 Canonical, Ltd.
+# Copyright (C) 2020-2021 Christian Boltz
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+# used with postfix/*
+
+ abi <abi/4.0>,
+
+
+ capability setuid,
+ capability setgid,
+ capability sys_chroot,
+
+ # postfix's master can send us signals
+ signal receive peer=postfix-master,
+
+ unix (send, receive) peer=(label=postfix-master),
+
+ /etc/mailname r,
+ /etc/postfix/*.cf r,
+ /etc/postfix/*.db rk,
+ /etc/postfix/*.lmdb rk,
+ @{PROC}/net/if_inet6 r,
+ /usr/lib/postfix/*.so mr,
+ /usr/lib{,32,64}/sasl2/* mr,
+ /usr/lib{,32,64}/sasl2/ r,
+ /usr/lib/@{multiarch}/sasl2/* mr,
+ /usr/lib/@{multiarch}/sasl2/ r,
+ /usr/share/icu/[0-9]*.[0-9]*/*.dat r,
+
+ /var/spool/postfix/etc/* r,
+ /var/spool/postfix/lib/lib*.so* mr,
+ /var/spool/postfix/lib/@{multiarch}/lib*.so* mr,
+
+ /etc/postfix/dynamicmaps.cf.d/ r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/postfix-common.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/private-files b/straper/db/public/apparmor/apparmor.d/abstractions/private-files
new file mode 100644
index 0000000..00ad5f1
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/private-files
@@ -0,0 +1,52 @@
+# vim:syntax=apparmor
+# privacy-violations contains rules for common files that you want to
+# explicitly deny access
+
+ abi <abi/4.0>,
+
+ # privacy violations (don't audit files under $HOME otherwise get a
+ # lot of false positives when reading contents of directories)
+ deny @{HOME}/.*history mrwkl,
+ deny @{HOME}/.fetchmail* mrwkl,
+ deny @{HOME}/.mutt** mrwkl,
+ deny @{HOME}/.viminfo* mrwkl,
+ deny @{HOME}/.*~ mrwkl,
+ deny @{HOME}/.*.swp mrwkl,
+ deny @{HOME}/.*~1~ mrwkl,
+ deny @{HOME}/.*.bak mrwkl,
+
+ # special attention to (potentially) executable files
+ audit deny @{HOME}/bin/{,**} wl,
+ audit deny @{HOME}/.config/ w,
+ audit deny @{HOME}/.config/autostart/{,**} wl,
+ audit deny @{HOME}/.config/upstart/{,**} wl,
+ audit deny @{HOME}/.init/{,**} wl,
+ audit deny @{HOME}/.kde{,4}/ w,
+ audit deny @{HOME}/.kde{,4}/Autostart/{,**} wl,
+ audit deny @{HOME}/.kde{,4}/env/{,**} wl,
+ audit deny @{HOME}/.local/{,share/} w,
+ audit deny @{HOME}/.local/share/thumbnailers/{,**} wl,
+ audit deny @{HOME}/.pki/ w,
+ audit deny @{HOME}/.pki/nssdb/{,*.so{,.[0-9]*}} wl,
+
+ # don't allow reading/updating of run control files
+ deny @{HOME}/.*rc mrk,
+ audit deny @{HOME}/.*rc wl,
+
+ # bash
+ deny @{HOME}/.bash* mrk,
+ audit deny @{HOME}/.bash* wl,
+ deny @{HOME}/.inputrc mrk,
+ audit deny @{HOME}/.inputrc wl,
+
+ # sh/dash/csh/tcsh/pdksh/zsh
+ deny @{HOME}/.{,z}profile* mrk,
+ audit deny @{HOME}/.{,z}profile* wl,
+ deny @{HOME}/.{,z}log{in,out} mrk,
+ audit deny @{HOME}/.{,z}log{in,out} wl,
+
+ deny @{HOME}/.zshenv mrk,
+ audit deny @{HOME}/.zshenv wl,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/private-files.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/private-files-strict b/straper/db/public/apparmor/apparmor.d/abstractions/private-files-strict
new file mode 100644
index 0000000..28d3ab1
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/private-files-strict
@@ -0,0 +1,30 @@
+# vim:syntax=apparmor
+# privacy-violations-strict contains additional rules for sensitive
+# files that you want to explicitly deny access
+
+ abi <abi/4.0>,
+
+ include <abstractions/private-files>
+
+ # potentially extremely sensitive files
+ audit deny @{HOME}/.aws/{,**} mrwkl,
+ audit deny @{HOME}/.gnupg/{,**} mrwkl,
+ audit deny @{HOME}/.ssh/{,**} mrwkl,
+ audit deny @{HOME}/.gnome2_private/{,**} mrwkl,
+ audit deny @{HOME}/.gnome2/ w,
+ audit deny @{HOME}/.gnome2/keyrings/{,**} mrwkl,
+ # don't allow access to any gnome-keyring modules
+ audit deny @{run}/user/[0-9]*/keyring** mrwkl,
+ audit deny @{HOME}/.mozilla/{,**} mrwkl,
+ audit deny @{HOME}/.config/ w,
+ audit deny @{HOME}/.config/chromium/{,**} mrwkl,
+ audit deny @{HOME}/.config/evolution/{,**} mrwkl,
+ audit deny @{HOME}/.evolution/{,**} mrwkl,
+ audit deny @{HOME}/.{,mozilla-}thunderbird/{,**} mrwkl,
+ audit deny @{HOME}/.kde{,4}/{,share/,share/apps/} w,
+ audit deny @{HOME}/.kde{,4}/share/apps/kmail{,2}/{,**} mrwkl,
+ audit deny @{HOME}/.kde{,4}/share/apps/kwallet/{,**} mrwkl,
+ audit deny @{HOME}/.local/share/kwalletd/{,**} mrwkl,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/private-files-strict.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/python b/straper/db/public/apparmor/apparmor.d/abstractions/python
new file mode 100644
index 0000000..9289df6
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/python
@@ -0,0 +1,54 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+# Copyright (C) 2009 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /{usr/,}bin/ r,
+ /{usr/,}bin/python{2.[4-7],3,3.[0-9],3.1[0-9]} r,
+
+ /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/**.{pyc,so,so.*[0-9]} mr,
+ /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/**.{egg,py,pth} r,
+ /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/ r,
+ /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/**/ r,
+ /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/*.dist-info/{METADATA,namespace_packages.txt} r,
+ /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/*.VERSION r,
+ /usr/{local/,}lib{,32,64}/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/*.egg-info/PKG-INFO r,
+ /usr/{local/,}lib{,32,64}/python3.{1,}[0-9]/lib-dynload/*.so mr,
+
+ # Site-wide configuration
+ /etc/python{2.[4-7],3.[0-9],3.1[0-9]}/** r,
+
+ # shared python paths
+ /usr/share/{pyshared,pycentral,python-support}/** r,
+ /{var,usr}/lib/{pyshared,pycentral,python-support}/** r,
+ /usr/lib/{pyshared,pycentral,python-support}/**.so mr,
+ /var/lib/{pyshared,pycentral,python-support}/**.pyc mr,
+ /usr/lib/python3/dist-packages/**.so mr,
+
+ # wx paths
+ /usr/lib/wx/python/*.pth r,
+
+ # python build configuration and headers
+ /usr/include/python{2.[4-7],3.[0-9],3.1[0-9]}*/pyconfig.h r,
+
+ owner @{HOME}/.local/lib/python{2.[4-7],3,3.[0-9],3.1[0-9]}/**.{pyc,so} mr,
+ owner @{HOME}/.local/lib/python{2.[4-7],3,3.[0-9],3.1[0-9]}/**.{egg,py,pth} r,
+ owner @{HOME}/.local/lib/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/ r,
+ owner @{HOME}/.local/lib/python{2.[4-7],3,3.[0-9],3.1[0-9]}/{site,dist}-packages/**/ r,
+
+ # Starting with Python 3.8, you can use the PYTHONPYCACHEPREFIX environment
+ # variable to define a cache directory for Python.
+ owner @{HOME}/.cache/Python/ rw,
+ owner @{HOME}/.cache/Python/** rw,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/python.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/qt5 b/straper/db/public/apparmor/apparmor.d/abstractions/qt5
new file mode 100644
index 0000000..d9d53ba
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/qt5
@@ -0,0 +1,27 @@
+# vim:syntax=apparmor
+# Common rules for Qt5-based applications
+
+ abi <abi/4.0>,
+
+ # Additional libraries
+
+ /usr/lib{,64,/@{multiarch}}/qt5/plugins/**.so mr,
+ /usr/lib{,64,/@{multiarch}}/qt5/qml/**.so mr,
+ /usr/lib{,64,/@{multiarch}}/qt5/qml/**.{qmlc,jsc} mr, # Precompiled QML/JavaScript modules
+
+ # System files
+
+ /etc/xdg/QtProject/qtlogging.ini r,
+ /usr/share/qt5/translations/*.qm r,
+ /usr/lib{,64,/@{multiarch}}/qt5/plugins/** r,
+ /usr/lib{,64,/@{multiarch}}/qt5/qml/** r,
+
+ # User files
+
+ owner @{HOME}/.config/QtProject/qtlogging.ini r,
+ owner @{HOME}/.config/QtProject.conf r, # common settings for QFileDialog, etc (application might need write access)
+ owner @{HOME}/.cache/qt_compose_cache_{little,big}_endian_* r, # for "platforminputcontexts" plugins
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/qt5.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/qt5-compose-cache-write b/straper/db/public/apparmor/apparmor.d/abstractions/qt5-compose-cache-write
new file mode 100644
index 0000000..a34178b
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/qt5-compose-cache-write
@@ -0,0 +1,13 @@
+# vim:syntax=apparmor
+# Allow writing cache for Qt5 "platforminputcontexts" plugins
+
+ abi <abi/4.0>,
+
+ # User files
+
+ owner @{HOME}/.cache/qt_compose_cache_{little,big}_endian_* rwl -> @{HOME}/.cache/#[0-9]*[0-9],
+ owner @{HOME}/.cache/#[0-9]*[0-9] rw, # QSaveFile (anonymous shared memory)
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/qt5-compose-cache-write.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/qt5-settings-write b/straper/db/public/apparmor/apparmor.d/abstractions/qt5-settings-write
new file mode 100644
index 0000000..fe592dc
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/qt5-settings-write
@@ -0,0 +1,16 @@
+# vim:syntax=apparmor
+# Allow writing shared settings for Qt-based applications
+
+ abi <abi/4.0>,
+
+ # User files
+
+ owner @{HOME}/.config/#[0-9]*[0-9] rw,
+ owner @{HOME}/.config/QtProject.conf rwl -> @{HOME}/.config/#[0-9]*[0-9],
+ # for temporary files like QtProject.conf.Aqrgeb
+ owner @{HOME}/.config/QtProject.conf.?????? rwl -> @{HOME}/.config/#[0-9]*[0-9],
+ owner @{HOME}/.config/QtProject.conf.lock rwk,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/qt5-settings-write.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/qt6 b/straper/db/public/apparmor/apparmor.d/abstractions/qt6
new file mode 100644
index 0000000..531f125
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/qt6
@@ -0,0 +1,27 @@
+# vim:syntax=apparmor
+# Common rules for Qt6-based applications
+
+ abi <abi/4.0>,
+
+ # Additional libraries
+
+ /usr/lib{,64,/@{multiarch}}/qt6/plugins/**.so mr,
+ /usr/lib{,64,/@{multiarch}}/qt6/qml/**.so mr,
+ /usr/lib{,64,/@{multiarch}}/qt6/qml/**.{qmlc,jsc} mr, # Precompiled QML/JavaScript modules
+
+ # System files
+
+ /etc/xdg/QtProject/qtlogging.ini r,
+ /usr/share/qt6/translations/*.qm r,
+ /usr/lib{,64,/@{multiarch}}/qt6/plugins/** r,
+ /usr/lib{,64,/@{multiarch}}/qt6/qml/** r,
+
+ # User files
+
+ owner @{HOME}/.config/QtProject/qtlogging.ini r,
+ owner @{HOME}/.config/QtProject.conf r, # common settings for QFileDialog, etc (application might need write access)
+ owner @{HOME}/.cache/qt_compose_cache_{little,big}_endian_* r, # for "platforminputcontexts" plugins
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/qt6.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/qt6-compose-cache-write b/straper/db/public/apparmor/apparmor.d/abstractions/qt6-compose-cache-write
new file mode 100644
index 0000000..0da3a0f
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/qt6-compose-cache-write
@@ -0,0 +1,13 @@
+# vim:syntax=apparmor
+# Allow writing cache for Qt6 "platforminputcontexts" plugins
+
+ abi <abi/4.0>,
+
+ # User files
+
+ owner @{HOME}/.cache/qt_compose_cache_{little,big}_endian_* rwl -> @{HOME}/.cache/#[0-9]*[0-9],
+ owner @{HOME}/.cache/#[0-9]*[0-9] rw, # QSaveFile (anonymous shared memory)
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/qt6-compose-cache-write.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/qt6-settings-write b/straper/db/public/apparmor/apparmor.d/abstractions/qt6-settings-write
new file mode 100644
index 0000000..acdbd72
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/qt6-settings-write
@@ -0,0 +1,16 @@
+# vim:syntax=apparmor
+# Allow writing shared settings for Qt6-based applications
+
+ abi <abi/4.0>,
+
+ # User files
+
+ owner @{HOME}/.config/#[0-9]*[0-9] rw,
+ owner @{HOME}/.config/QtProject.conf rwl -> @{HOME}/.config/#[0-9]*[0-9],
+ # for temporary files like QtProject.conf.Aqrgeb
+ owner @{HOME}/.config/QtProject.conf.?????? rwl -> @{HOME}/.config/#[0-9]*[0-9],
+ owner @{HOME}/.config/QtProject.conf.lock rwk,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/qt6-settings-write.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/recent-documents-write b/straper/db/public/apparmor/apparmor.d/abstractions/recent-documents-write
new file mode 100644
index 0000000..93c90ca
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/recent-documents-write
@@ -0,0 +1,15 @@
+# vim:syntax=apparmor
+# Allow updating recent documents
+
+ abi <abi/4.0>,
+
+ # User files
+
+ owner @{HOME}/.local/share/RecentDocuments/ rw,
+ owner @{HOME}/.local/share/RecentDocuments/#[0-9]* rw,
+ owner @{HOME}/.local/share/RecentDocuments/*.desktop rwl -> @{HOME}/.local/share/RecentDocuments/#[0-9]*,
+ owner @{HOME}/.local/share/RecentDocuments/*.lock rwk,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/recent-documents-write.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ruby b/straper/db/public/apparmor/apparmor.d/abstractions/ruby
new file mode 100644
index 0000000..2f35e67
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ruby
@@ -0,0 +1,26 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+# Copyright (C) 2009 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /usr/lib{,32,64}/ruby/1.[89]{.[0-9],}/ r,
+ /usr/lib{,32,64}/ruby/1.[89]{.[0-9],}/**.rb r,
+ /usr/lib{,32,64}/ruby/1.[89]{.[0-9],}/*-linux/**.so mr,
+
+ /usr/{,local/}lib{,32,64}/ruby/{site,vendor}_ruby/1.[89]{.[0-9],}/ r,
+ /usr/{,local/}lib{,32,64}/ruby/{site,vendor}_ruby/1.[89]{.[0-9],}/**.rb r,
+ /usr/{,local/}lib{,32,64}/ruby/{site,vendor}_ruby/1.[89]{.[0-9],}/*-linux/**.so mr,
+
+ /usr/lib{,32,64}/ruby/gems/1.[89]{.[0-9],}/ r,
+ /usr/lib{,32,64}/ruby/gems/1.[89]{.[0-9],}/** r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ruby.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/samba b/straper/db/public/apparmor/apparmor.d/abstractions/samba
new file mode 100644
index 0000000..4863720
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/samba
@@ -0,0 +1,42 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2009-2010 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /etc/samba/* r,
+ /etc/gnutls/config r,
+ /usr/lib*/ldb/*.so mr,
+ /usr/lib*/ldb2/*.so mr,
+ /usr/lib*/ldb2/modules/ldb/*.so mr,
+ /usr/lib*/samba/ldb/*.so mr,
+ /usr/share/samba/*.dat r,
+ /usr/share/samba/codepages/{lowcase,upcase,valid}.dat r,
+ /var/cache/samba/ w,
+ /var/cache/samba/lck/* rwk,
+ /var/lib/samba/** rwk,
+ /var/log/samba/cores/ rw,
+ /var/log/samba/cores/** rw,
+ /var/log/samba/* rw,
+ @{run}/{,lock/}samba/ w,
+ @{run}/{,lock/}samba/*.tdb rwk,
+ @{run}/{,lock/}samba/msg.{lock,sock}/ rwk,
+ @{run}/{,lock/}samba/msg.{lock,sock}/[0-9]* rwk,
+ /var/cache/samba/*.tdb rwk,
+ /var/cache/samba/msg.lock/ rwk,
+ /var/cache/samba/msg.lock/[0-9]* rwk,
+
+ # required for clustering
+ /var/lib/ctdb/** rwk,
+
+ deny capability net_admin, # noisy setsockopt() calls from systemd
+
+ # Include additions to the abstraction
+ include if exists <abstractions/samba.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/samba-rpcd b/straper/db/public/apparmor/apparmor.d/abstractions/samba-rpcd
new file mode 100644
index 0000000..fca361a
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/samba-rpcd
@@ -0,0 +1,30 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2022 SUSE LLC
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+# vim:syntax=apparmor
+
+# This file contains basic permissions for samba rpcd_xyz services
+
+ abi <abi/4.0>,
+
+ include <abstractions/base>
+ include <abstractions/nameservice>
+ include <abstractions/samba>
+
+ capability setgid,
+ capability setuid,
+
+ signal receive set=term peer=smbd,
+
+ @{PROC}/sys/kernel/core_pattern r,
+ owner @{PROC}/@{pid}/fd/ r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/samba-rpcd.d>
+
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/smbpass b/straper/db/public/apparmor/apparmor.d/abstractions/smbpass
new file mode 100644
index 0000000..0a7f60d
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/smbpass
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2009 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # libpam-smbpass/pam_smbpass.so permissions
+ /var/lib/samba/*.[lt]db rwk,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/smbpass.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/snap_browsers b/straper/db/public/apparmor/apparmor.d/abstractions/snap_browsers
new file mode 100644
index 0000000..b6ee4ee
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/snap_browsers
@@ -0,0 +1,39 @@
+profile snap_browsers {
+ include if exists <abstractions/snap_browsers.d>
+ include <abstractions/base>
+ include <abstractions/dbus-session-strict>
+
+ /etc/passwd r,
+ /etc/nsswitch.conf r,
+ /etc/fstab r,
+
+ # noisy
+ deny owner /run/user/[0-9]*/gdm/Xauthority r, # not needed on Ubuntu
+
+ /{,snap/core/[0-9]*/,snap/snapd/[0-9]*/}usr/bin/snap mrix, # re-exec
+ /{,snap/core/[0-9]*/,snap/snapd/[0-9]*/}usr/lib/snapd/info r,
+ /{,snap/core/[0-9]*/,snap/snapd/[0-9]*/}usr/lib/snapd/snapd r,
+ /{,snap/core/[0-9]*/,snap/snapd/[0-9]*/}usr/lib/snapd/snap-seccomp rPix,
+ /{,snap/core/[0-9]*/,snap/snapd/[0-9]*/}usr/lib/snapd/snap-confine Pix,
+ /var/lib/snapd/system-key r,
+ /run/snapd.socket rw,
+
+ @{PROC}/version r,
+ @{PROC}/cmdline r,
+ @{PROC}/sys/net/core/somaxconn r,
+ @{PROC}/sys/kernel/seccomp/actions_avail r,
+ @{PROC}/sys/kernel/random/uuid r,
+ owner @{PROC}/@{pid}/cgroup r,
+ owner @{PROC}/@{pid}/mountinfo r,
+ owner @{HOME}/.snap/auth.json r, # if exists, required
+
+ dbus send bus="session" path="/org/freedesktop/systemd1" interface="org.freedesktop.systemd1.Manager" member="StartTransientUnit" peer=(name="org.freedesktop.systemd1"),
+ dbus receive bus="session" path="/org/freedesktop/systemd1" interface="org.freedesktop.systemd1.Manager" member="JobRemoved",
+
+ /sys/kernel/security/apparmor/features/ r,
+
+ # allow launching official browser snaps.
+ /snap/{brave,chromium,firefox,opera}/[0-9]*/meta/{snap.yaml,hooks/} r,
+ /var/lib/snapd/sequence/{brave,chromium,firefox,opera}.json r,
+ /var/lib/snapd/inhibit/{brave,chromium,firefox,opera}.lock rk,
+}
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ssl_certs b/straper/db/public/apparmor/apparmor.d/abstractions/ssl_certs
new file mode 100644
index 0000000..3db31fa
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ssl_certs
@@ -0,0 +1,46 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2005 Novell/SUSE
+# Copyright (C) 2010-2011 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /etc/ca-certificates/{,**} r,
+ /etc/{,libre}ssl/ r,
+ /etc/{,libre}ssl/cert.pem r,
+ /etc/{,libre}ssl/certs/{,**} r,
+ /{etc,usr/share}/pki/bl[ao]cklist/{,*} r,
+ /{etc,usr/share}/pki/trust/{,*} r,
+ /{etc,usr/share}/pki/trust/{bl[oa]cklist,anchors}/{,**} r,
+ /usr/share/ca-certificates/{,**} r,
+ /usr/share/ssl/certs/ca-bundle.crt r,
+ /usr/local/share/ca-certificates/{,**} r,
+ /var/lib/ca-certificates/{,**} r,
+
+ # acmetool
+ /var/lib/acme/certs/*/chain r,
+ /var/lib/acme/certs/*/cert r,
+
+ # dehydrated
+ /{etc,var/lib}/dehydrated/certs/*/cert*.pem r,
+ /{etc,var/lib}/dehydrated/certs/*/chain*.pem r,
+ /{etc,var/lib}/dehydrated/certs/*/fullchain*.pem r,
+ /{etc,var/lib}/dehydrated/certs/*/ocsp*.der r,
+
+ # certbot
+ /etc/letsencrypt/archive/*/cert*.pem r,
+ /etc/letsencrypt/archive/*/chain*.pem r,
+ /etc/letsencrypt/archive/*/fullchain*.pem r,
+
+ /etc/certbot/archive/*/cert*.pem r,
+ /etc/certbot/archive/*/chain*.pem r,
+ /etc/certbot/archive/*/fullchain*.pem r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ssl_certs.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ssl_keys b/straper/db/public/apparmor/apparmor.d/abstractions/ssl_keys
new file mode 100644
index 0000000..21e4727
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ssl_keys
@@ -0,0 +1,35 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2009 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # private ssl permissions
+
+ # Just include the whole /etc/ssl directory if we should have access to
+ # private keys too
+ /etc/ssl/ r,
+ /etc/ssl/** r,
+
+ # acmetool
+ /var/lib/acme/live/* r,
+ /var/lib/acme/certs/** r,
+ /var/lib/acme/keys/** r,
+
+ # dehydrated
+ /{etc,var/lib}/dehydrated/certs/*/privkey*.pem r,
+
+ # certbot / letsencrypt
+ /etc/letsencrypt/archive/*/privkey*.pem r,
+
+ /etc/certbot/archive/*/privkey*.pem r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ssl_keys.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/svn-repositories b/straper/db/public/apparmor/apparmor.d/abstractions/svn-repositories
new file mode 100644
index 0000000..8a1c7b6
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/svn-repositories
@@ -0,0 +1,57 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # This little snippet should abstract the read/write access to a repository.
+ # it is intended to be included in profiles for svnserve/apache2 and maybe
+ # some repository viewers like trac/viewvc
+
+ # no hooks exec by default; please define whatever you need explicitly.
+
+ /srv/svn/**/conf/* r,
+ /srv/svn/**/format r,
+ /srv/svn/**/db/fs-type r,
+ /srv/svn/**/db/format r,
+
+ # FSFS
+ /srv/svn/**/db/ r,
+ /srv/svn/**/db/uuid r,
+ /srv/svn/**/db/write-lock rwl,
+ /srv/svn/**/db/current rwl,
+ /srv/svn/**/db/current*.tmp rwl,
+ /srv/svn/**/db/revs/ r,
+ /srv/svn/**/db/revs/* rw,
+ /srv/svn/**/db/revprops/ r,
+ /srv/svn/**/db/revprops/* rw,
+ /srv/svn/**/db/transactions/** rw,
+
+ # BDB
+ /srv/svn/**/db/DB_CONFIG r,
+ /srv/svn/**/db/__db.[0-9]* rwl,
+ /srv/svn/**/db/log.[0-9]* rwl,
+ /srv/svn/**/db/nodes rwl,
+ /srv/svn/**/db/revisions rwl,
+ /srv/svn/**/db/transactions rwl,
+ /srv/svn/**/db/copies rwl,
+ /srv/svn/**/db/changes rwl,
+ /srv/svn/**/db/representations rwl,
+ /srv/svn/**/db/strings rwl,
+ /srv/svn/**/db/uuids rwl,
+ /srv/svn/**/db/locks rwl,
+ /srv/svn/**/db/lock-tokens rwl,
+
+ # temp files
+ /tmp/apr* rwl,
+ /var/tmp/apr* rwl,
+ /tmp/report*.tmp rwl,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/svn-repositories.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/terminfo b/straper/db/public/apparmor/apparmor.d/abstractions/terminfo
new file mode 100644
index 0000000..c3391a0
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/terminfo
@@ -0,0 +1,10 @@
+ abi <abi/4.0>,
+
+ # Default hardcoded locations searched by ncurses for terminfo
+ @{HOME}/.terminfo/** r,
+ /etc/terminfo/** r,
+ /{usr/,}lib/terminfo/** r,
+ /usr/share/terminfo/** r,
+
+ # Local overrides for systems with TERMINFO env vars, etc.
+ include if exists <abstractions/terminfo.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/tor b/straper/db/public/apparmor/apparmor.d/abstractions/tor
new file mode 100644
index 0000000..0b6c08e
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/tor
@@ -0,0 +1,33 @@
+# vim:syntax=apparmor
+
+ #include <abstractions/base>
+ #include <abstractions/nameservice>
+ #include <abstractions/openssl>
+
+ network tcp,
+ network udp,
+
+ capability chown,
+ capability dac_read_search,
+ capability fowner,
+ capability fsetid,
+ capability setgid,
+ capability setuid,
+
+ /usr/bin/tor r,
+ /usr/sbin/tor r,
+
+ # Needed by obfs4proxy
+ /proc/sys/net/core/somaxconn r,
+
+ /proc/sys/kernel/random/uuid r,
+ /sys/devices/system/cpu/ r,
+ /sys/devices/system/cpu/** r,
+
+ /etc/tor/* r,
+ /usr/share/tor/** r,
+
+ /usr/bin/obfsproxy PUx,
+ /usr/bin/obfs4proxy Pix,
+
+ /usr/bin/snowflake-client Pix,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/transmission-common b/straper/db/public/apparmor/apparmor.d/abstractions/transmission-common
new file mode 100644
index 0000000..038e65e
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/transmission-common
@@ -0,0 +1,153 @@
+# vim:syntax=apparmor
+# LOGPROF-SUGGEST: no
+# Author: Daniel Richard G. <skunk@iSKUNK.ORG>
+
+ include <abstractions/base>
+ include <abstractions/freedesktop.org>
+ include <abstractions/nameservice>
+ include <abstractions/openssl>
+
+ network inet dgram,
+ network inet6 dgram,
+ network netlink dgram,
+ network inet stream,
+ network inet6 stream,
+
+ dbus (bind)
+ bus=session
+ name=com.transmissionbt.Transmission,
+ dbus (bind)
+ bus=session
+ name=com.transmissionbt.transmission_*,
+
+ dbus (receive)
+ bus=session
+ path=/ca/desrt/dconf/Writer/user
+ interface=ca.desrt.dconf.Writer
+ member=Notify,
+ dbus (send)
+ bus=session
+ path=/ca/desrt/dconf/Writer/user
+ interface=ca.desrt.dconf.Writer
+ member=Change
+ peer=(name=ca.desrt.dconf),
+
+ dbus (receive)
+ bus=accessibility
+ path=/org/a11y/atspi/accessible/root
+ interface=org.freedesktop.DBus.Properties
+ member=Set,
+ dbus (send)
+ bus=accessibility
+ path=/org/a11y/atspi/accessible/root
+ interface=org.a11y.atspi.Socket
+ member=Embed
+ peer=(name=org.a11y.atspi.Registry),
+ dbus (send)
+ bus=accessibility
+ path=/org/a11y/atspi/registry
+ interface=org.a11y.atspi.Registry
+ member=GetRegisteredEvents
+ peer=(name=org.a11y.atspi.Registry),
+ dbus (send)
+ bus=accessibility
+ path=/org/a11y/atspi/registry/deviceeventcontroller
+ interface=org.a11y.atspi.DeviceEventController
+ member={GetDeviceEventListeners,GetKeystrokeListeners}
+ peer=(name=org.a11y.atspi.Registry),
+
+ dbus (send)
+ bus={accessibility,session}
+ path=/org/freedesktop/DBus
+ interface=org.freedesktop.DBus
+ member={AddMatch,GetNameOwner,Hello,ReleaseName,RemoveMatch,RequestName,StartServiceByName}
+ peer=(name=org.freedesktop.DBus),
+ dbus (send)
+ bus=session
+ interface=org.freedesktop.DBus.Introspectable
+ path=/StatusNotifierWatcher
+ member=Introspect
+ peer=(name=org.kde.StatusNotifierWatcher),
+ dbus (send)
+ bus=session
+ interface=org.freedesktop.DBus.Properties
+ path=/StatusNotifierWatcher
+ member=Get
+ peer=(name=org.kde.StatusNotifierWatcher),
+ dbus (send)
+ bus=session
+ interface=org.freedesktop.DBus.Properties
+ path=/org/a11y/bus
+ member=Get
+ peer=(name=org.a11y.Bus),
+ dbus (send)
+ bus=system
+ interface=org.freedesktop.DBus.Properties
+ path=/org/freedesktop/hostname1
+ member=GetAll,
+
+ dbus (send)
+ bus=session
+ interface=org.freedesktop.Notifications
+ path=/org/freedesktop/Notifications
+ member={GetCapabilities,Notify},
+
+ dbus (send)
+ bus=session
+ path=/org/gtk/Private/RemoteVolumeMonitor
+ interface=org.gtk.Private.RemoteVolumeMonitor
+ member={IsSupported,List},
+ dbus (send)
+ bus=session
+ path=/org/gtk/vfs/Daemon
+ interface=org.gtk.vfs.Daemon
+ member={GetConnection,ListMonitorImplementations},
+ dbus (send)
+ bus=session
+ path=/org/gtk/vfs/mount/[1-9]*
+ interface=org.gtk.vfs.Mount
+ member={CreateFileMonitor,Enumerate,QueryInfo},
+ dbus (receive)
+ bus=session
+ path=/org/gtk/vfs/mounttracker
+ interface=org.gtk.vfs.MountTracker
+ member=Mounted,
+ dbus (send)
+ bus=session
+ path=/org/gtk/vfs/mounttracker
+ interface=org.gtk.vfs.MountTracker
+ member={ListMountableInfo,ListMounts2,LookupMount},
+
+ @{PROC}/sys/kernel/random/uuid r,
+
+ owner @{PROC}/@{pid}/mountinfo r,
+ owner @{PROC}/@{pid}/mounts r,
+
+ owner @{run}/user/@{uid}/gvfsd/socket-* rw,
+
+ @{etc_ro}/fstab r,
+
+ @{system_share_dirs}/hwdata/** r,
+ @{system_share_dirs}/lxqt/** r,
+
+ owner /tmp/tr_session_id_* rwk,
+
+ # allow a top-level directory listing
+ @{HOME}/ r,
+
+ owner @{HOME}/.cache/transmission/ w,
+ owner @{HOME}/.cache/transmission/** rw,
+ owner @{HOME}/.config/transmission/ w,
+ owner @{HOME}/.config/transmission/** rw,
+
+ owner @{HOME}/.config/lxqt/lxqt.conf r,
+
+ owner @{HOME}/@{XDG_DOWNLOAD_DIR}/ r,
+ owner @{HOME}/@{XDG_DOWNLOAD_DIR}/** rw,
+
+ # exclude these for now
+ deny /usr/share/thumbnailers/ r,
+ deny @{HOME}/.local/share/gvfs-metadata/** r,
+ deny @{HOME}/.config/lxqt/** rw,
+
+ include if exists <abstractions/transmission-common.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/trash b/straper/db/public/apparmor/apparmor.d/abstractions/trash
new file mode 100644
index 0000000..96d80ed
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/trash
@@ -0,0 +1,75 @@
+abi <abi/4.0>,
+
+# requires <tunables/home>
+
+ owner @{HOME}/.config/trashrc rw,
+ owner @{HOME}/.config/trashrc.lock rwk,
+ owner @{HOME}/.config/#[0-9]*[0-9] rwk,
+ owner @{HOME}/.config/trashrc.* rwl -> @{HOME}/.config/#[0-9]*[0-9],
+
+ owner @{run}/user/@{uid}/#[0-9]*[0-9] rw,
+ owner @{run}/user/@{uid}/trash.so*.[0-9].slave-socket rwl -> @{run}/user/@{uid}/#[0-9]*[0-9],
+
+ # Home trash location
+ owner @{HOME}/.local/share/Trash/ rw,
+ owner @{HOME}/.local/share/Trash/#[0-9]*[0-9] rw,
+ owner @{HOME}/.local/share/Trash/directorysizes{,.*} rwl -> @{HOME}/.local/share/Trash/#[0-9]*[0-9],
+ owner @{HOME}/.local/share/Trash/files/{,**} rw,
+ owner @{HOME}/.local/share/Trash/info/ rw,
+ owner @{HOME}/.local/share/Trash/info/*.trashinfo{,.*} rw,
+ owner @{HOME}/.local/share/Trash/expunged/ rw,
+ owner @{HOME}/.local/share/Trash/expunged/[0-9]* rw,
+ owner @{HOME}/.local/share/Trash/expunged/[0-9]*/ rw,
+ owner @{HOME}/.local/share/Trash/expunged/[0-9]*/** rw,
+
+ # Partitions' trash location when the admin creates the .Trash/ folder in the top lvl dir
+ owner /media/*/.Trash/ rw,
+ owner /media/*/.Trash/@{uid}/ rw,
+ owner /media/*/.Trash/@{uid}/#[0-9]*[0-9] rw,
+ owner /media/*/.Trash/@{uid}/directorysizes{,.*} rwl -> /media/*/.Trash/@{uid}/#[0-9]*[0-9],
+ owner /media/*/.Trash/@{uid}/files/{,**} rw,
+ owner /media/*/.Trash/@{uid}/info/ rw,
+ owner /media/*/.Trash/@{uid}/info/*.trashinfo{,.*} rw,
+ owner /media/*/.Trash/@{uid}/expunged/ rw,
+ owner /media/*/.Trash/@{uid}/expunged/[0-9]* rw,
+ owner /media/*/.Trash/@{uid}/expunged/[0-9]*/ rw,
+ owner /media/*/.Trash/@{uid}/expunged/[0-9]*/** rw,
+
+ # Partitions' trash location when the admin doesn't create the .Trash/ folder in the top lvl dir
+ owner /media/*/.Trash-@{uid}/ rw,
+ owner /media/*/.Trash-@{uid}/#[0-9]*[0-9] rw,
+ owner /media/*/.Trash-@{uid}/directorysizes{,.*} rwl -> /media/*/.Trash-@{uid}/#[0-9]*[0-9],
+ owner /media/*/.Trash-@{uid}/files/{,**} rw,
+ owner /media/*/.Trash-@{uid}/info/ rw,
+ owner /media/*/.Trash-@{uid}/info/*.trashinfo{,.*} rw,
+ owner /media/*/.Trash-@{uid}/expunged/ rw,
+ owner /media/*/.Trash-@{uid}/expunged/[0-9]* rw,
+ owner /media/*/.Trash-@{uid}/expunged/[0-9]*/ rw,
+ owner /media/*/.Trash-@{uid}/expunged/[0-9]*/** rw,
+
+ # Removable media's trash location when the admin creates the .Trash/ folder in the top lvl dir
+ owner /media/*/*/.Trash/ rw,
+ owner /media/*/*/.Trash/@{uid}/ rw,
+ owner /media/*/*/.Trash/@{uid}/#[0-9]*[0-9] rw,
+ owner /media/*/*/.Trash/@{uid}/directorysizes{,.*} rwl -> /media/*/*/.Trash/@{uid}/#[0-9]*[0-9],
+ owner /media/*/*/.Trash/@{uid}/files/{,**} rw,
+ owner /media/*/*/.Trash/@{uid}/info/ rw,
+ owner /media/*/*/.Trash/@{uid}/info/*.trashinfo{,.*} rw,
+ owner /media/*/*/.Trash/@{uid}/expunged/ rw,
+ owner /media/*/*/.Trash/@{uid}/expunged/[0-9]* rw,
+ owner /media/*/*/.Trash/@{uid}/expunged/[0-9]*/ rw,
+ owner /media/*/*/.Trash/@{uid}/expunged/[0-9]*/** rw,
+
+ # Removable media's trash location when the admin doesn't create the .Trash/ folder in the top lvl dir
+ owner /media/*/*/.Trash-@{uid}/ rw,
+ owner /media/*/*/.Trash-@{uid}/#[0-9]*[0-9] rw,
+ owner /media/*/*/.Trash-@{uid}/directorysizes{,.*} rwl -> /media/*/*/.Trash-@{uid}/#[0-9]*[0-9],
+ owner /media/*/*/.Trash-@{uid}/files/{,**} rw,
+ owner /media/*/*/.Trash-@{uid}/info/ rw,
+ owner /media/*/*/.Trash-@{uid}/info/*.trashinfo{,.*} rw,
+ owner /media/*/*/.Trash-@{uid}/expunged/ rw,
+ owner /media/*/*/.Trash-@{uid}/expunged/[0-9]* rw,
+ owner /media/*/*/.Trash-@{uid}/expunged/[0-9]*/ rw,
+ owner /media/*/*/.Trash-@{uid}/expunged/[0-9]*/** rw,
+
+ include if exists <abstractions/trash.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-bittorrent-clients b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-bittorrent-clients
new file mode 100644
index 0000000..36378e4
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-bittorrent-clients
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing graphical bittorrent clients in Ubuntu
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ /usr/bin/azureus Cxr -> sanitized_helper,
+ /usr/bin/bitstormlite Cxr -> sanitized_helper,
+ /usr/bin/btmaketorrentgui Cxr -> sanitized_helper,
+ /usr/bin/deluge{,-gtk,-console} Cxr -> sanitized_helper,
+ /usr/bin/gnome-btdownload Cxr -> sanitized_helper,
+ /usr/bin/kget Cxr -> sanitized_helper,
+ /usr/bin/ktorrent Cxr -> sanitized_helper,
+ /usr/bin/qbittorrent Cxr -> sanitized_helper,
+ /usr/bin/transmission{,-gtk,-qt,-cli} Cxr -> sanitized_helper,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-bittorrent-clients.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers
new file mode 100644
index 0000000..a85203e
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers
@@ -0,0 +1,41 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing access to graphical browsers in Ubuntu
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ /usr/bin/arora Cx -> sanitized_helper,
+ /usr/bin/dillo Cx -> sanitized_helper,
+ /usr/bin/Dooble Cx -> sanitized_helper,
+ /usr/bin/epiphany Cx -> sanitized_helper,
+ /usr/bin/epiphany-browser Cx -> sanitized_helper,
+ /usr/bin/epiphany-webkit Cx -> sanitized_helper,
+ /usr/lib/fennec-*/fennec Cx -> sanitized_helper,
+ /usr/bin/kazehakase Cx -> sanitized_helper,
+ /usr/bin/konqueror Cx -> sanitized_helper,
+ /usr/bin/midori Cx -> sanitized_helper,
+ /usr/bin/netsurf Cx -> sanitized_helper,
+ /usr/bin/seamonkey Cx -> sanitized_helper,
+ /usr/bin/sensible-browser Pixr,
+
+ /usr/bin/chromium{,-browser} Cx -> sanitized_helper,
+ /usr/lib{,64}/chromium{,-browser}/chromium{,-browser} Cx -> sanitized_helper,
+
+ # this should cover all firefox browsers and versions (including shiretoko
+ # and abrowser)
+ /usr/bin/firefox Cxr -> sanitized_helper,
+ /usr/lib{,64}/firefox*/firefox* Cx -> sanitized_helper,
+
+ # Iceweasel
+ /usr/bin/iceweasel Cxr -> sanitized_helper,
+ /usr/lib/iceweasel/iceweasel Cx -> sanitized_helper,
+
+ # some unpackaged, but popular browsers
+ /usr/lib/icecat-*/icecat Cx -> sanitized_helper,
+ /usr/bin/opera Cx -> sanitized_helper,
+ /opt/google/chrome{,-beta,-unstable}/google-chrome{,-beta,-unstable} Cx -> sanitized_helper,
+ /opt/brave.com/brave{,-beta,-dev,-nightly}/brave-browser{,-beta,-dev,-nightly} Cx -> sanitized_helper,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/java b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/java
new file mode 100644
index 0000000..00dc502
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/java
@@ -0,0 +1,120 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+ # Java plugin
+ owner @{HOME}/.java/deployment/deployment.properties k,
+ /etc/java-*/ r,
+ /etc/java-*/** r,
+ /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk/{,jre/}lib/*/IcedTeaPlugin.so mr,
+ /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk-{amd64,armel,armhf,i386,powerpc}/{,jre/}lib/*/IcedTeaPlugin.so mr,
+ /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk/{,jre/}bin/java cx -> browser_openjdk,
+ /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk-{amd64,armel,armhf,i386,powerpc}/{,jre/}bin/java cx -> browser_openjdk,
+ /usr/lib/jvm/java-*-sun-1.*/jre/bin/java{,_vm} cx -> browser_java,
+ /usr/lib/jvm/java-*-sun-1.*/jre/lib/*/libnp*.so cx -> browser_java,
+ /usr/lib/j2*-ibm/jre/bin/java cx -> browser_java,
+ owner /{,var/}run/user/*/icedteaplugin-*/ rw,
+ owner /{,var/}run/user/*/icedteaplugin-*/** rwk,
+
+ # Profile for the supported OpenJDK in Ubuntu. This doesn't require the
+ # unfortunate workarounds of the proprietary Javas, so have a separate
+ # profile.
+ profile browser_openjdk {
+ include <abstractions/base>
+ include <abstractions/fonts>
+ include <abstractions/gnome>
+ include <abstractions/kde>
+ include <abstractions/nameservice>
+ include <abstractions/ssl_certs>
+ include <abstractions/user-tmp>
+ include <abstractions/private-files-strict>
+
+ network inet stream,
+ network inet6 stream,
+ @{PROC}/@{pid}/net/if_inet6 r,
+ @{PROC}/@{pid}/net/ipv6_route r,
+
+ /etc/java-*/ r,
+ /etc/java-*/** r,
+ /etc/lsb-release r,
+ /etc/ssl/certs/java/* r,
+ /etc/timezone r,
+ /etc/writable/timezone r,
+
+ @{PROC}/@{pid}/ r,
+ @{PROC}/@{pid}/fd/ r,
+ @{PROC}/filesystems r,
+ @{sys}/devices/system/cpu/ r,
+ @{sys}/devices/system/cpu/** r,
+ /usr/share/** r,
+ /var/lib/dbus/machine-id r,
+
+ /usr/bin/env ix,
+ /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk/{,jre/}bin/java ix,
+ /usr/lib/jvm/java-[1-9]{,[0-9]}-openjdk-{amd64,armel,armhf,i386,powerpc}/{,jre/}bin/java ix,
+ /usr/lib/jvm/java-{6,7}-openjdk*/jre/lib/i386/client/classes.jsa m,
+
+ # Why would java need this?
+ deny /usr/bin/gconftool-2 x,
+
+ owner /{,var/}run/user/[0-9]*/icedteaplugin-*-*/[0-9]*-icedteanp-appletviewer-to-plugin rw,
+ owner /{,var/}run/user/[0-9]*/icedteaplugin-*-*/[0-9]*-icedteanp-plugin-{,debug-}to-appletviewer r,
+ owner @{HOME}/ r,
+ owner @{HOME}/** rwk,
+ }
+
+ # Profile for commercial Javas. These need workarounds to work right (eg
+ # Sun's forcing of an executable stack (LP: #535247)).
+ profile browser_java {
+ include <abstractions/base>
+ include <abstractions/fonts>
+ include <abstractions/gnome>
+ include <abstractions/kde>
+ include <abstractions/nameservice>
+ include <abstractions/ssl_certs>
+ include <abstractions/user-tmp>
+ include <abstractions/private-files-strict>
+
+ network inet stream,
+ network inet6 stream,
+ @{PROC}/@{pid}/net/if_inet6 r,
+ @{PROC}/@{pid}/net/ipv6_route r,
+ @{PROC}/loadavg r,
+
+ /etc/debian_version r,
+ /etc/java-*/ r,
+ /etc/java-*/** r,
+ /etc/lsb-release r,
+ /etc/ssl/certs/java/* r,
+ /etc/timezone r,
+ /etc/writable/timezone r,
+
+ @{PROC}/@{pid}/ r,
+ @{PROC}/@{pid}/fd/ r,
+ @{PROC}/filesystems r,
+ @{sys}/devices/system/cpu/ r,
+ @{sys}/devices/system/cpu/** r,
+ /usr/share/** r,
+ /var/lib/dbus/machine-id r,
+
+ /usr/bin/env ix,
+ /usr/lib/jvm/java-*-sun-1.*/jre/bin/java{,_vm} ix,
+ /usr/lib/jvm/java-*-sun-1.*/jre/lib/i386/client/classes.jsa m,
+ /usr/lib/j2*-ibm/jre/bin/java ix,
+
+ # noisy, can't write here anyway
+ deny /etc/.java/ w,
+ deny /etc/.java/** w,
+
+ deny /usr/bin/gconftool-2 x,
+
+ owner @{HOME}/ r,
+ owner @{HOME}/** rwk,
+
+ # These are seriously unfortunate, but required due to LP: #535247
+ /etc/passwd m,
+ owner @{HOME}/.java/**/cache/** m,
+ owner /tmp/** m,
+ /usr/lib{,32,64}/jvm/**/*.jar mr,
+ /usr/share/fonts/** m,
+ }
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/kde b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/kde
new file mode 100644
index 0000000..0447862
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/kde
@@ -0,0 +1,12 @@
+# vim:syntax=apparmor
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ include <abstractions/kde>
+ /usr/bin/kde4-config Cx -> sanitized_helper,
+
+ # https://bugs.kde.org/show_bug.cgi?id=397399
+ /usr/bin/plasma-browser-integration-host Cx -> sanitized_helper,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/mailto b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/mailto
new file mode 100644
index 0000000..c09b501
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/mailto
@@ -0,0 +1,11 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+ # for mailto:
+ include <abstractions/ubuntu-email>
+ include <abstractions/ubuntu-console-email>
+
+ # Terminals for using console applications. These abstractions should ideally
+ # have 'ix' to restrct access to what only firefox is allowed to do
+ include <abstractions/ubuntu-gnome-terminal>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/multimedia b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/multimedia
new file mode 100644
index 0000000..37fae70
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/multimedia
@@ -0,0 +1,51 @@
+# vim:syntax=apparmor
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ include <abstractions/X>
+
+ # Pulseaudio
+ /usr/bin/pulseaudio Pixr,
+
+ # Image viewers
+ /usr/bin/eog Cxr -> sanitized_helper,
+ /usr/bin/gimp* Cxr -> sanitized_helper,
+ /usr/bin/shotwell Cxr -> sanitized_helper,
+ /usr/bin/digikam Cxr -> sanitized_helper,
+ /usr/bin/gwenview Cxr -> sanitized_helper,
+
+ include <abstractions/ubuntu-media-players>
+ owner @{HOME}/.adobe/ w,
+ owner @{HOME}/.adobe/** rw,
+ owner @{HOME}/.macromedia/ w,
+ owner @{HOME}/.macromedia/** rw,
+ /opt/real/RealPlayer/mozilla/nphelix.so rm,
+ /usr/bin/lpstat Cxr -> sanitized_helper,
+ /usr/bin/lpr Cxr -> sanitized_helper,
+
+ # Bittorrent clients
+ include <abstractions/ubuntu-bittorrent-clients>
+
+ # Archivers
+ /usr/bin/ark Cxr -> sanitized_helper,
+ /usr/bin/file-roller Cxr -> sanitized_helper,
+ /usr/bin/xarchiver Cxr -> sanitized_helper,
+ /usr/local/lib{,32,64}/*.so* mr,
+
+ # News feed readers
+ include <abstractions/ubuntu-feed-readers>
+
+ # If we allow the above, nvidia based systems will also need this
+ include <abstractions/nvidia>
+
+ # Virus scanners
+ /usr/bin/clamscan Cx -> sanitized_helper,
+
+ # gxine (LP: #1057642)
+ /var/lib/xine/gxine.desktop r,
+
+ # For WebRTC camera access (LP: #1665535)
+ /dev/video[0-9]* rw,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/plugins-common b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/plugins-common
new file mode 100644
index 0000000..b4c4b37
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/plugins-common
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+ #
+ # Plugins/helpers
+ #
+ @{PROC}/@{pid}/fd/ r,
+ /usr/lib/** rm,
+ /{,usr/}bin/bash ixr,
+ /{,usr/}bin/dash ixr,
+ /{,usr/}bin/grep ixr,
+ /{,usr/}bin/sed ixr,
+ /usr/bin/m4 ixr,
+
+ # Since all the ubuntu-browsers.d abstractions need this, just include it
+ # here
+ include <abstractions/ubuntu-helpers>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/productivity b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/productivity
new file mode 100644
index 0000000..f778ce2
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/productivity
@@ -0,0 +1,26 @@
+# vim:syntax=apparmor
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ # Openoffice.org
+ /usr/bin/ooffice Cxr -> sanitized_helper,
+ /usr/bin/oocalc Cxr -> sanitized_helper,
+ /usr/bin/oodraw Cxr -> sanitized_helper,
+ /usr/bin/ooimpress Cxr -> sanitized_helper,
+ /usr/bin/oowriter Cxr -> sanitized_helper,
+ /usr/lib/openoffice/program/soffice Cxr -> sanitized_helper,
+
+ # LibreOffice
+ /usr/bin/libreoffice Cxr -> sanitized_helper,
+ /usr/bin/localc Cxr -> sanitized_helper,
+ /usr/bin/lodraw Cxr -> sanitized_helper,
+ /usr/bin/loimpress Cxr -> sanitized_helper,
+ /usr/bin/lowriter Cxr -> sanitized_helper,
+ /usr/lib/libreoffice/program/soffice Cxr -> sanitized_helper,
+
+ # PDFs
+ /usr/bin/evince Cxr -> sanitized_helper,
+ /usr/bin/okular Cxr -> sanitized_helper,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/text-editors b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/text-editors
new file mode 100644
index 0000000..6280b4d
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/text-editors
@@ -0,0 +1,16 @@
+# vim:syntax=apparmor
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ # Text editors (It's All Text [https://addons.mozilla.org/en-US/firefox/addon/4125])
+ /usr/bin/emacsclient.emacs-snapshot Cxr -> sanitized_helper,
+ /usr/bin/emacsclient.emacs2[2-9] Cxr -> sanitized_helper,
+ /usr/bin/emacs-snapshot-gtk Cxr -> sanitized_helper,
+ /usr/bin/gedit Cxr -> sanitized_helper,
+ /usr/bin/vim.gnome Cxr -> sanitized_helper,
+ /usr/bin/leafpad Cxr -> sanitized_helper,
+ /usr/bin/mousepad Cxr -> sanitized_helper,
+ /usr/bin/kate Cxr -> sanitized_helper,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration
new file mode 100644
index 0000000..8e73ec2
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration
@@ -0,0 +1,37 @@
+# vim:syntax=apparmor
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ # Apport
+ /usr/bin/apport-bug Cx -> sanitized_helper,
+
+ # Package installation
+ /usr/bin/apturl Cxr -> sanitized_helper,
+ /usr/share/software-center/software-center Cxr -> sanitized_helper,
+
+ # Input Methods
+ /usr/bin/scim Cx -> sanitized_helper,
+ /usr/bin/scim-bridge Cx -> sanitized_helper,
+
+ # File managers
+ /usr/bin/nautilus Cxr -> sanitized_helper,
+ /usr/bin/{t,T}hunar Cxr -> sanitized_helper,
+ /usr/bin/dolphin Cxr -> sanitized_helper,
+
+ # Themes
+ /usr/bin/gnome-appearance-properties Cxr -> sanitized_helper,
+
+ # Kubuntu
+ /usr/lib/mozilla/kmozillahelper Cxr -> sanitized_helper,
+
+ # Exo-aware applications
+ include <abstractions/exo-open>
+
+ # unity webapps integration. Could go in its own abstraction
+ owner /run/user/*/dconf/user rw,
+ owner @{HOME}/.local/share/unity-webapps/availableapps*.db rwk,
+ /usr/bin/debconf-communicate Cxr -> sanitized_helper,
+ owner @{HOME}/.config/libaccounts-glib/accounts.db rk,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration-xul b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration-xul
new file mode 100644
index 0000000..c1e4f7a
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/ubuntu-integration-xul
@@ -0,0 +1,8 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+ # firefox-notify
+ include <abstractions/python>
+ /usr/bin/python2.[4567] ix,
+ /usr/share/xul-ext/notify/**/download_complete_notify.py ix,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/user-files b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/user-files
new file mode 100644
index 0000000..fa73152
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-browsers.d/user-files
@@ -0,0 +1,31 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+ # Allow read to all files user has DAC access to and write access to all
+ # files owned by the user in $HOME.
+ @{HOME}/ r,
+ @{HOME}/** r,
+ owner @{HOME}/** w,
+
+ # Do not allow read and/or write to particularly sensitive/problematic files
+ include <abstractions/private-files>
+ audit deny @{HOME}/.ssh/{,**} mrwkl,
+ audit deny @{HOME}/.gnome2_private/{,**} mrwkl,
+ audit deny @{HOME}/.kde{,4}/{,share/,share/apps/} w,
+ audit deny @{HOME}/.kde{,4}/share/apps/kwallet/{,**} mrwkl,
+ audit deny @{HOME}/.local/share/kwalletd/{,**} mrwkl,
+
+ # Comment this out if using gpg plugin/addons
+ audit deny @{HOME}/.gnupg/{,**} mrwkl,
+
+ # Allow read to all files user has DAC access to and write for files the user
+ # owns on removable media and filesystems.
+ /media/** r,
+ /mnt/** r,
+ /srv/** r,
+ /net/** r,
+ owner /media/** w,
+ owner /mnt/** w,
+ owner /srv/** w,
+ owner /net/** w,
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-console-browsers b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-console-browsers
new file mode 100644
index 0000000..f055858
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-console-browsers
@@ -0,0 +1,23 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing access to text-only browsers in Ubuntu. These will
+# typically also need a terminal, so when using this abstraction, should also
+# do something like:
+#
+# include <abstractions/ubuntu-gnome-terminal>
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ /usr/bin/elinks Cx -> sanitized_helper,
+ /usr/bin/links Cx -> sanitized_helper,
+ /usr/bin/lynx.cur Cx -> sanitized_helper,
+ /usr/bin/netrik Cx -> sanitized_helper,
+ /usr/bin/w3m Cx -> sanitized_helper,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-console-browsers.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-console-email b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-console-email
new file mode 100644
index 0000000..dee7fee
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-console-email
@@ -0,0 +1,23 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing console email clients in Ubuntu. These will
+# typically also need a terminal, so when using this abstraction, should also
+# do something like:
+#
+# include <abstractions/ubuntu-gnome-terminal>
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ /usr/bin/alpine Cx -> sanitized_helper,
+ /usr/bin/citadel Cx -> sanitized_helper,
+ /usr/bin/cone Cx -> sanitized_helper,
+ /usr/bin/elmo Cx -> sanitized_helper,
+ /usr/bin/mutt Cx -> sanitized_helper,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-console-email.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-email b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-email
new file mode 100644
index 0000000..6ebc26e
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-email
@@ -0,0 +1,29 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing graphical email clients in Ubuntu
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ /usr/bin/anjal Cx -> sanitized_helper,
+ /usr/bin/balsa Cx -> sanitized_helper,
+ /usr/bin/claws-mail Cx -> sanitized_helper,
+ /usr/bin/evolution Cx -> sanitized_helper,
+ /usr/bin/geary Cx -> sanitized_helper,
+ /usr/bin/gnome-gmail Cx -> sanitized_helper,
+ /usr/lib/GNUstep/Applications/GNUMail.app/GNUMail Cx -> sanitized_helper,
+ /usr/bin/kmail Cx -> sanitized_helper,
+ /usr/bin/mailody Cx -> sanitized_helper,
+ /usr/bin/modest Cx -> sanitized_helper,
+ /usr/bin/seamonkey Cx -> sanitized_helper,
+ /usr/bin/sylpheed Cx -> sanitized_helper,
+ /usr/bin/tkrat Cx -> sanitized_helper,
+
+ /usr/bin/thunderbird Cx -> sanitized_helper, # used by gio-launch-desktop
+ /usr/lib/thunderbird*/thunderbird{,.sh,-bin} Cx -> sanitized_helper,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-email.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-feed-readers b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-feed-readers
new file mode 100644
index 0000000..9e2e116
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-feed-readers
@@ -0,0 +1,15 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing graphical news feed readers in Ubuntu
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ /usr/bin/akregator Cxr -> sanitized_helper,
+ /usr/bin/liferea-add-feed Cxr -> sanitized_helper,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-feed-readers.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-gnome-terminal b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-gnome-terminal
new file mode 100644
index 0000000..46318f4
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-gnome-terminal
@@ -0,0 +1,15 @@
+# vim:syntax=apparmor
+#
+# for allowing access to gnome-terminal
+#
+
+ abi <abi/4.0>,
+
+ include <abstractions/gnome>
+
+ # do not use ux or PUx here. Use at a minimum ix
+ /usr/bin/gnome-terminal ix,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-gnome-terminal.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-helpers b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-helpers
new file mode 100644
index 0000000..d5f2243
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-helpers
@@ -0,0 +1,98 @@
+# Lenient profile that is intended to be used when 'Ux' is desired but
+# does not provide enough environment sanitizing. This effectively is an
+# open profile that blacklists certain known dangerous files and also
+# does not allow any capabilities. For example, it will not allow 'm' on files
+# owned be the user invoking the program. While this provides some additional
+# protection, please use with care as applications running under this profile
+# are effectively running without any AppArmor protection. Use this profile
+# only if the process absolutely must be run (effectively) unconfined.
+#
+# Usage:
+# Because this abstraction defines the sanitized_helper profile, it must only
+# be included once. Therefore this abstraction should typically not be
+# included in other abstractions so as to avoid parser errors regarding
+# multiple definitions.
+#
+# Limitations:
+# 1. This does not work for root owned processes, because of the way we use
+# owner matching in the sanitized helper. We could do a better job with
+# this to support root, but it would make the policy harder to understand
+# and going unconfined as root is not desirable any way.
+#
+# 2. For this sanitized_helper to work, the program running in the sanitized
+# environment must open symlinks directly in order for AppArmor to mediate
+# it. This is confirmed to work with:
+# - compiled code which can load shared libraries
+# - python imports
+# It is known not to work with:
+# - perl includes
+# 3. Sanitizing ruby and java
+#
+# Use at your own risk. This profile was developed as an interim workaround for
+# LP: #851986 until AppArmor utilizes proper environment filtering.
+
+ abi <abi/4.0>,
+
+profile sanitized_helper {
+ include <abstractions/base>
+ include <abstractions/X>
+ include if exists <local/ubuntu-helpers>
+
+ # Allow all networking
+ network inet,
+ network inet6,
+
+ # Allow all DBus communications
+ include <abstractions/dbus-session-strict>
+ include <abstractions/dbus-strict>
+ dbus,
+
+ # Needed for Google Chrome
+ ptrace (trace) peer=**//sanitized_helper,
+
+ # Allow exec of anything, but under this profile. Allow transition
+ # to other profiles if they exist.
+ /{usr/,usr/local/,}{bin,sbin}/* Pixr,
+
+ # Allow exec of libexec applications in /usr/lib* and /usr/local/lib*
+ /usr/{,local/}lib*/{,**/}* Pixr,
+
+ # Allow exec of software-center scripts. We may need to allow wider
+ # permissions for /usr/share, but for now just do this. (LP: #972367)
+ /usr/share/software-center/* Pixr,
+
+ # Allow exec of texlive font build scripts (LP: #1010909)
+ /usr/share/texlive/texmf{,-dist}/web2c/{,**/}* Pixr,
+
+ # While the chromium and chrome sandboxes are setuid root, they only link
+ # in limited libraries so glibc's secure execution should be enough to not
+ # require the santized_helper (ie, LD_PRELOAD will only use standard system
+ # paths (man ld.so)).
+ /usr/lib/chromium-browser/chromium-browser-sandbox PUxr,
+ /usr/lib/chromium{,-browser}/chrome-sandbox PUxr,
+ /opt/google/chrome{,-beta,-unstable}/chrome-sandbox PUxr,
+ /opt/google/chrome{,-beta,-unstable}/google-chrome Pixr,
+ /opt/google/chrome{,-beta,-unstable}/chrome Pixr,
+ /opt/google/chrome{,-beta,-unstable}/chrome_crashpad_handler Pixr,
+ /opt/google/chrome{,-beta,-unstable}/{,**/}lib*.so{,.*} m,
+
+ # The same is needed for Brave
+ /opt/brave.com/brave{,-beta,-dev,-nightly}/chrome-sandbox PUxr,
+ /opt/brave.com/brave{,-beta,-dev,-nightly}/brave-browser{,-beta,-dev,-nightly} Pixr,
+ /opt/brave.com/brave{,-beta,-dev,-nightly}/brave Pixr,
+ /opt/brave.com/brave{,-beta,-dev,-nightly}/chrome_crashpad_handler Pixr,
+ /opt/brave.com/brave{,-beta,-dev,-nightly}/{,**/}lib*.so{,.*} m,
+
+ # Allow running snap applications
+ # https://bugs.launchpad.net/apparmor/+bug/2095872
+ /usr/bin/snap ux,
+
+ # Full access
+ / r,
+ /** rwkl,
+ /{,usr/,usr/local/}lib{,32,64}/{,**/}*.so{,.*} m,
+
+ # Dangerous files
+ audit deny owner /**/* m, # compiled libraries
+ audit deny owner /**/*.py* r, # python imports
+}
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-konsole b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-konsole
new file mode 100644
index 0000000..2a40e38
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-konsole
@@ -0,0 +1,22 @@
+# vim:syntax=apparmor
+#
+# for allowing access to konsole
+#
+
+ abi <abi/4.0>,
+
+ include <abstractions/consoles>
+ include <abstractions/kde>
+ capability sys_ptrace,
+ @{PROC}/@{pid}/status r,
+ @{PROC}/@{pid}/stat r,
+ @{PROC}/@{pid}/cmdline r,
+ /{,var/}run/utmp r,
+ /dev/ptmx rw,
+
+ # do not use ux or Ux here. Use at a minimum ix
+ /usr/bin/konsole ix,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-konsole.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-media-players b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-media-players
new file mode 100644
index 0000000..86ec80a
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-media-players
@@ -0,0 +1,65 @@
+# vim:syntax=apparmor
+#
+# abstraction for allowing access to media players in Ubuntu
+#
+# Users of this abstraction need to include the ubuntu-helpers abstraction
+# in the toplevel profile. Eg:
+# include <abstractions/ubuntu-helpers>
+
+ abi <abi/4.0>,
+
+ /usr/bin/amarok Cxr -> sanitized_helper,
+ /usr/bin/audacious2 Cxr -> sanitized_helper,
+ /usr/bin/audacity Cxr -> sanitized_helper,
+ /usr/bin/bangarang Cxr -> sanitized_helper,
+ /usr/bin/banshee Cxr -> sanitized_helper,
+ /usr/bin/banshee-1 Cxr -> sanitized_helper,
+ /usr/bin/decibel Cxr -> sanitized_helper,
+ /usr/bin/dragon Cxr -> sanitized_helper,
+ /usr/bin/esperanza Cxr -> sanitized_helper,
+ /usr/bin/exaile Cxr -> sanitized_helper,
+ /usr/bin/freevo Cxr -> sanitized_helper,
+ /usr/bin/gmerlin Cxr -> sanitized_helper,
+ /usr/bin/gxmms Cxr -> sanitized_helper,
+ /usr/bin/gxmms2 Cxr -> sanitized_helper,
+ /usr/bin/hornsey Cxr -> sanitized_helper,
+ /usr/bin/jlgui Cxr -> sanitized_helper,
+ /usr/bin/juk Cxr -> sanitized_helper,
+ /usr/bin/kaffeine Cxr -> sanitized_helper,
+ /usr/bin/listen Cxr -> sanitized_helper,
+ /usr/share/minirok/minirok.py Cxr -> sanitized_helper,
+
+ # mplayer
+ /etc/mplayerplug-in.conf r,
+ /usr/bin/gmplayer Cxr -> sanitized_helper,
+ /usr/bin/gnome-mplayer Cxr -> sanitized_helper,
+ /usr/bin/kmplayer Cxr -> sanitized_helper,
+ /usr/bin/mplayer Cxr -> sanitized_helper,
+ /usr/bin/smplayer Cxr -> sanitized_helper,
+
+ /usr/bin/muine Cxr -> sanitized_helper,
+ /usr/bin/potamus Cxr -> sanitized_helper,
+ /usr/bin/promoe Cxr -> sanitized_helper,
+ /usr/bin/qmmp Cxr -> sanitized_helper,
+ /usr/bin/quodlibet Cxr -> sanitized_helper,
+ /usr/bin/rhythmbox Cxr -> sanitized_helper,
+ /usr/bin/strange-quark Cxr -> sanitized_helper,
+ /usr/bin/swfdec-player Cxr -> sanitized_helper,
+ /usr/bin/timidity Cxr -> sanitized_helper,
+ /usr/lib/totem/** ixr,
+ /usr/bin/totem-gstreamer Cxr -> sanitized_helper,
+ /usr/bin/totem-xine Cxr -> sanitized_helper,
+ /usr/bin/totem Cxr -> sanitized_helper,
+ /usr/bin/vlc Cxr -> sanitized_helper,
+ /usr/bin/xfmedia Cxr -> sanitized_helper,
+ /usr/bin/xmms Cxr -> sanitized_helper,
+
+ # gnash
+ /usr/bin/gtk-gnash ixr,
+ /etc/gnashrc r,
+ /etc/gnashpluginrc r,
+ owner @{HOME}/.gnash/ rw,
+ owner @{HOME}/.gnash/** rw,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-media-players.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-base b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-base
new file mode 100644
index 0000000..c8305d8
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-base
@@ -0,0 +1,105 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2013-2014 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+#
+# Rules common to applications running under Unity 7
+#
+
+include <abstractions/gnome>
+
+include <abstractions/dbus-session-strict>
+include <abstractions/dbus-strict>
+
+ #
+ # Access required for connecting to/communication with Unity HUD
+ #
+ dbus (send)
+ bus=session
+ path="/com/canonical/hud",
+ dbus (send)
+ bus=session
+ interface="com.canonical.hud.*",
+ dbus (send)
+ bus=session
+ path="/com/canonical/hud/applications/*",
+ dbus (receive)
+ bus=session
+ path="/com/canonical/hud",
+ dbus (receive)
+ bus=session
+ interface="com.canonical.hud.*",
+
+ #
+ # Allow access for connecting to/communication with the appmenu
+ #
+ # dbusmenu
+ dbus (send)
+ bus=session
+ interface="com.canonical.AppMenu.*",
+ dbus (receive, send)
+ bus=session
+ path=/com/canonical/menu/**,
+
+ # gmenu
+ dbus (receive, send)
+ bus=session
+ interface=org.gtk.Actions,
+ dbus (receive, send)
+ bus=session
+ interface=org.gtk.Menus,
+
+ #
+ # Access required for using freedesktop notifications
+ #
+ dbus (send)
+ bus=session
+ path=/org/freedesktop/Notifications
+ member=GetCapabilities,
+ dbus (send)
+ bus=session
+ path=/org/freedesktop/Notifications
+ member=GetServerInformation,
+ dbus (send)
+ bus=session
+ path=/org/freedesktop/Notifications
+ member=Notify,
+ dbus (receive)
+ bus=session
+ member="Notify"
+ peer=(name="org.freedesktop.DBus"),
+ dbus (receive)
+ bus=session
+ path=/org/freedesktop/Notifications
+ member=NotificationClosed,
+ dbus (send)
+ bus=session
+ path=/org/freedesktop/Notifications
+ member=CloseNotification,
+
+ # accessibility
+ dbus (send)
+ bus=session
+ peer=(name=org.a11y.Bus),
+ dbus (receive)
+ bus=session
+ interface=org.a11y.atspi*,
+ dbus (receive, send)
+ bus=accessibility,
+
+ #
+ # Deny potentially dangerous access
+ #
+ deny dbus bus=session path=/com/canonical/[Uu]nity/[Dd]ebug**,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-unity7-base.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-launcher b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-launcher
new file mode 100644
index 0000000..d73edfc
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-launcher
@@ -0,0 +1,12 @@
+ abi <abi/4.0>,
+
+ #
+ # Access required for connecting to/communicating with the Unity Launcher
+ #
+ dbus (send)
+ bus=session
+ interface="com.canonical.Unity.LauncherEntry"
+ member="Update",
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-unity7-launcher.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-messaging b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-messaging
new file mode 100644
index 0000000..7e2ff3a
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-unity7-messaging
@@ -0,0 +1,12 @@
+ abi <abi/4.0>,
+
+ #
+ # Access required for connecting to/communicating with the Unity messaging
+ # indicator
+ #
+ dbus (receive, send)
+ bus=session
+ path="/com/canonical/indicator/messages/*",
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-unity7-messaging.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-xterm b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-xterm
new file mode 100644
index 0000000..932f85a
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/ubuntu-xterm
@@ -0,0 +1,18 @@
+# vim:syntax=apparmor
+#
+# for allowing access to xterm
+#
+
+ abi <abi/4.0>,
+
+ include <abstractions/consoles>
+ /dev/ptmx rw,
+ /{,var/}run/utmp r,
+ /etc/X11/app-defaults/XTerm r,
+
+ # do not use ux or Ux here. Use at a minimum ix
+ /usr/bin/xterm ix,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/ubuntu-xterm.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/user-download b/straper/db/public/apparmor/apparmor.d/abstractions/user-download
new file mode 100644
index 0000000..0f8e30a
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/user-download
@@ -0,0 +1,29 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+# Copyright (C) 2014 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+# Description: Where common programs should allow users to download
+# files
+
+ owner @{HOME}/tmp/** rwl,
+ owner @{HOME}/[dD]ownload{,s}/ r,
+ owner @{HOME}/[dD]ownload{,s}/** rwl,
+ owner @{HOME}/[^.]* rwl,
+ owner @{HOME}/@{XDG_DESKTOP_DIR}/ r,
+ owner @{HOME}/@{XDG_DESKTOP_DIR}/* rwl,
+ owner @{HOME}/@{XDG_DOWNLOAD_DIR}/ r,
+ owner @{HOME}/@{XDG_DOWNLOAD_DIR}/* rwl,
+ owner "@{HOME}/My Downloads/" r,
+ owner "@{HOME}/My Downloads/**" rwl,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/user-download.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/user-mail b/straper/db/public/apparmor/apparmor.d/abstractions/user-mail
new file mode 100644
index 0000000..366c7b2
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/user-mail
@@ -0,0 +1,28 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+# Copyright (C) 2014 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # location of user mail, spool and mboxes
+ owner @{HOME}/[mM]ail/ r,
+ owner @{HOME}/[mM]ail/** rwl,
+ owner @{HOME}/postponed* rwl,
+ /var/{,spool/}mail/ r,
+ owner /var/{,spool/}mail/* rwl,
+ owner @{HOME}/mbox.lock* rwl,
+ owner @{HOME}/mbox rw,
+ owner @{HOME}/inbox rw,
+ owner @{HOME}/.forward r,
+ owner @{HOME}/Maildir/ r,
+ owner @{HOME}/Maildir/** rwl,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/user-mail.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/user-manpages b/straper/db/public/apparmor/apparmor.d/abstractions/user-manpages
new file mode 100644
index 0000000..66a4013
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/user-manpages
@@ -0,0 +1,29 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # perhaps your configuration has users elsewhere, or you don't wish
+ # them to read their own manpages
+ owner @{HOME}/man/ r,
+ owner @{HOME}/man/** r,
+ owner @{HOME}/tmp/groff* rwl,
+
+ # kindof required
+ owner /tmp/groff* rwl,
+
+ # standard system manpages
+ /usr/local/share/man/man?/ r,
+ /usr/local/share/man/man?/** r,
+ /usr/{share,X11R6,local,kerberos}/man/** r,
+ /usr/man/** r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/user-manpages.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/user-tmp b/straper/db/public/apparmor/apparmor.d/abstractions/user-tmp
new file mode 100644
index 0000000..804135f
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/user-tmp
@@ -0,0 +1,25 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009-2010 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # per-user tmp directories
+ owner @{HOME}/tmp/** rwkl,
+ owner @{HOME}/tmp/ rw,
+
+ # global tmp directories
+ owner /var/tmp/** rwkl,
+ /var/tmp/ rw,
+ owner /tmp/** rwkl,
+ /tmp/ rw,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/user-tmp.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/user-write b/straper/db/public/apparmor/apparmor.d/abstractions/user-write
new file mode 100644
index 0000000..b94ce17
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/user-write
@@ -0,0 +1,26 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+# Copyright (C) 2014 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # per-user write directories
+ owner @{HOME}/ r,
+ owner @{HOME}/@{XDG_DESKTOP_DIR}/ r,
+ owner @{HOME}/@{XDG_DOCUMENTS_DIR}/ r,
+ owner @{HOME}/@{XDG_PUBLICSHARE_DIR}/ r,
+ owner @{HOME}/[^.]*/ rw,
+ owner @{HOME}/[^.]* rwl,
+ owner @{HOME}/@{XDG_DESKTOP_DIR}/** rwl,
+ owner @{HOME}/@{XDG_DOCUMENTS_DIR}/** rwl,
+ owner @{HOME}/@{XDG_PUBLICSHARE_DIR}/** rwl,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/user-write.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/video b/straper/db/public/apparmor/apparmor.d/abstractions/video
new file mode 100644
index 0000000..0495388
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/video
@@ -0,0 +1,20 @@
+# vim:syntax=apparmor
+# video device access
+
+ abi <abi/4.0>,
+
+ # System devices
+ @{sys}/class/video4linux/ r,
+ @{sys}/class/video4linux/** r,
+
+ owner /dev/shm/libv4l-* rw,
+ /dev/video[0-9]* rw,
+ @{sys}/devices/pci[0-9]*/**/usb[0-9]/**/video4linux/video[0-9]*/dev r,
+ @{sys}/devices/pci[0-9]*/**/usb[0-9]/**/{modalias,speed} r,
+
+ @{sys}/devices/virtual/dmi/id/sys_vendor r,
+ @{sys}/devices/virtual/dmi/id/product_{name,version} r,
+ @{sys}/devices/virtual/dmi/id/board_{vendor,name,version} r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/video.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/vulkan b/straper/db/public/apparmor/apparmor.d/abstractions/vulkan
new file mode 100644
index 0000000..aede375
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/vulkan
@@ -0,0 +1,26 @@
+# vim:syntax=apparmor
+# Vulkan access requirements
+
+ abi <abi/4.0>,
+
+ # System files
+ /dev/dri/ r, # libvulkan_radeon.so, libvulkan_intel.so (Mesa)
+ /etc/glvnd/egl_vendor.d/{,*.json} r,
+ /etc/vulkan/icd.d/{,*.json} r,
+ /etc/vulkan/{explicit,implicit}_layer.d/{,*.json} r,
+ # for drmGetMinorNameForFD() from libvulkan_intel.so (Mesa)
+ @{sys}/devices/pci[0-9]*/*/drm/ r,
+ @{sys}/devices/pci[0-9]*/*/drm/card[0-9]/gt_{max,min}_freq_mhz r, # anv_enumerate_physical_devices() from libvulkan_intel.so
+ @{sys}/devices/pci[0-9]*/*/drm/card[0-9]/metrics/ r, # anv_enumerate_physical_devices() from libvulkan_intel.so
+ @{sys}/devices/pci[0-9]*/*/drm/card[0-9]/metrics/????????-????-????-????-????????????/id r, # anv_enumerate_physical_devices() from libvulkan_intel.so
+ /usr/share/egl/egl_external_platform.d/{,*} r,
+ /usr/share/glvnd/egl_vendor.d/{,*} r,
+ /usr/share/vulkan/icd.d/{,*.json} r,
+ /usr/share/vulkan/{explicit,implicit}_layer.d/{,*.json} r,
+
+ # User files
+ owner @{HOME}/.local/share/vulkan/implicit_layer.d/{,*.json} r,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/vulkan.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/wayland b/straper/db/public/apparmor/apparmor.d/abstractions/wayland
new file mode 100644
index 0000000..27563d5
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/wayland
@@ -0,0 +1,21 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2016 intrigeri <intrigeri@boum.org>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ owner @{run}/user/*/wayland-[0-9]* rw,
+ owner @{run}/user/*/{mesa,mutter,sdl,wayland-cursor,weston,xwayland}-shared-* rw,
+
+ #For compositors based on wlroots
+ owner /dev/shm/wlroots-* rw,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/wayland.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/web-data b/straper/db/public/apparmor/apparmor.d/abstractions/web-data
new file mode 100644
index 0000000..f7849b8
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/web-data
@@ -0,0 +1,30 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2006 Novell/SUSE
+# Copyright (C) 2014 Canonical Ltd
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /srv/www/htdocs/ r,
+ /srv/www/htdocs/** r,
+ # virtual hosting
+ /srv/www/vhosts/ r,
+ /srv/www/vhosts/** r,
+ # mod_userdir
+ @{HOME}/public_html/ r,
+ @{HOME}/public_html/** r,
+
+ /srv/www/rails/*/public/ r,
+ /srv/www/rails/*/public/** r,
+
+ /var/www/html/ r,
+ /var/www/html/** r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/web-data.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/winbind b/straper/db/public/apparmor/apparmor.d/abstractions/winbind
new file mode 100644
index 0000000..9b5b9ab
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/winbind
@@ -0,0 +1,27 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # pam_winbindd
+ /tmp/.winbindd/pipe rw,
+ /var/lib/samba/winbindd_privileged/pipe rw,
+ @{run}/samba/winbindd_privileged/pipe rw,
+ /etc/samba/smb.conf r,
+ /etc/samba/dhcp.conf r,
+ /usr/lib*/samba/valid.dat r,
+ /usr/lib*/samba/upcase.dat r,
+ /usr/lib*/samba/lowcase.dat r,
+ /usr/share/samba/codepages/{lowcase,upcase,valid}.dat r,
+
+
+ # Include additions to the abstraction
+ include if exists <abstractions/winbind.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/wutmp b/straper/db/public/apparmor/apparmor.d/abstractions/wutmp
new file mode 100644
index 0000000..937ca77
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/wutmp
@@ -0,0 +1,27 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2002-2009 Novell/SUSE
+# Copyright (C) 2009 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # some services update wtmp, utmp, and lastlog with per-user
+ # connection information
+ /var/lib/wtmpdb/ r,
+ /var/lib/wtmpdb/wtmp.db{,-journal} rwlk,
+ /var/log/lastlog rwk,
+ /var/log/wtmp rwk,
+ /var/log/btmp rwk,
+ @{run}/utmp rwk,
+
+ # Some read the list of sessions from systemd
+ /run/systemd/sessions/ r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/wutmp.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/xad b/straper/db/public/apparmor/apparmor.d/abstractions/xad
new file mode 100644
index 0000000..5969f2c
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/xad
@@ -0,0 +1,30 @@
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2007 Novell/SUSE
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ /opt/novell/xad/lib/ r,
+ /opt/novell/xad/lib/lib*.so* mr,
+ /opt/novell/xad/lib/gss/*.so* mr,
+ /opt/novell/lib/libpthread_ext*.so* mr,
+ /opt/novell/lib/libccs2.so* mr,
+ /opt/novell/xad/lib64/ r,
+ /opt/novell/xad/lib64/lib*.so* mr,
+ /opt/novell/xad/lib64/gss/*.so* mr,
+ /opt/novell/lib64/libpthread_ext*.so* mr,
+ /opt/novell/lib64/libccs2.so* mr,
+ /etc/opt/novell/xad/krb5.conf r,
+ /etc/opt/novell/nici.cfg r,
+ /var/opt/novell/nici/* r,
+ /var/opt/novell/nici/*/ r,
+ /var/opt/novell/nici/*/* rw,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/xad.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/xdg-desktop b/straper/db/public/apparmor/apparmor.d/abstractions/xdg-desktop
new file mode 100644
index 0000000..19c3e62
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/xdg-desktop
@@ -0,0 +1,29 @@
+# vim:syntax=apparmor
+# ------------------------------------------------------------------
+#
+# Copyright (C) 2012 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2 of the GNU General Public
+# License published by the Free Software Foundation.
+#
+# ------------------------------------------------------------------
+
+ abi <abi/4.0>,
+
+ # Entries based on:
+ # http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
+
+ owner @{HOME}/.cache/ rw,
+
+ owner @{HOME}/.config/ rw,
+
+ owner @{HOME}/.local/ rw,
+ owner @{HOME}/.local/share/ rw,
+
+ # fallbacks
+ /usr/share/ r,
+ /usr/local/share/ r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/xdg-desktop.d>
diff --git a/straper/db/public/apparmor/apparmor.d/abstractions/xdg-open b/straper/db/public/apparmor/apparmor.d/abstractions/xdg-open
new file mode 100644
index 0000000..5e539e1
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/abstractions/xdg-open
@@ -0,0 +1,86 @@
+# vim:syntax=apparmor
+
+ abi <abi/4.0>,
+
+# This abstraction is designed to be used in a child profile to limit what
+# confined application can invoke via xdg-open helper. xdg-open abstraction
+# will allow to use gio-open, kde-open5 and other helpers of the different
+# desktop environments.
+#
+# Usage example:
+#
+# ```
+# profile foo /usr/bin/foo {
+# ...
+# /usr/bin/xdg-open rPx -> foo//xdg-open,
+# ...
+# } # end of main profile
+#
+# # out-of-line child profile
+# profile foo//xdg-open {
+# include <abstractions/xdg-open>
+#
+# # Enable a11y support if considered required by
+# # profile author for (rare) error message boxes.
+# include <abstractions/dbus-accessibility>
+#
+# # Enable gstreamer support if considered required by
+# # profile author for (rare) error message boxes.
+# include if exists <abstractions/gstreamer>
+#
+# # needed for ubuntu-* abstractions
+# include <abstractions/ubuntu-helpers>
+#
+# # Only allow to handle http[s]: and mailto: links
+# include <abstractions/ubuntu-browsers>
+# include <abstractions/ubuntu-email>
+#
+# # < add additional allowed applications here >
+# }
+# ```
+
+ include <abstractions/base>
+
+ # for opening with `exo-open`
+ include <abstractions/exo-open>
+
+ # for opening with `gio open <uri>`
+ include <abstractions/gio-open>
+
+ # for opening with gvfs-open (deprecated)
+ include <abstractions/gvfs-open>
+
+ # for opening with kde-open5
+ include <abstractions/kde-open5>
+
+ # Main executables
+
+ /{,usr/}bin/{b,d}ash mr,
+ /usr/bin/xdg-open r,
+
+ # Additional executables
+
+ /usr/bin/xdg-mime rix,
+ /{,usr/}bin/cut rix, # for xdg-mime
+ /{,usr/}bin/head rix, # for xdg-mime
+ /{,usr/}bin/sed rix, # for xdg-open
+ /{,usr/}bin/tr rix, # for xdg-mime
+ /{,usr/}bin/which rix, # for xdg-open
+ /{,usr/}bin/{grep,egrep} rix, # for xdg-open
+
+ # System files
+
+ /dev/pts/[0-9]* rw,
+ /dev/tty w,
+ /etc/gnome/defaults.list r, # for grep
+ /usr/share/applications/mimeinfo.cache r, # for grep
+ /usr/share/terminfo/s/screen r, # for bash on openSUSE
+ /usr/share/{,*/}applications/{,*.desktop} r, # for xdg-mime
+ /var/lib/menu-xdg/applications/ r, # for xdg-mime
+
+ # Usr files
+
+ owner @{HOME}/.local/share/applications/{,*.desktop} r,
+
+ # Include additions to the abstraction
+ include if exists <abstractions/xdg-open.d>