aboutsummaryrefslogtreecommitdiff
path: root/straper/db/public/apparmor/apparmor.d/Xorg
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukasz.kasprzak@pm.me>2026-03-20 19:16:32 +0100
committerLukasz Kasprzak <lukasz.kasprzak@pm.me>2026-03-20 19:16:32 +0100
commit39711cf6c2ec5a3b4480dcb4800cc3802bda5bf2 (patch)
tree9221704f413398cfb5d5759083b1e7032566820e /straper/db/public/apparmor/apparmor.d/Xorg
parent6b59b75c3a294060dea66bdee16ffaf95ae92889 (diff)
downloadbin-39711cf6c2ec5a3b4480dcb4800cc3802bda5bf2.tar.gz
bin-39711cf6c2ec5a3b4480dcb4800cc3802bda5bf2.zip
feat: first fully successful run e2e on straper
Diffstat (limited to 'straper/db/public/apparmor/apparmor.d/Xorg')
-rw-r--r--straper/db/public/apparmor/apparmor.d/Xorg123
1 files changed, 123 insertions, 0 deletions
diff --git a/straper/db/public/apparmor/apparmor.d/Xorg b/straper/db/public/apparmor/apparmor.d/Xorg
new file mode 100644
index 0000000..34fe319
--- /dev/null
+++ b/straper/db/public/apparmor/apparmor.d/Xorg
@@ -0,0 +1,123 @@
+# vim:syntax=apparmor
+# Author: Daniel Richard G. <skunk@iSKUNK.ORG>
+
+# Related:
+# https://bugs.launchpad.net/bugs/1292324
+# https://github.com/canonical/lightdm/issues/18
+
+abi <abi/4.0>,
+
+include <tunables/global>
+
+# Note: attach_disconnected appears necessary in rootless mode
+profile Xorg /usr/lib/xorg/Xorg flags=(complain,attach_disconnected, complain) {
+ include <abstractions/base>
+ include <abstractions/dbus-strict>
+ include <abstractions/fonts>
+ include <abstractions/mesa>
+ include <abstractions/nameservice>
+ include <abstractions/vulkan>
+ include <abstractions/X>
+
+ capability dac_override,
+ capability ipc_owner,
+ capability perfmon,
+ capability setgid,
+ capability setuid,
+ capability sys_admin,
+ capability sys_nice,
+ capability sys_rawio,
+
+ network netlink raw,
+
+ signal (receive) set=(hup, term),
+ signal (send) set=(usr1),
+
+ unix (accept, bind, listen, receive, send) type=stream addr="@/tmp/.X11-unix/X[0-9]*",
+
+ dbus (send)
+ bus=system
+ path=/org/freedesktop/login1
+ interface=org.freedesktop.login1.Manager
+ member=GetSessionByPID
+ peer=(name=org.freedesktop.login1),
+
+ dbus (send)
+ bus=system
+ path=/org/freedesktop/login1/session/*
+ interface=org.freedesktop.login1.Session
+ member={PauseDeviceComplete,ReleaseControl,ReleaseDevice,TakeControl,TakeDevice}
+ peer=(name=org.freedesktop.login1),
+
+ dbus (receive)
+ bus=system
+ path=/org/freedesktop/login1/session/*
+ interface=org.freedesktop.login1.Session
+ member=PauseDevice,
+
+ /{,usr/}bin/{bash,dash,sh} ix,
+ /usr/bin/xkbcomp ix,
+
+ @{PROC}/cmdline r,
+ @{PROC}/@{pid}/cmdline r,
+ @{PROC}/ioports r,
+ @{PROC}/mtrr rw,
+
+ @{sys}/**/ r,
+ @{sys}/devices/** r,
+ @{sys}/module/** r,
+
+ @{sys}/devices/pci*/**/backlight/*/brightness rw,
+
+ # Display managers
+ @{run}/user/@{uid}/gdm/* r,
+ @{run}/lightdm/** r,
+ @{run}/lxdm/* r,
+ @{run}/sddm/* r,
+ @{run}/slim.auth r,
+ /var/lib/wdm/** r,
+ /var/lib/xdm/** r,
+
+ @{run}/nvidia-xdriver-* rw, # TODO: double-check
+ @{run}/udev/data/** r,
+
+ /dev/dri/card[0-9]* r,
+ /dev/fb0 rw,
+ /dev/input/event* rw,
+ /dev/tty[0-9]* rw,
+ /dev/vga_arbiter rw,
+
+ /etc/X11/** r,
+
+ owner /tmp/.tX[0-9]*-lock rw,
+ owner /tmp/.X[0-9]*-lock wl,
+ owner /tmp/serverauth.* r, # startx(1)
+ owner /tmp/server-[0-9]*.xkm rw,
+
+ /usr/lib/xorg/modules/ r,
+ /usr/lib/xorg/modules/** mr,
+ /usr/share/** r,
+
+ owner /var/lib/xkb/** rw,
+ owner /var/log/Xorg.pid-[1-9]*.log rw,
+ owner /var/log/Xorg.[0-9]*.log{,.old} rw,
+
+ # Rootless mode (gdm3, startx)
+ owner @{HOME}/.local/ w,
+ owner @{HOME}/.local/share/ w,
+ owner @{HOME}/.local/share/xorg/ w,
+ owner @{HOME}/.local/share/xorg/Xorg.pid-[1-9]*.log rw,
+ owner @{HOME}/.local/share/xorg/Xorg.[0-9]*.log{,.old} rw,
+ owner /var/lib/gdm*/.cache/mesa_shader_cache/ rw,
+ owner /var/lib/gdm*/.cache/mesa_shader_cache/** rwk,
+ owner /var/lib/gdm*/.local/share/xorg/Xorg.pid-[1-9]*.log rw,
+ owner /var/lib/gdm*/.local/share/xorg/Xorg.[0-9]*.log{,.old} rw,
+
+ # When running without a kernel mode-setting (KMS) driver, Xorg may need
+ # these additional permissions. DO NOT enable these unless necessary!
+ #nokms#/dev/mem rw,
+ #nokms#@{sys}/devices/pci[0-9]*/*/*/resource[0-9] w,
+
+ # Site-specific additions and overrides. See local/README for details.
+ include if exists <local/Xorg>
+}