feat(abs): add the user-dirs abstraction.

This commit is contained in:
Alexandre Pujol 2025-08-28 21:22:22 +02:00
parent 4db65834a4
commit 544204e511
No known key found for this signature in database
GPG key ID: C5469996F0DF68EC
9 changed files with 25 additions and 12 deletions

View file

@ -17,6 +17,7 @@
include <abstractions/mime> include <abstractions/mime>
include <abstractions/qt5> include <abstractions/qt5>
include <abstractions/recently-used> include <abstractions/recently-used>
include <abstractions/user-dirs>
include <abstractions/wayland> include <abstractions/wayland>
include <abstractions/X-strict> include <abstractions/X-strict>
include <abstractions/xdg-desktop> include <abstractions/xdg-desktop>

View file

@ -12,6 +12,7 @@
include <abstractions/mime> include <abstractions/mime>
include <abstractions/qt5> include <abstractions/qt5>
include <abstractions/recently-used> include <abstractions/recently-used>
include <abstractions/user-dirs>
include <abstractions/wayland> include <abstractions/wayland>
include <abstractions/X-strict> include <abstractions/X-strict>
include <abstractions/xdg-desktop> include <abstractions/xdg-desktop>

View file

@ -12,6 +12,7 @@
include <abstractions/mime> include <abstractions/mime>
include <abstractions/qt5> include <abstractions/qt5>
include <abstractions/recently-used> include <abstractions/recently-used>
include <abstractions/user-dirs>
include <abstractions/wayland> include <abstractions/wayland>
include <abstractions/X-strict> include <abstractions/X-strict>
include <abstractions/xdg-desktop> include <abstractions/xdg-desktop>

View file

@ -0,0 +1,14 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
/etc/xdg/user-dirs.conf r,
/etc/xdg/user-dirs.defaults r,
owner @{user_config_dirs}/user-dirs.dirs r,
include if exists <abstractions/user-dirs.d>
# vim:syntax=apparmor

View file

@ -14,13 +14,13 @@ profile xdg-user-dirs-gtk-update @{exec_path} {
include <abstractions/bus/org.gtk.vfs.MountTracker> include <abstractions/bus/org.gtk.vfs.MountTracker>
include <abstractions/dconf-write> include <abstractions/dconf-write>
include <abstractions/desktop> include <abstractions/desktop>
include <abstractions/user-dirs>
@{exec_path} mr, @{exec_path} mr,
@{bin}/xdg-user-dirs-update Px, @{bin}/xdg-user-dirs-update Px,
owner @{user_config_dirs}/gtk-3.0/bookmarks* rw, owner @{user_config_dirs}/gtk-3.0/bookmarks* rw,
owner @{user_config_dirs}/user-dirs.dirs r,
owner @{user_config_dirs}/user-dirs.locale r, owner @{user_config_dirs}/user-dirs.locale r,
owner @{tmp}/dirs-@{rand6} rw, owner @{tmp}/dirs-@{rand6} rw,

View file

@ -9,13 +9,11 @@ include <tunables/global>
@{exec_path} = @{bin}/xdg-user-dirs-update @{exec_path} = @{bin}/xdg-user-dirs-update
profile xdg-user-dirs-update @{exec_path} { profile xdg-user-dirs-update @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/user-dirs>
include <abstractions/xdg-desktop> include <abstractions/xdg-desktop>
@{exec_path} mr, @{exec_path} mr,
/etc/xdg/user-dirs.conf r,
/etc/xdg/user-dirs.defaults r,
owner @{desktop_config_dirs}/ rw, owner @{desktop_config_dirs}/ rw,
owner @{desktop_config_dirs}/user-dirs.dirs{,*} rw, owner @{desktop_config_dirs}/user-dirs.dirs{,*} rw,
owner @{desktop_config_dirs}/user-dirs.locale rw, owner @{desktop_config_dirs}/user-dirs.locale rw,

View file

@ -10,11 +10,10 @@ include <tunables/global>
profile systemd-path @{exec_path} { profile systemd-path @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/consoles> include <abstractions/consoles>
include <abstractions/user-dirs>
@{exec_path} mr, @{exec_path} mr,
owner @{user_config_dirs}/user-dirs.dirs r,
include if exists <local/systemd-path> include if exists <local/systemd-path>
} }

View file

@ -9,12 +9,11 @@ include <tunables/global>
@{exec_path} = @{bin}/grim @{exec_path} = @{bin}/grim
profile grim @{exec_path} { profile grim @{exec_path} {
include <abstractions/base> include <abstractions/base>
include <abstractions/user-dirs>
include <abstractions/user-write-strict> include <abstractions/user-write-strict>
@{exec_path} mr, @{exec_path} mr,
owner @{user_config_dirs}/user-dirs.dirs r,
owner @{HOME}/@{int8}_**_grim.png w, owner @{HOME}/@{int8}_**_grim.png w,
owner /dev/shm/grim-@{rand6} rw, owner /dev/shm/grim-@{rand6} rw,

View file

@ -9,7 +9,6 @@ include <tunables/global>
@{exec_path} = @{bin}/spice-vdagent @{exec_path} = @{bin}/spice-vdagent
profile spice-vdagent @{exec_path} flags=(attach_disconnected) { profile spice-vdagent @{exec_path} flags=(attach_disconnected) {
include <abstractions/base> include <abstractions/base>
include <abstractions/consoles>
include <abstractions/audio-client> include <abstractions/audio-client>
include <abstractions/audio-server> include <abstractions/audio-server>
include <abstractions/bus-accessibility> include <abstractions/bus-accessibility>
@ -20,10 +19,12 @@ profile spice-vdagent @{exec_path} flags=(attach_disconnected) {
include <abstractions/bus/org.freedesktop.RealtimeKit1> include <abstractions/bus/org.freedesktop.RealtimeKit1>
include <abstractions/bus/org.gnome.Mutter.DisplayConfig> include <abstractions/bus/org.gnome.Mutter.DisplayConfig>
include <abstractions/bus/org.gtk.vfs.MountTracker> include <abstractions/bus/org.gtk.vfs.MountTracker>
include <abstractions/graphics> include <abstractions/consoles>
include <abstractions/fontconfig-cache-write>
include <abstractions/desktop> include <abstractions/desktop>
include <abstractions/fontconfig-cache-write>
include <abstractions/graphics>
include <abstractions/nameservice-strict> include <abstractions/nameservice-strict>
include <abstractions/user-dirs>
dbus send bus=session path=/org/freedesktop/portal/desktop dbus send bus=session path=/org/freedesktop/portal/desktop
interface=org.freedesktop.portal.Realtime interface=org.freedesktop.portal.Realtime
@ -38,7 +39,6 @@ profile spice-vdagent @{exec_path} flags=(attach_disconnected) {
@{exec_path} mr, @{exec_path} mr,
owner @{desktop_config_dirs}/user-dirs.dirs r, owner @{desktop_config_dirs}/user-dirs.dirs r,
owner @{user_config_dirs}/user-dirs.dirs r,
@{run}/spice-vdagentd/spice-vdagent-sock rw, @{run}/spice-vdagentd/spice-vdagent-sock rw,