aboutsummaryrefslogtreecommitdiff
path: root/straper/db/public/apparmor/apparmor.d/abstractions/kde-open5
diff options
context:
space:
mode:
Diffstat (limited to 'straper/db/public/apparmor/apparmor.d/abstractions/kde-open5')
-rw-r--r--straper/db/public/apparmor/apparmor.d/abstractions/kde-open5105
1 files changed, 105 insertions, 0 deletions
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>