Compare commits

..

980 commits

Author SHA1 Message Date
Alexandre Pujol
9db6bf4a35
feat(abs): add the themes abs.
fix #860
2025-09-16 20:42:35 +02:00
Alexandre Pujol
6a77b7ed8b
fix(profile): missing updated bus abstraction paths. 2025-09-14 21:07:43 +02:00
Alexandre Pujol
e6e0cc0710
fix(profile): missing updated bus abstraction paths. 2025-09-14 20:59:12 +02:00
Alexandre Pujol
b76fe7c342
refractor(profile): move org.gnome.SessionManager
This is the stage 1 of rewriting access to the session manager.
2025-09-14 20:57:37 +02:00
Alexandre Pujol
5492ab1c4e
feat(profile): rewrite the gjs profile. 2025-09-14 20:48:25 +02:00
Alexandre Pujol
d2e941163f
feat(abs): add mpris 2025-09-14 20:43:39 +02:00
Alexandre Pujol
8c66d39a1e
feat(profile): merge dpkg-script-* profile into dpkg-scripts. 2025-09-14 20:39:38 +02:00
Alexandre Pujol
5559670a37
feat(abs): add mediakeys 2025-09-14 20:37:47 +02:00
Alexandre Pujol
48aeefa0a3
fix: linting issue. 2025-09-14 20:13:37 +02:00
Alexandre Pujol
f3a4372966
refractor(profile): bus/org.bluez -> bus/system/org.bluez. 2025-09-14 20:08:51 +02:00
Alexandre Pujol
4526e96318
feat(abs): add the gtk-strict abs. 2025-09-14 20:03:22 +02:00
Alexandre Pujol
59bdb157cf
feat(abs): add the mediakeys abs. 2025-09-14 20:00:12 +02:00
Alexandre Pujol
efa28446f9
feat(abs): add bus-session to electron
As it is a layer 2 abstraction, we can safelly add it.
2025-09-14 19:23:43 +02:00
Alexandre Pujol
af6fbd2bfd
feat(profile): set accessibility use. 2025-09-14 19:15:43 +02:00
Alexandre Pujol
14ec69cd15
profile(abs): rewrite the way we manage accessibility
- Add some missing dbus access
- Split bus access in abstractions
- Use trough the new accessibility abs.
2025-09-14 18:38:02 +02:00
Alexandre Pujol
1fba94a197
feat(profile): update gvfs services to the abs changes. 2025-09-14 18:14:30 +02:00
Alexandre Pujol
784ced0da3
feat(abs): reorganise the gtk/gvfs abs. 2025-09-14 18:08:44 +02:00
Alexandre Pujol
5cae18e064
feat(abs): add the gtk-strict abstraction. 2025-09-14 16:45:54 +02:00
Alexandre Pujol
bf3b8345fc
refractor(abs): move gtk bus interfaces. 2025-09-14 16:26:28 +02:00
Alexandre Pujol
ff21c9157c
tests(profile): add common autopkgtest paths. 2025-09-14 15:34:32 +02:00
Alexandre Pujol
4609595c26
refractor(abs): common/apt -> apt. 2025-09-14 15:34:04 +02:00
Alexandre Pujol
d9ff4aecd7
build: add test build target. 2025-09-14 15:24:49 +02:00
Alexandre Pujol
b471f8359a
feat(profile): update cups-browsed 2025-09-14 13:14:18 +02:00
Alexandre Pujol
63c9c8cc2d
refractor(abs): move org.kde.kwalletd 2025-09-14 13:11:23 +02:00
Alexandre Pujol
2ceaa16d9a
feat(abs): rewrite the avahi abs, add avahi-observe 2025-09-14 13:06:06 +02:00
Alexandre Pujol
962b372390
fix(profile): qemu-ga path on opensuse. 2025-09-14 01:08:15 +02:00
Alexandre Pujol
8e73353cc8
feat(abs): add pcscd 2025-09-14 00:09:16 +02:00
Alexandre Pujol
939a2b7f4b
feat(abs): add upower-observe 2025-09-14 00:01:30 +02:00
Alexandre Pujol
e4b6e7e92b
feat(abs): add the devices-u2f abs. 2025-09-14 00:01:10 +02:00
Alexandre Pujol
94444077a8
feat(profile): update attachement for gnome-extension-ding 2025-09-13 23:53:05 +02:00
Alexandre Pujol
3c49755d18
refractor(abs): reorganize dbus abstraction (2)
- new upower-observe abstraction
2025-09-13 23:52:37 +02:00
Alexandre Pujol
34aa208ec9
refractor(abs): reorganize dbus abstraction (1) 2025-09-13 16:11:16 +02:00
Alexandre Pujol
4982ff104d
feat(profile): remove rules not needed anymore
Moved into the nvidia-strict abs.
2025-09-13 12:03:00 +02:00
Alexandre Pujol
bd487d1b66
fear(profile): remove profile for spectre-meltdown-checker. 2025-09-13 11:58:25 +02:00
Alexandre Pujol
31cbe5e2e9
fix(profile): revert 06d476c
fix #855
2025-09-13 11:33:24 +02:00
Alexandre Pujol
84f3f947cb
feat(abs): improve chromium common. 2025-09-13 01:11:18 +02:00
Alexandre Pujol
cd6bb7bd52
feat(abs): add NEEDS-VARIABLE to abs using variable.
Will be used by aa-logprof.
2025-09-13 01:09:31 +02:00
Alexandre Pujol
f199cfe84d
feat(abs): app: minor improvement to common app action. 2025-09-13 01:06:51 +02:00
Alexandre Pujol
ddfe75f23f
refractor(abs): move org.kde.StatusNotifierItem inside the session abs dir. 2025-09-13 01:05:02 +02:00
Alexandre Pujol
4bbe0a1a32
feat(abs): use the new secrets-service abstraction. 2025-09-13 00:55:32 +02:00
Alexandre Pujol
608ff3db0c
fix(abs): ColorManager peer name. 2025-09-13 00:50:01 +02:00
Alexandre Pujol
ad406da5de
feat(abs): add org.freedesktop.portal.Settings. 2025-09-13 00:49:08 +02:00
Alexandre Pujol
8c6b0ce33f
feat(profile): cleanup profiles using the new abs. 2025-09-13 00:47:50 +02:00
Alexandre Pujol
51bcdd5e14
feat(abs): add the input abs. 2025-09-13 00:43:40 +02:00
Alexandre Pujol
34cc1ab131
feat(abs): graphics: limit access to cpu sys value. 2025-09-13 00:42:10 +02:00
Alexandre Pujol
170575fbff
feat(abs): ensure graphics devices are in nvidia-strict. 2025-09-13 00:40:54 +02:00
Alexandre Pujol
26f905bcc2
feat(abs): X-strict: use tunables. 2025-09-13 00:38:34 +02:00
Alexandre Pujol
db347d13de
feat(abs): revisit and restrict the devices-usb abs. 2025-09-13 00:37:35 +02:00
Alexandre Pujol
7cf4719728
feat(abs): add the secrets-service abs. 2025-09-13 00:35:07 +02:00
Alexandre Pujol
122b004c2e
feat(abs): aff the uinput abs. 2025-09-13 00:29:29 +02:00
Alexandre Pujol
56948a54eb
feat(abs): reorganise the audio abstractions. 2025-09-13 00:03:20 +02:00
Alexandre Pujol
fda74f574f
chore(abs): add some device description. 2025-09-13 00:02:35 +02:00
doublez13
53501d8bf4 ssh: allow ssh to write to the kerberos CC when it picks up a ticket 2025-09-12 20:40:35 +02:00
doublez13
c67773947e ssh: allow ssh to authenticate to remote hosts using kerberos tickets 2025-09-12 20:40:35 +02:00
doublez13
1d2b271dfc ssh-keygen: allow execution of ssh-sk-helper
The ssh-sk-helper  profile was added last year but never hooked into the ssh-keygen profile.

This is needed for generating SSH keys that live on a yubikey.
2025-09-12 20:03:40 +02:00
doublez13
1540315d5c mdadm: include all config file locations
pulled from strings
2025-09-12 20:03:18 +02:00
doublez13
c4bad04fed mdadm
Make the linter happy :)
2025-09-12 20:03:18 +02:00
doublez13
0c90adb24d Update mdadm
There were lots of missing components of mdadm.

I have a few scripts that create and tear down MD RAID arrays.  I've ran them all and added the missing entries.

Note that mdadm has the ability to run in daemon mode and send mail when an array fails. That's why it requires all the network entries.
2025-09-12 20:03:18 +02:00
Alexandre Pujol
865bac4cc6
feat(abs): update org.freedesktop.ColorManager. 2025-09-11 23:59:07 +02:00
Alexandre Pujol
76c5586688
feat(abs): add org.freedesktop.IBus.Portal 2025-09-11 23:58:11 +02:00
Alexandre Pujol
8f0ee24000
feat(abs): add org.gtk.vfs.MountOperation 2025-09-11 23:57:10 +02:00
Alexandre Pujol
93c94836e2
feat(abs): add snapcraft dbus reference call. 2025-09-11 23:56:14 +02:00
Alexandre Pujol
fce5de8d19
feat(abs): update org.freedesktop.PackageKit 2025-09-11 23:55:29 +02:00
Alexandre Pujol
e09251d266
feat(abs): update org.freedesktop.PolicyKit1 2025-09-11 23:53:00 +02:00
Alexandre Pujol
445576fe1c
Merge branch 'main' of github.com:roddhjav/apparmor.d
* 'main' of github.com:roddhjav/apparmor.d:
  slurp review fixes
  fix slurp
2025-09-11 23:50:26 +02:00
Alexandre Pujol
69fcef01b7
feat(profile): add a large profile for mkosi. 2025-09-11 23:50:23 +02:00
Alexandre Pujol
e5012e381e
chore: pids means all pid. 2025-09-11 23:39:13 +02:00
Alexandre Pujol
4d7e03a9e2
feat(profile): add missing grep to locale-gen. 2025-09-11 23:34:44 +02:00
Alexandre Pujol
c7e999fe30
feat(profile): update freedesktop profiles. 2025-09-11 23:32:29 +02:00
Alexandre Pujol
d32fd03650
feat(profile): improve ibus-portal. 2025-09-11 23:30:30 +02:00
Alexandre Pujol
17eac0b62c
feat(abs): add missing dbus rule on org.freedesktop.DBus 2025-09-11 23:30:02 +02:00
Alexandre Pujol
1b97efa215
feat(abs): add org.gtk.Menus. 2025-09-11 23:27:15 +02:00
Alexandre Pujol
c7b99bb84e
feat(profile): update some core profiles. 2025-09-11 23:26:31 +02:00
Alexandre Pujol
4317538747
feat(profile): update ubuntu profiles. 2025-09-11 23:21:34 +02:00
Alexandre Pujol
e549863d4a
feat(profile): update systemd profiles. 2025-09-11 23:20:27 +02:00
Alexandre Pujol
98063fa771
feat(profile): rewrite the pacman profile. 2025-09-11 23:15:42 +02:00
Alexandre Pujol
ff8efaecd2
feat(profile): update arch profiles. 2025-09-11 23:11:25 +02:00
Alexandre Pujol
d0657d2c26
feat(profile): update network profiles. 2025-09-11 23:10:19 +02:00
Alexandre Pujol
fecb4dbca6
feat(profile): update flatpak profiles. 2025-09-11 23:06:35 +02:00
Alexandre Pujol
009fb9285d
feat(profile): update gvfsd profiles. 2025-09-11 23:05:34 +02:00
Alexandre Pujol
f69a7e7213
feat(profile): update gnome profiles. 2025-09-11 23:04:36 +02:00
Alexandre Pujol
394dc54ceb
feat(profile): update snap profiles. 2025-09-11 22:13:12 +02:00
Alexandre Pujol
b569d44703
feat(profile): update apt profiles. 2025-09-11 22:09:38 +02:00
Stoppedpuma
d9ecbdbe4b slurp review fixes 2025-09-08 17:14:49 +02:00
Stoppedpuma
aec8e413b3 fix slurp 2025-09-08 17:14:49 +02:00
Alexandre Pujol
ca1827ea12
fix: missing attach_disconnected in parrent profile while subprofile was using it. 2025-09-07 23:53:02 +02:00
Alexandre Pujol
f61f200427
build: ignore more abstraction for the server edition. 2025-09-07 23:52:11 +02:00
Alexandre Pujol
b45e1f36fe
build: add support for downstream project in some prepare tasks. 2025-09-07 22:59:00 +02:00
Alexandre Pujol
627700a152
build: set config for ubuntu 25.10 2025-09-07 22:07:31 +02:00
Alexandre Pujol
237daecedb
tests: remove prebuild main test.
- the same is tested in the build process
- unit test is done in the prebuild pkg
2025-09-07 22:07:03 +02:00
Alexandre Pujol
c4ebf8903e
tests(builder): cleanup build settings between tests. 2025-09-07 21:43:06 +02:00
Alexandre Pujol
6400bc725c
tests: update some unit tests to the last changes. 2025-09-07 21:20:32 +02:00
Alexandre Pujol
0ffc8f9fa6
fix: self raised linter issue. 2025-09-07 20:56:44 +02:00
doublez13
5c3c152257 Run kerberos utils in complain mode 2025-09-07 20:18:40 +02:00
doublez13
b1c0cfdab5 Use abstractions where possible 2025-09-07 20:18:40 +02:00
doublez13
9cac4eeb90 Be more specific on client keytab path 2025-09-07 20:18:40 +02:00
doublez13
cbc4f19b8b Be more specific on client keytab path 2025-09-07 20:18:40 +02:00
doublez13
e86f77fa4b Use abstractions where possible 2025-09-07 20:18:40 +02:00
doublez13
415bd4aa44 Use abstractions where possible 2025-09-07 20:18:40 +02:00
doublez13
c51f189ca0 Use abstractions where possible 2025-09-07 20:18:40 +02:00
doublez13
00f63f77e1 Formatting Fix 2025-09-07 20:18:40 +02:00
doublez13
7a610bb5fa Formatting Fix 2025-09-07 20:18:40 +02:00
doublez13
a4798a2f38 Add profile for klist 2025-09-07 20:18:40 +02:00
doublez13
4f4f5c464e Add profile for kdestroy 2025-09-07 20:18:40 +02:00
doublez13
0f0082fd5b Add profile for kinit 2025-09-07 20:18:40 +02:00
sbrantler
fda63da65e Add xfce-clipman 2025-09-07 20:17:36 +02:00
Alexandre Pujol
e370a66c5b
fix(profile): issues with stacking
fix #819
2025-09-07 20:10:51 +02:00
Alexandre Pujol
a87449268b
feat(profile): various improvement for Tumbleweed
fix #828
2025-09-07 20:05:19 +02:00
Alexandre Pujol
5fe9e0ee9e
feat(profile): support for Tumbleweed gs path.
see  #828
2025-09-07 19:52:40 +02:00
Alexandre Pujol
4771e56d88
feat(profile): git: allow transition to github cli.
fix #829
2025-09-07 19:49:59 +02:00
Alexandre Pujol
06d476ccaa
fix(profile): att on logind
fix #833
2025-09-07 19:48:54 +02:00
Alexandre Pujol
1defbbc416
fix(abs): tmp path for wine tmp data.
fix #836
2025-09-07 19:47:24 +02:00
Alexandre Pujol
2efdd6f527
feat(profile): improve ufw-init
fix #843
2025-09-07 19:43:44 +02:00
Alexandre Pujol
c239203e72
feat(abs): add the tpm abstraction. 2025-09-06 23:55:42 +02:00
Alexandre Pujol
618b1116f8
tests(check): add support for global exclusion. 2025-09-06 23:51:12 +02:00
Alexandre Pujol
e2f11d46b0
tests(check): make the script configurable.
Such that it can be used in downstream project with different folder structure.
2025-09-06 23:48:59 +02:00
Alexandre Pujol
8c33125b5e
build: add missing server build task. 2025-09-06 23:46:12 +02:00
Alexandre Pujol
64d71ffb6e
build: attach: ensure we don't recursivelly call ourself. 2025-09-06 23:45:08 +02:00
Alexandre Pujol
5484f84764
tests(build): add tests for the stacked-dbus build task. 2025-09-06 23:32:06 +02:00
Alexandre Pujol
c2ecc756b2
feat(abs): add the media-control abstraction 2025-09-06 23:30:52 +02:00
Alexandre Pujol
ec88fcbfcb
feat(abs): add the camera abstraction 2025-09-06 23:18:31 +02:00
Alexandre Pujol
ab7cba2da6
build: add early support for server version of the package. 2025-09-06 22:16:40 +02:00
Alexandre Pujol
2aead7e93b
build(arch): initial pkbuild for splited packages.
Note: it is not enabled yet.
2025-09-06 22:01:20 +02:00
Alexandre Pujol
470025c090
build(debian): update list of profile to hide.
Nb: we cannot use these profiles as they would break with apparmor.d profiles (they don't expect confined peer).
2025-09-06 19:39:18 +02:00
Alexandre Pujol
c7177eedde
doc: update documentation. 2025-09-06 15:16:25 +02:00
Alexandre Pujol
d86cf03dab
build(debian): post script must not fail. 2025-09-06 15:13:25 +02:00
Alexandre Pujol
a0f1c55ab4
doc: update roadmap. 2025-09-06 15:12:40 +02:00
Alexandre Pujol
5795114328
tests(packer): success on cloud-init failure. 2025-09-06 13:23:49 +02:00
Alexandre Pujol
d9df02f3f8
tests(packer): update opensuse images. 2025-09-06 13:22:39 +02:00
Alexandre Pujol
7963479dbc
build: various cleanup 2025-09-06 13:21:34 +02:00
Alexandre Pujol
e43d907808
chore: cosmetic. 2025-09-06 13:18:01 +02:00
JND94
4c84b572cd glxgears can't access X cookie 2025-09-03 10:02:44 +02:00
Jose Maldonado aka Yukiteru
237622f3ef rpcbind: update profile
rpcbind: update profile
2025-09-03 10:02:22 +02:00
Jose Maldonado aka Yukiteru
2c0b5405db firewall-applet: update profile 2025-09-03 10:01:39 +02:00
Stoppedpuma
2b07398cef flatpak-app ntsync 2025-09-03 09:57:03 +02:00
Alexandre Pujol
09c1f61bb7
build(debian): use deb-systemd-invoke and minor lintian fixes. 2025-09-01 15:54:28 +02:00
Alexandre Pujol
7c6f776757
build: set default att to "" when not enabled.
It fixes various issues with multiple / that are not collapsed in they canonical form in file rules

See https://gitlab.com/apparmor/apparmor/-/issues/450#note_2158840105
2025-09-01 15:12:30 +02:00
Alexandre Pujol
4f9d2703d4
build: separate the base-strict abs from the re-attach builder.
Enable the use of the base-strict abs on all setup.
2025-09-01 15:07:01 +02:00
Alexandre Pujol
a1ba00bec3
feat(profile): general profile update. 2025-08-31 23:00:13 +02:00
Alexandre Pujol
7cfff26ee2
fix(profile): abstraction not updated. 2025-08-31 22:46:52 +02:00
Alexandre Pujol
7eaae9e68c
fix(profile): wrong path in abstraction. 2025-08-31 22:25:57 +02:00
Alexandre Pujol
eee8241eb7
chore: cosmetic fixes. 2025-08-31 21:28:53 +02:00
Alexandre Pujol
bd7ae9bb56
chore: improve comment in type definition. 2025-08-31 21:23:40 +02:00
Alexandre Pujol
bd295d2a9d
refractor: move gtk dbus to they own abs. 2025-08-31 21:23:04 +02:00
Alexandre Pujol
458126e7d7
refractor(profile): add notification abs, move bus notifications. 2025-08-31 18:14:32 +02:00
Alexandre Pujol
5cc5a019d4
feat(profile): snap: add support for dev version. 2025-08-31 17:40:42 +02:00
Alexandre Pujol
9a4d878557
refractor(abs): add screensaver abs, move bus screensaver abs. 2025-08-31 17:38:00 +02:00
Alexandre Pujol
9ee2605026
tests(packer): simplify pkg install script. 2025-08-31 13:29:11 +02:00
Alexandre Pujol
a3426fef8c
feat: precise nvidia devices number. 2025-08-31 13:23:48 +02:00
Alexandre Pujol
45faf0eee0
fix(tunable): add missing lightdm_state_dirs tunable. 2025-08-30 19:57:09 +02:00
Alexandre Pujol
ac6eac1333
feat(profile): cleanup usage of mime abs. 2025-08-30 19:47:07 +02:00
Alexandre Pujol
f5e2572457
feat(profile): cleanup usage of icons abs. 2025-08-30 19:37:47 +02:00
Alexandre Pujol
4f1fddd2fb
feat(profile): use natural transition instead of systemd drop in config when possible.
As we can transition to the good profile naturally, do not use systemd for it.

This bypass the apparmor error:
`change_profile unprivileged unconfined converted to stacking`.

Note: we cannot do the same for dbus-system and dbus-session are they have the same binary.
2025-08-30 14:25:43 +02:00
Alexandre Pujol
d6ddbf104c
refractor(profile): always use the gschemas abstraction. 2025-08-30 12:56:05 +02:00
Alexandre Pujol
0ada92da32
refractor(abs): gsettings -> gschemas. 2025-08-30 12:35:04 +02:00
Alexandre Pujol
b5020eac89
tests(packer): remobe sudo alias 2025-08-30 12:22:01 +02:00
Alexandre Pujol
94f01c68f6
feat(tunable): update home dir for gdm & add desktop_state_dirs. 2025-08-30 11:48:11 +02:00
Alexandre Pujol
1122f28cac
tests(packer): cleanup package install process.
- apparmor restart is handled by the package
- it is a dev version, so it could fail.
2025-08-30 11:46:40 +02:00
Alexandre Pujol
2bae05d309
feat(abs): add varianttable to apt common. 2025-08-30 11:05:19 +02:00
Alexandre Pujol
a3fde24b3d
feat: add aliases for all coreutils. 2025-08-29 23:58:39 +02:00
Alexandre Pujol
57251820e1
build: improve support for aa 5.0 2025-08-29 20:48:01 +02:00
Alexandre Pujol
2bb42bfca2
build: add support for apparmor 5.0 (current master branch) 2025-08-29 20:14:12 +02:00
Alexandre Pujol
be0d481068
feat(profile): remove common/systemd from systemd-detect-virt. 2025-08-29 19:56:41 +02:00
Alexandre Pujol
5d1ef40877
feat(profile): add some missing proc access.
Due to recent changes in base-strict.
2025-08-29 19:55:42 +02:00
Alexandre Pujol
61d8cee932
feat(profile): ssh: cleanup. 2025-08-28 21:27:58 +02:00
Alexandre Pujol
c9813dc34f
feat(abs): improve dbus rules in open & common gnome abs. 2025-08-28 21:26:17 +02:00
Alexandre Pujol
5faca8461d
feat(abs): remove user-dirs from recently-used abs. 2025-08-28 21:23:59 +02:00
Alexandre Pujol
e50e87bd61
feat(abs): update base additions. 2025-08-28 21:23:14 +02:00
Alexandre Pujol
544204e511
feat(abs): add the user-dirs abstraction. 2025-08-28 21:22:22 +02:00
Alexandre Pujol
4db65834a4
feat(abs): glibc: restrict auxv maps and statux to owner. 2025-08-28 21:15:42 +02:00
Alexandre Pujol
81d020173d
feat(profile): general update. 2025-08-28 21:09:09 +02:00
Alexandre Pujol
cf96e7b1d0
feat(profile): smal snap improvements. 2025-08-28 00:39:28 +02:00
Alexandre Pujol
749ae318fc
feat(profile): aa uses word8 as bug files. 2025-08-28 00:35:35 +02:00
valoq
ec2c0b1c8e add default path for plain use 2025-08-27 23:55:09 +02:00
valoq
9a302147bd fix typo 2025-08-27 23:55:09 +02:00
valoq
06f1c0538e remove whitespace 2025-08-27 23:55:09 +02:00
valoq
aec7d41a25 add profiles for wayland screen capture tools 2025-08-27 23:55:09 +02:00
Stoppedpuma
eedbc2223c cider-review-fixes 2025-08-27 23:54:10 +02:00
Stoppedpuma
f5970fcc67 Remove tabs 2025-08-27 23:54:10 +02:00
Stoppedpuma
98034784e9 Add cider profile 2025-08-27 23:54:10 +02:00
Stoppedpuma
1d51b1436d Small documentation improvements 2025-08-27 10:30:56 +02:00
Alexandre Pujol
7ecc84d3b0
feat(tunable): add pp tunable, improve dbus tunables. 2025-08-25 00:04:15 +02:00
Alexandre Pujol
068d205e13
fix(prebuild): removce ineffectual assignment. 2025-08-25 00:02:12 +02:00
Alexandre Pujol
bc270954d4
feat(abs): add missing bus abs. 2025-08-24 23:53:12 +02:00
Alexandre Pujol
2fcf4c5011
ci(github): remove test now enabled by default. 2025-08-24 23:38:15 +02:00
Alexandre Pujol
7aae9f0dd7
build: add stacked-dbus builder
Resolve peer label variable in dbus rules. It create a full dbus rule by item in a variable when it is used a peer label.

For ubuntu with apparmor 4.1+

See https://gitlab.com/apparmor/apparmor/-/issues/537#note_2699570190
2025-08-24 23:30:54 +02:00
Alexandre Pujol
107820975d
feat(aa): add file kind. 2025-08-24 23:18:41 +02:00
Alexandre Pujol
157c365b26
fix(aa): ensure tokenization helper cleanup data. 2025-08-24 23:17:10 +02:00
Alexandre Pujol
7d1f885209
test(aa): add testdata for network rule. 2025-08-24 23:15:21 +02:00
Alexandre Pujol
43f30333c6
feat(aa): add support for prompt and priority rule. 2025-08-24 23:14:52 +02:00
Alexandre Pujol
3a17dd3310
feat(aa): add support for advanced network rule. 2025-08-24 23:08:41 +02:00
Alexandre Pujol
bfcf9f846c
build: support for unconfined flag. 2025-08-24 22:52:35 +02:00
Alexandre Pujol
9b7c1acb1b
build: cosmetic on build task name. 2025-08-24 22:52:08 +02:00
Alexandre Pujol
1724040229
feat(profile): various ubuntu based improvements. 2025-08-24 22:15:51 +02:00
Alexandre Pujol
f21fecc25a
feat(profile): update possible path for browserpass. 2025-08-24 22:07:09 +02:00
Alexandre Pujol
0fccbef52b
feat(profile): improve firefox profiles. 2025-08-24 22:06:34 +02:00
Alexandre Pujol
3061882809
feat(profile): update dbus rules for Ubuntu. 2025-08-24 22:04:07 +02:00
Alexandre Pujol
eb2def65a1
feat(abs): move some dbus abs to the session subfolder. 2025-08-24 21:47:00 +02:00
Alexandre Pujol
d6885803cb
fear(abs): update dbus core abs. 2025-08-24 21:32:51 +02:00
Alexandre Pujol
e9f0b77f2d
feat(profile): update btop. 2025-08-23 18:59:08 +02:00
Alexandre Pujol
7b0a78b1f1
feat(abs): improve dbus core abstractions 2025-08-23 17:42:49 +02:00
Alexandre Pujol
bfe35f254e
feat(profile): small improvement for snap. 2025-08-23 17:40:48 +02:00
Alexandre Pujol
15b8a6cea4
fix: linter issue. 2025-08-22 21:22:25 +02:00
Alexandre Pujol
53df40b8ac
feat(profile) gvfs: more dbus integration. 2025-08-22 20:40:36 +02:00
Alexandre Pujol
f18fc88253
feat(profile): kde: improve dbus rules. 2025-08-22 20:39:18 +02:00
Alexandre Pujol
cea9fd5614
feat(profile): improve kde integration
see #559
2025-08-22 20:37:48 +02:00
Alexandre Pujol
1506ae04d8
fix(profile): /att/**/ instead of @{att}/ 2025-08-22 20:03:19 +02:00
Alexandre Pujol
3b2f745bca
feat(abs): use the new core abs in desktop. 2025-08-22 19:25:00 +02:00
Alexandre Pujol
0817911b57
feat(abs): add more core abstractions
They will at term replace the freedesktop abstraction.
2025-08-22 18:48:36 +02:00
Alexandre Pujol
fbb1768aa6
feat(abs): add the amdgpu abstraction. 2025-08-22 18:46:26 +02:00
Alexandre Pujol
81636262f1
feat(abs): add the java abstraction. 2025-08-22 18:42:38 +02:00
Alexandre Pujol
b53e0b7d39
feat(abs): add the oneapi abs. 2025-08-22 18:30:44 +02:00
Alexandre Pujol
fb82d8d0d6
feat(profile): small gnome related improvement. 2025-08-22 18:27:22 +02:00
Alexandre Pujol
46d4207d71
feat(profile): makepkg: handle lsb_release and pager. 2025-08-22 18:22:59 +02:00
Alexandre Pujol
2d3831221a
feat(profile): update cups profiles. 2025-08-22 18:16:43 +02:00
Alexandre Pujol
ba217a261e
feat(profile): update flatpak profiles. 2025-08-22 18:15:38 +02:00
Alexandre Pujol
ec73d8349e
fix(profile): gnome access to chromium shared.
fix #806
2025-08-22 18:05:05 +02:00
Alexandre Pujol
e7a91b307e
fix(profile): fusermount with fsarchiver
fix #817
2025-08-22 18:01:31 +02:00
Alexandre Pujol
0f017048e4
fix(profile): fix att path in flatpak
fix #820
2025-08-22 17:57:40 +02:00
Alexandre Pujol
8b49f9ebf5
feat(profile): update telegram path
fix #821
2025-08-22 17:52:57 +02:00
curiosityseeker
ddee051279 Update gnome-boxes 2025-08-22 17:40:56 +02:00
curiosityseeker
b3dd09ce01 Update gnome-boxes
ALLOWED gnome-boxes open /usr/share/ladspa/rdf/ comm=gst-plugin-scan requested_mask=r denied_mask=r
ALLOWED gnome-boxes open /usr/share/ladspa/rdf/ladspa.rdfs comm=gst-plugin-scan requested_mask=r denied_mask=r
ALLOWED gnome-boxes open /usr/share/ladspa/rdf/ladspa-rubberband.rdf comm=gst-plugin-scan requested_mask=r denied_mask=r
ALLOWED gnome-boxes open @{sys}/devices/@{pci}/usb2/2-3/bConfigurationValue comm=gnome-boxes requested_mask=r denied_mask=r
ALLOWED gnome-boxes open @{sys}/devices/@{pci}/usb1/1-6/1-6.2/bConfigurationValue comm=gnome-boxes requested_mask=r denied_mask=r
ALLOWED gnome-boxes open @{sys}/devices/@{pci}/usb1/1-14/bConfigurationValue comm=gnome-boxes requested_mask=r denied_mask=r
ALLOWED gnome-boxes open @{sys}/devices/@{pci}/usb1/1-13/bConfigurationValue comm=gnome-boxes requested_mask=r denied_mask=r
2025-08-22 17:40:56 +02:00
curiosityseeker
2c64ab91cb Update grub-mkrelpath 2025-08-22 17:40:39 +02:00
curiosityseeker
4d15570ff1 Update grub-mkrelpath
ALLOWED grub-mkrelpath open /tmp/grub-btrfs.byRQTjiteL/@_backup_2025-08-20T16:43@{busname}.488Z/boot/ comm=grub-mkrelpath requested_mask=r denied_mask=r
ALLOWED grub-mkrelpath open /tmp/grub-btrfs.byRQTjiteL/@_backup_2025-08-18T13:49@{busname}.739Z/boot/ comm=grub-mkrelpath requested_mask=r denied_mask=r
ALLOWED grub-mkrelpath open /tmp/grub-btrfs.byRQTjiteL/@_backup_2025-04-11T11@{busname}:58.643Z/boot/ comm=grub-mkrelpath requested_mask=r denied_mask=r
ALLOWED grub-mkrelpath open /tmp/grub-btrfs.byRQTjiteL/@_backup_@{int16}5/boot/ comm=grub-mkrelpath requested_mask=r denied_mask=r
ALLOWED grub-mkrelpath open /tmp/grub-btrfs.Xj00SFNAa3/@_backup_2025-08-20T16:43@{busname}.488Z/boot/ comm=grub-mkrelpath requested_mask=r denied_mask=r
ALLOWED grub-mkrelpath open /tmp/grub-btrfs.Xj00SFNAa3/@_backup_2025-08-18T13:49@{busname}.739Z/boot/ comm=grub-mkrelpath requested_mask=r denied_mask=r
ALLOWED grub-mkrelpath open /tmp/grub-btrfs.Xj00SFNAa3/@_backup_2025-04-11T11@{busname}:58.643Z/boot/ comm=grub-mkrelpath requested_mask=r denied_mask=r
ALLOWED grub-mkrelpath open /tmp/grub-btrfs.Xj00SFNAa3/@_backup_@{int16}5/boot/ comm=grub-mkrelpath requested_mask=r denied_mask=r
2025-08-22 17:40:39 +02:00
curiosityseeker
5d7646d9cc Update mandb
ALLOWED mandb exec @{bin}/bzip2 -> mandb//null-@{bin}/bzip2 comm=mandb requested_mask=x denied_mask=x
ALLOWED mandb//null-@{bin}/bzip2 file_inherit /usr/share/man/man8/grub-btrfsd.8.bz2 comm=bzip2 requested_mask=r denied_mask=r
ALLOWED mandb//null-@{bin}/bzip2 file_inherit /var/cache/man/52062 comm=bzip2 requested_mask=wr denied_mask=wr
ALLOWED mandb//null-@{bin}/bzip2 file_mmap @{bin}/bzip2 comm=bzip2 requested_mask=r denied_mask=r
ALLOWED mandb//null-@{bin}/bzip2 getattr /usr/share/man/man8/grub-btrfsd.8.bz2 comm=bzip2 requested_mask=r denied_mask=r
ALLOWED mandb//null-@{bin}/bzip2 file_inherit /usr/share/man/man8/grub-btrfs.8.bz2 comm=bzip2 requested_mask=r denied_mask=r
ALLOWED mandb//null-@{bin}/bzip2 getattr /usr/share/man/man8/grub-btrfs.8.bz2 comm=bzip2 requested_mask=r denied_mask=r
2025-08-22 14:42:20 +02:00
Alexandre Pujol
f3d209e42a
feat(profile): ensure nautilus can access root files. 2025-08-19 22:58:46 +02:00
Alexandre Pujol
c806ec44eb
feat(profile): update virt profiles. 2025-08-19 22:56:07 +02:00
Alexandre Pujol
5e5fde7741
feat(abs): add the sqlite abstraction. 2025-08-19 21:43:20 +02:00
Alexandre Pujol
24f629d326
fix(profile): few fixes related to reattached paths.
See #816
2025-08-17 21:43:23 +02:00
Alexandre Pujol
952c4e91a1
feat(aa): add aa --enforce and aa --complain.
These are small dev tools, not installed by default.
2025-08-17 20:50:00 +02:00
Alexandre Pujol
7f9664c51f
feat(profile): add profile for mpris-proxy. 2025-08-17 17:51:10 +02:00
Alexandre Pujol
ba16e3c340
feat(profile): cleanup log from well known programs. 2025-08-17 17:20:08 +02:00
Alexandre Pujol
4dba131fb3
feat(profile): parser: move sysctl to its own subprofile. 2025-08-17 17:16:24 +02:00
Alexandre Pujol
7e79d5abef
feat(profile): improve support for ubuntu & kubuntu. 2025-08-17 17:15:24 +02:00
Alexandre Pujol
523522dd1d
feat(profile): improve kde profiles. 2025-08-17 17:05:38 +02:00
Alexandre Pujol
edc2755d61
feat(profile): kde: add initial dbus definition. 2025-08-17 17:03:17 +02:00
Alexandre Pujol
58aea2b00d
build: update flag manifest. 2025-08-17 11:59:06 +02:00
Alexandre Pujol
4e70cb4c91
fix(profile): workaround in apparmor issue for attached path.
See https://gitlab.com/apparmor/apparmor/-/issues/450
Fix #815
2025-08-17 11:57:36 +02:00
Alexandre Pujol
52e9ae9fd6
fix(profile): define missing domain. 2025-08-17 00:29:21 +02:00
Alexandre Pujol
9110a70124
tests: add debian/ubuntu based tests images.
Also some cleanup of tests resources.
2025-08-17 00:16:31 +02:00
Alexandre Pujol
7c427aaae6
build: do not overwrite steam. 2025-08-17 00:10:34 +02:00
Alexandre Pujol
d3507e24b9
fix(build): ensure post install script do not fail. 2025-08-17 00:09:28 +02:00
Alexandre Pujol
e55ace4e0a
fix(profile): issue with re-attached paths
- Add missing att on some profiles
- Fix alias / -> //
- Fix aa-log att variable resolution

fix #813 #814
2025-08-17 00:07:53 +02:00
Alexandre Pujol
5ee999536c
feat(abs): reorganize the electron & chromium abs. 2025-08-16 19:23:33 +02:00
Alexandre Pujol
f5a4acd37e
feat(abs): graphics: add cpu_capacity 2025-08-16 19:13:59 +02:00
Alexandre Pujol
ca24da7a2a
build(debian): improve post install scripts. 2025-08-15 19:49:43 +02:00
Alexandre Pujol
e805509803
build: opensuse: improve post install script. 2025-08-15 19:42:44 +02:00
Alexandre Pujol
be341a4ca8
feat(profile): syncthing 2.0 uses sqlite. 2025-08-15 18:43:21 +02:00
Alexandre Pujol
c0de5ff71d
ci: also run the integration tests on manual run. 2025-08-15 18:38:46 +02:00
Alexandre Pujol
b0c661931a
fix(build): fsp regex. 2025-08-15 18:23:05 +02:00
Alexandre Pujol
483c0c107d
build: enable re-attach disconnected path by default
Ignored on Ubuntu 25.04 and abi3.0
2025-08-15 18:22:07 +02:00
Alexandre Pujol
c51943934e
feat(tunable): add x64 to @{arch} 2025-08-15 18:04:35 +02:00
Alexandre Pujol
c29b4ba536
feat(profile): various security/linter improvement
- Ignore some rule from the linter
- Move some bin to subprofile
2025-08-15 18:03:36 +02:00
Alexandre Pujol
aafcd1c861
feat(profile): simplify ssh home path. 2025-08-15 17:21:24 +02:00
Alexandre Pujol
3d329fdef8
feat(profile): minor profiles improvement. 2025-08-15 11:39:35 +02:00
Alexandre Pujol
6739b238ce
feat(abs): base-strict: allow communication to children and stacked profiles. 2025-08-15 11:33:29 +02:00
Alexandre Pujol
7d49a1628e
fix(abs): avahi socket path. 2025-08-15 11:32:27 +02:00
Alexandre Pujol
753d36cfa3
fix(profile): manually deny path in git
Needed as 44a6bc86e6 raise merged rule with conflicting x modifiers errors.
2025-08-15 11:29:54 +02:00
Alexandre Pujol
5f368403b3
Revert "feat(tunable): add bin to XDG_BIN_DIR."
This reverts commit 44a6bc86e6.
2025-08-15 11:27:34 +02:00
Alexandre Pujol
9c9af1d821
feat(profile): improve integration with ubuntu. 2025-08-15 10:59:20 +02:00
Alexandre Pujol
112d54907e
feat(profile): thunderbird/firefox: move rules needed in both programs. 2025-08-15 10:53:52 +02:00
Alexandre Pujol
20546d37a0
feat(profile): fprintd needs sys_admin
see #811
2025-08-15 10:51:48 +02:00
Alexandre Pujol
d09f5d055f
feat(profile): improve dbus definitions. 2025-08-15 10:51:16 +02:00
Alexandre Pujol
b90a2a89fe
feat(abs): app-open: kde opener need system id.
see #811
2025-08-15 10:44:10 +02:00
Alexandre Pujol
44a6bc86e6
feat(tunable): add bin to XDG_BIN_DIR.
So it can get allowed/denied by profile using user_bin_dirs.

see #811
2025-08-15 10:43:15 +02:00
Alexandre Pujol
e2b1547bf1
feat(profile): ssh: add ssh.hmac
Similar to newest version of sshd with sshd.hmac

see #811
2025-08-15 10:41:26 +02:00
Alexandre Pujol
e15bd7bea0
feat(abs): improve vim integration with common editors.
see #811
2025-08-15 10:40:17 +02:00
Alexandre Pujol
b1b3ee8321
feat(abs): add tty/drivers to pgrrep/pkill subprofiles.
see #811
2025-08-15 10:38:15 +02:00
Alexandre Pujol
d51b386d13
feat(abs): pager: improve integration with opensuse.
See #811
2025-08-15 10:36:05 +02:00
Alexandre Pujol
ace53f3002
feat(profile): openvpn need to load module.
See #811
2025-08-15 10:35:19 +02:00
Alexandre Pujol
c02674593d
feat(profile): update kde profiles
see #811
2025-08-15 10:34:48 +02:00
Alexandre Pujol
e09586e01d
feat(abs): freedesktop: add more path for recently-used files.
see #811
2025-08-15 10:30:43 +02:00
Alexandre Pujol
10e57f01a6
feat(abs): add /etc/xdg/menus and session files to kde-strict.
See #811
2025-08-15 10:27:44 +02:00
Alexandre Pujol
eda29668ae
fix(profile): ensure signal-desktop has the attach_disconnected flag.
Fix 812
2025-08-14 18:23:30 +02:00
Alexandre Pujol
ba35a7933c
fix(profile): comment problematic rule
Fix #769
2025-08-14 15:41:53 +02:00
Alexandre Pujol
38ac0f580d
feat(profile): revisit electron based profiles.
- cleanup and enforce signal
- fix discord

fix #773 #777
2025-08-14 15:40:52 +02:00
Alexandre Pujol
d8875ab826
build: minor build system improvement. 2025-08-12 18:51:39 +02:00
Alexandre Pujol
5c8c5029e0
tests(packer): add lxqt test image, update xfce. 2025-08-12 18:12:51 +02:00
Alexandre Pujol
a5aa13923b
build: add support for building multiple version of the package. 2025-08-12 16:11:10 +02:00
Alexandre Pujol
2aa0d89f84
feat(profile): update firefox stack. 2025-08-12 12:45:55 +02:00
Alexandre Pujol
aab12e6948
fix(profile): dockerd can be installed in both bin or sbin depending of the package source. 2025-08-12 11:07:08 +02:00
Alexandre Pujol
8b64d7dd46
feat(abs): electron: add cgroup memory data. 2025-08-12 09:27:12 +02:00
Alexandre Pujol
f35b64bcae
fix(profile): missing documented udev/data 2025-08-11 22:27:08 +02:00
Alexandre Pujol
969c989aed
feat(profile): fwupd: allow access to dbx 2025-08-11 19:38:24 +02:00
Alexandre Pujol
616486d5ba
tests(check): add a check to ensure all udev/data access are documented. 2025-08-11 16:18:58 +02:00
Alexandre Pujol
175e2c3dc3
feat(profile): ensure all access to udev/data is documented.
Cleanup some rule to wide in udev/data
2025-08-11 16:16:35 +02:00
Alexandre Pujol
73afa5835e
fix(abs): dbus: SearchProvider -> SearchProvider2 2025-08-11 11:23:05 +02:00
Alexandre Pujol
caee95ff9e
fix(test): checks.sh: allow empty disabled array. 2025-08-11 11:18:21 +02:00
Alexandre Pujol
eb642993d8
feat(profile): revisit the monitorix profile. 2025-08-11 10:56:20 +02:00
Alexandre Pujol
ece81aa6cb
feat(abs): audio: add jack.conf.d 2025-08-10 19:05:15 +02:00
Alexandre Pujol
1da6e15cda
cosmetic: cleanup usage of bash abs. 2025-08-10 19:04:26 +02:00
Alexandre Pujol
82c6f554b3
feat(abs): update list of app allowed to be openned. 2025-08-10 19:03:16 +02:00
Alexandre Pujol
90e962dabb
feat(profile): chromium: cleanup shell exe.
Needed to installing/remove extensions, applications, and stacked xdg menus
2025-08-10 19:02:15 +02:00
Alexandre Pujol
67c9e86d83
feat(profile): improve integration with ubuntu. 2025-08-10 19:00:42 +02:00
Alexandre Pujol
526a7e704c
feat(tunable): improve the definition of some tunables. 2025-08-10 18:55:08 +02:00
Alexandre Pujol
4210db4faa
feat(profile): add more dbus interface base abs & improve dbus integration. 2025-08-10 18:53:47 +02:00
Alexandre Pujol
a724af9ded
tests: improve check.sh 2025-08-10 18:24:29 +02:00
Alexandre Pujol
9790ca7ebc
fix(profile): minor linter fix. 2025-08-10 18:21:56 +02:00
Stoppedpuma
b852681cc8
Fix hyprpicker 2025-08-10 11:54:33 +02:00
doublez13
c26d3e9755
Host: allow netlink raw
Querying a DNS server using it's hostname results in an apparmor denial: `host google.com dns.google.com`

`apparmor="DENIED" operation="create" class="net" profile="host" pid=00000 comm="host" family="netlink" sock_type="raw" protocol=0 requested_mask="create" denied_mask="create"`
2025-08-10 11:54:33 +02:00
Alexandre Pujol
3f37b64668
feat(profile): cleanup wechat profiles. 2025-08-06 17:38:41 +02:00
Alexandre Pujol
e0174ac95e
feat(profile): merge resolvectl and systemd-resolve. 2025-08-06 17:37:03 +02:00
Alexandre Pujol
a2f735ebb5
feat(profile): update gvfs profiles. 2025-08-04 23:33:47 +02:00
Alexandre Pujol
d57b867696
chore: cleanup unused alias 2025-08-04 19:10:05 +02:00
Alexandre Pujol
62959e7542
feat(profile): some dbus improvement. 2025-08-04 13:57:08 +02:00
Alexandre Pujol
1e16b1763a
feat(abs): update browser abs. 2025-08-04 13:52:17 +02:00
Alexandre Pujol
95ed9d3729
fix: linter issue. 2025-08-04 13:50:42 +02:00
Alexandre Pujol
06ce777174
fix(ci): ignore whonix pkg while debian13 is not out. 2025-08-04 13:08:10 +02:00
Alexandre Pujol
1b939eaa6f
feat(profile): add more test for lspci. 2025-08-04 13:05:48 +02:00
Alexandre Pujol
2a249cfe34
tests(check): more linting. 2025-08-04 13:05:20 +02:00
curiosityseeker
50a12756f8 Update firefox: stacking firefox-crashhelper 2025-08-04 12:47:48 +02:00
curiosityseeker
aa72fa1ece removing firefox-crashhelper from abtraction 2025-08-04 12:47:48 +02:00
curiosityseeker
68c5376981 Stacking firefox-crashhelper
DENIED  firefox exec @{lib}/firefox/crashhelper -> firefox-crashhelper info="no new privs" comm=firefox requested_mask=x denied_mask=x error=-1
2025-08-04 12:47:48 +02:00
Alexandre Pujol
af1904118d fix(tests): ignore some failed command. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
7e7fd83ed6 chore: Justfile costemic 2025-08-04 12:47:01 +02:00
Alexandre Pujol
540cbc1ae9 fix(tests): ignore some failed command. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
1d3b58f15c tests(check): enable and enfore more checks. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
da4f5f8a2c fix(profile): lspci as root needs sys_admin.
Raised by CI.
2025-08-04 12:47:01 +02:00
Alexandre Pujol
c0b43c86b6 tests(check): add support for blocl ignore, handle inline comments. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
dfb0762625 fix(profile): parer issue. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
78c41305fa tests(check): look for missing tunables. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
41fc182860 fix(test): minor integration tests fixes. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
031e1b2b07 feat: apply new linter recommendations. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
9c55d62b85 fix: small ci fixes. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
3db6d07359 fix(test): running integration tests in ci. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
2721cf6253 build: ensure just compatibility with ubuntu 24.04 2025-08-04 12:47:01 +02:00
Alexandre Pujol
cd15178c81 tests(check): globally ignore check in commented lines. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
5adc290870 fix(profile): fixes some issues raised by tests. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
94bae18c2c build: justfile: simplify test orchestration. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
7d2229cd05 build: fully replace make by just. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
4a3a98c77d fix(profile): fixes for issues raised by newly enabled tests. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
5a08ffc9ba fix(profile): apply fixes raised by tests 2025-08-04 12:47:01 +02:00
Alexandre Pujol
18212c9ff7 tests: re-enable apt tests. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
8f7e373f62 fix: update-alternatives is **not** installed in sbin. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
f1a96db317 feat(profile): add missing update-alternatives & mdadm profiles. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
85383ed361 fix: newly detected linter issues. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
ef9b93b866 tests(check): enable more linter rule. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
b2910ae593 tests(check): add support for '#aa:lint ignore' inline directive to disable linting. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
f6914a8730 fix(profile): various fixes from issue raised by the CI. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
b878ce1ea2 chore: fix linter issues. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
ac3e0fea59 fix: profile compilation issue. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
d579b33011 tests: add a few integration tests. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
0c2385fef9 tests: update tests dependencies. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
a731badeff feat(profile): improvement raised by unit tests. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
c09b5d85a4 feat(profile): update systemd profiles. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
fd0092d431 fix(profile): fix issues raised in tests. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
4f265c6d58 feat(profile): add lsns. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
8b03cff0cf feat(profile): add lslogins. 2025-08-04 12:47:01 +02:00
Alexandre Pujol
926a6fdcb9 feat(profile): add lslocks 2025-08-04 12:47:01 +02:00
Alexandre Pujol
f516e1140a feat(profile): add lsfd 2025-08-04 12:47:01 +02:00
Alexandre Pujol
ed06dac702 feat(profile): add lsipc 2025-08-04 12:47:01 +02:00
doublez13
8b280b5ef0 Allow sbctl to parse DMI data
This path is hard coded in "dmi/dmi.go"
2025-07-31 17:23:16 +02:00
doublez13
9e4db4373e
Add support for MD RAID devices to the disk-read/write abstractions (#796) 2025-07-31 17:22:28 +02:00
valoq
fc421183a0 xournalpp improvements 2025-07-29 06:27:09 -06:00
valoq
d4d4f3ae4b add xournalpp 2025-07-29 06:27:09 -06:00
Alexandre Pujol
e490a11c1a
feat(profile): add hwclock. 2025-07-20 14:25:41 +02:00
Alexandre Pujol
cba7355142
feat(abs): update nvidia GLCache. 2025-07-20 14:14:30 +02:00
Alexandre Pujol
f364ab5e48
feat(profile): firefox: improve crashreporter. 2025-07-20 14:13:40 +02:00
Alexandre Pujol
101248b37e
feat(profile): minor profile update. 2025-07-20 14:06:58 +02:00
Alexandre Pujol
cf76e2e714
build(arch): sync pkgbuild with the with aur version. 2025-07-20 13:35:53 +02:00
Alexandre Pujol
bba6f253ad
doc: add link to the last talk. 2025-07-20 13:22:29 +02:00
Alexandre Pujol
ee328ecea8
fix(profile): ensure gpg has access to pacman public keyring.
#788
2025-07-19 17:58:06 +02:00
Alexandre Pujol
033354314f
doc: minor documentation update. 2025-07-19 17:54:02 +02:00
Alexandre Pujol
f183ae709f chore: fix linter issue. 2025-07-18 11:37:26 -06:00
Alexandre Pujol
2f1022dc8d feat(profile): general minor update to profiles. 2025-07-18 11:37:26 -06:00
Alexandre Pujol
d9d762aaaa fix(profile): systemd-coredump: also allow sbin 2025-07-18 11:37:26 -06:00
Alexandre Pujol
38b165ff31 feat(profile): minor apt improvement. 2025-07-18 11:37:26 -06:00
Alexandre Pujol
72b136578d fix(profile): ensure wc is in pacman-hook-perl
fix #786
2025-07-18 11:37:26 -06:00
Alexandre Pujol
c6030de00a build: add just command for local and dev install. 2025-07-18 11:37:26 -06:00
Alexandre Pujol
881402dc21 feat(profile): improve some systemd profiles. 2025-07-18 11:37:26 -06:00
Alexandre Pujol
03b174a2d4 feat(profile): simplify modprobe-nvidia. 2025-07-18 11:37:26 -06:00
Alexandre Pujol
8020c2c63d feat(profile): update pacman profiles. 2025-07-18 11:37:26 -06:00
Alexandre Pujol
7a47914542 tests: add test file for whois. 2025-07-18 11:37:26 -06:00
valoq
7b6f2353fd remove white space 2025-07-18 06:19:48 -06:00
valoq
d120792297 fix ci 2025-07-18 06:19:48 -06:00
valoq
cdb64e14ba add texstudio 2025-07-18 06:19:48 -06:00
curiosityseeker
2c1d235ef0 Hardening kioworker with reagrd to ps
See #711
2025-07-17 16:10:05 -06:00
valoq
8fc70859aa fix include 2025-07-12 07:27:04 -06:00
valoq
a79e46acdd add profile for whois 2025-07-12 07:27:04 -06:00
Alexandre Pujol
97d5fe3f68
feat(abs): user-read/write: allow files directly on the home directory. 2025-07-11 19:37:40 +02:00
EricLin0509
d855eeccd7 Not use tabs 2025-07-09 16:59:22 -06:00
EricLin0509
2e9d450fde Fix tlp start issue 2025-07-09 16:59:22 -06:00
valoq
e92f2fb453 ouch: allow listing archive contents 2025-07-09 16:58:49 -06:00
Stoppedpuma
06d23ac72c Fix strawberry profile 2025-07-09 16:58:09 -06:00
Alexandre Pujol
35ae596fd9
feat(profile): general update on some core profiles. 2025-07-10 00:56:31 +02:00
Alexandre Pujol
51560bbbf5
feat(profile): update mullvad. 2025-07-10 00:53:29 +02:00
Alexandre Pujol
e9fbc35036
feat(profile): minor sshd improvement. 2025-07-10 00:52:26 +02:00
Alexandre Pujol
1b1a4c11ac
feat(profile): gpg: improve integration with access to gpg-agent. 2025-07-10 00:51:18 +02:00
Alexandre Pujol
d6f4ff57b6
fix: linter check. 2025-07-10 00:47:39 +02:00
Alexandre Pujol
b754c1134c
fix(profile) wechat profile permissions
fix #772
2025-07-10 00:37:49 +02:00
Alexandre Pujol
51cb732eca
fix(profile): ensure hyprland can integrate with wine/proton
fix #783
2025-07-10 00:17:13 +02:00
Alexandre Pujol
e6b044376f
fix(profile): update archlinux-keyring requirements.
fix #784
2025-07-10 00:14:24 +02:00
Alexandre Pujol
277bd7f46a
feat(profile): ensure gtk-query-immodule is not version dependent. 2025-07-07 00:53:37 +02:00
Alexandre Pujol
e30372b729
ci: use fsp instead of full command. 2025-07-07 00:52:29 +02:00
Alexandre Pujol
e6939f4968
feat(profile): add pgrep. 2025-07-07 00:37:07 +02:00
Alexandre Pujol
c85ed58fa9
feat(profile): add vmstat 2025-07-07 00:30:21 +02:00
Alexandre Pujol
771dd9b589
feat(profile): add pidof 2025-07-07 00:22:26 +02:00
Alexandre Pujol
6b5fad404b
feat(profile): add free 2025-07-07 00:19:35 +02:00
Alexandre Pujol
8042dd4a34
chore: replace make full by make fsp. 2025-07-07 00:09:34 +02:00
Alexandre Pujol
c2740ffe24
feat(profile): xwayland: add integration with desktop local paths. 2025-07-06 22:15:04 +02:00
Alexandre Pujol
af8c66e9bf
feat(profile): upgrade cockpit profiles. 2025-07-06 22:14:25 +02:00
Alexandre Pujol
bfc6c51821
feat(profile): update some core system profiles. 2025-07-06 22:08:28 +02:00
Alexandre Pujol
705eb11510
feat(profile): improve some dbus rules. 2025-07-06 22:04:18 +02:00
Alexandre Pujol
4f2abda92f
feat(profile): improve gnome programs. 2025-07-06 21:58:20 +02:00
Alexandre Pujol
f56163afb1
feat(profile): ensure xdg portal can start any sandboxing tool. 2025-07-06 21:56:24 +02:00
Alexandre Pujol
3b040aa5ca
feat(profile): improve dpkg-scripts. 2025-07-06 21:54:49 +02:00
Alexandre Pujol
13680be0a6
feat(fsp): sdu: add consoles 2025-07-06 21:53:53 +02:00
Alexandre Pujol
223f611dfc
feat(abs): nvidia: ensure cuda is supported, cleanup common local path. 2025-07-06 21:53:15 +02:00
Alexandre Pujol
e5b6d5dd19
feat(profile): update nvidia tools. 2025-07-06 15:21:50 +02:00
Alexandre Pujol
f47babab84
fix(profile): pci slot adress. 2025-07-06 15:21:01 +02:00
Alexandre Pujol
9cb74ff384
feat(abs): general update 2025-07-02 23:22:12 +02:00
Alexandre Pujol
0366543c39
feat(profile): add console-setup profiles. 2025-06-21 21:09:37 +02:00
Alexandre Pujol
1aee62f52c
feat(abs): mappings: add support for role from the sshd-session profile. 2025-06-21 21:07:02 +02:00
Alexandre Pujol
f443c71c7b
tests: allow empty abstractions directory. 2025-06-21 21:05:53 +02:00
Alexandre Pujol
43278aeda2
feat(profile): rewrite the profile for hw-probe. 2025-06-21 20:36:52 +02:00
Alexandre Pujol
4d201ea417
feat(profile): add lsb-release
Use it instead of lsb_release.
2025-06-21 20:35:38 +02:00
Alexandre Pujol
0572688c59
feat(profile): small general upgrade. 2025-06-21 20:27:06 +02:00
Alexandre Pujol
f8250f7e0c
feat(profile): move kmod in subprofile. 2025-06-21 20:22:25 +02:00
Alexandre Pujol
e222816d32
feat(profile): virt: move privileged actions to subprofle. 2025-06-21 20:08:44 +02:00
Alexandre Pujol
24a9da865f
chore: update sbin.list 2025-06-21 20:05:47 +02:00
Alexandre Pujol
0483f476ed
fix(profile): aa-enforce: ensure looking path in sbin is allowed. 2025-06-21 19:56:54 +02:00
Alexandre Pujol
6735b8e5f8
feat(profile): zram: move kmod to its own subprofile. 2025-06-21 19:55:22 +02:00
Alexandre Pujol
226cb23073
feat(profile): small improvement to steam. 2025-06-21 19:53:26 +02:00
Alexandre Pujol
03d7ef5589
feat(profile): add profile for sshd session.
It is only a first draft as recent update in sshd, split sshd in multiple binaries,
it will allow us to also split the confinement in multiple profile.
2025-06-21 19:52:22 +02:00
Alexandre Pujol
5eb08f8de5
feat(profile): improve pacman profiles. 2025-06-21 19:47:49 +02:00
Alexandre Pujol
cd619d280a
feat(profile): update apt profiles. 2025-06-21 19:44:43 +02:00
Alexandre Pujol
ea45cec24d
feat(fsp): improve fsp profiles. 2025-06-21 19:43:02 +02:00
Alexandre Pujol
bb6ca01718
feat(profile): ufw: integrate ufw-init in ufw, use sysctl in subprofile. 2025-06-21 19:36:23 +02:00
Alexandre Pujol
3ffff07f3f
tests: enforce abstractions test. 2025-06-20 00:00:48 +02:00
Alexandre Pujol
f29041576e
feat(profile): move away from old or too wide abstractions. 2025-06-19 23:55:20 +02:00
Alexandre Pujol
033a7475e0
tests: enforce equivalent tests. 2025-06-19 23:35:13 +02:00
Alexandre Pujol
27907e5a17
feat(profiles): ensure we use {m,g,}awk instead of awk. 2025-06-19 23:27:34 +02:00
Alexandre Pujol
be62e5186f
feat(profiles): ensure we use which{,.debianutils} instead of which. 2025-06-19 23:16:16 +02:00
Alexandre Pujol
d2dbf771cc
feat(profiles): ensure we use {,e}grep instead of grep. 2025-06-19 23:07:17 +02:00
Alexandre Pujol
0e4cc45a5b
tests: simplify sbin check. 2025-06-19 20:03:53 +02:00
Alexandre Pujol
e7f25571d0
chore(profile): rename netplan.script to netplan. 2025-06-17 00:22:34 +02:00
Alexandre Pujol
0478e62f56
feat(fsp): sd/sdu: improve integration with stacked profiles. 2025-06-17 00:19:43 +02:00
Alexandre Pujol
fc45e5ee66
feat(fsp): add initial sd-umount. 2025-06-17 00:18:39 +02:00
Alexandre Pujol
d01b7ce7d6
chore: cleanup linter issue. 2025-06-16 23:42:30 +02:00
Alexandre Pujol
390a8b1b01
build: add the fsp-debug build command. 2025-06-16 23:20:03 +02:00
Alexandre Pujol
1118d2ffc5
build: use the base-strict abstraction automatically. 2025-06-16 23:17:45 +02:00
Alexandre Pujol
7dd860f277
feat(profile): minor update & cosmetic. 2025-06-16 23:15:07 +02:00
Alexandre Pujol
eeebcf91f3
feat(abs): add base-strict.
For now, it is only a restructuring of the base abstraction with awareness of the apparmor.d architecture.
2025-06-16 23:05:50 +02:00
Alexandre Pujol
34f9a53a3b
ci: start dropping ci tests on ubuntu 22.04. 2025-06-16 22:53:36 +02:00
Alexandre Pujol
011de3c301
feat(profile): flatpak: ensure remote can be added/removed.
see #690
2025-06-16 22:48:16 +02:00
Alexandre Pujol
8fa7c49a65
feat(profile): add firefox crashhelper 2025-06-16 22:42:11 +02:00
Alexandre Pujol
b88cf164ec
feat(profile): gnome-shell: allow some basic tools needed by some extensions.
fix #705
2025-06-16 22:38:37 +02:00
Alexandre Pujol
5ae1cc854d
fix(profile): pacman: add integration witn limine.
fix #756
2025-06-16 22:20:13 +02:00
Alexandre Pujol
07007f93c4
fix(fsp): ignore not yet used mappings. 2025-06-16 22:06:55 +02:00
Alexandre Pujol
2941334b7c
fix(profile): brave flag & stacked helper.
fix #763
2025-06-16 22:04:55 +02:00
Alexandre Pujol
110f4ea40e
feat(abs): mesa: add /var/cache as fallback location. 2025-06-16 22:01:40 +02:00
Alexandre Pujol
d3aa4ae4a1
fix(abs): ensure generic app can run widevine.
fix #764
2025-06-16 22:01:08 +02:00
Alexandre Pujol
4cb6de3d2d
fix(profile): ufw: allow kmod.
fix #765
2025-06-16 21:50:22 +02:00
Alexandre Pujol
8118bf3d23
fix: pinentry gtk need access to its cmdline.
fix #768
2025-06-16 21:48:07 +02:00
Alexandre Pujol
5e14271f76
Merge FSP: rewrite the systemd profiles #753
* dev: (49 commits)
  fix: use mappings/sudo in su.
  build: justfile: add group.
  tests: update sbin.list
  fix: linter check.
  fix: add gpartedbin back to sbin.list.
  tests: show error line in sbin check.
  feat(profile): update sbin list and ensure the profiles use the good variable (sbin or bin).
  tests: remove symbolic link from sbin.
  test: add some security checks.
  tests: add more check for sbin path
  tests: rewrite and expand the profile check to more files.
  feat(tunable): add the archive_path variable.
  feat(profile): update gnome profiles.
  feat(fsp): small fsp improvement.
  feat(abs): minor improvement & cosmetic.
  feat(profile): add profiles for whoopsie.
  feat(profile): add initial profile for systemd-initctl.
  feat(profile): minor fsp related improvment.
  feat(fsp): setup RBAC mapping in auth enabled profiles.
  build: ignore all rule in abi3.
  ...
2025-06-16 21:41:08 +02:00
valoq
1f7e019500 clean desktop abstraction 2025-06-12 16:26:39 +02:00
valoq
5216cbdcde add more xkeyboard-config-2 ressources 2025-06-12 16:26:39 +02:00
valoq
c947fe6c6c complete xkeyboard-config-2 permissions 2025-06-12 16:26:39 +02:00
valoq
cdd45bcd60 add xkeyboard-config-2 ressources 2025-06-12 16:26:39 +02:00
Alexandre Pujol
3291d9a370
fix: use mappings/sudo in su. 2025-06-11 22:56:18 +02:00
Alexandre Pujol
e3bd48bd75
build: justfile: add group. 2025-06-11 22:55:17 +02:00
Alexandre Pujol
a4737546f7
tests: update sbin.list 2025-06-10 23:58:24 +02:00
Alexandre Pujol
65f9644753
fix: linter check. 2025-06-10 23:37:59 +02:00
Alexandre Pujol
edcbaa1b94
fix: add gpartedbin back to sbin.list. 2025-06-10 23:01:24 +02:00
Alexandre Pujol
f0355f36b9
tests: show error line in sbin check. 2025-06-05 00:36:30 +02:00
Alexandre Pujol
6ed873aad3
feat(profile): update sbin list and ensure the profiles use the good variable (sbin or bin). 2025-06-05 00:35:43 +02:00
Alexandre Pujol
c8f2a435f8
tests: remove symbolic link from sbin. 2025-06-02 23:59:41 +02:00
Alexandre Pujol
f579940ae7
test: add some security checks. 2025-06-02 20:41:20 +02:00
Alexandre Pujol
fff0df39ba
tests: add more check for sbin path
Also look for path that should not use sbin.
2025-06-01 23:59:14 +02:00
Alexandre Pujol
71a473712c
tests: rewrite and expand the profile check to more files.
Rewrite: Speed up the checking by not using grep anymore and only using bash, also make it parallel

Revisit the way result are shown.

Expand: Also scan for mapping files and abstaction completion. Adapt the scan accordingly.
2025-06-01 23:58:02 +02:00
Alexandre Pujol
55e4b27c2b
feat(tunable): add the archive_path variable. 2025-06-01 16:02:20 +02:00
Alexandre Pujol
eb84df319d
feat(profile): update gnome profiles. 2025-06-01 16:00:38 +02:00
Alexandre Pujol
86202b0fbf
feat(fsp): small fsp improvement. 2025-06-01 15:53:37 +02:00
Alexandre Pujol
8452eb44f1
feat(abs): minor improvement & cosmetic. 2025-06-01 15:48:38 +02:00
Alexandre Pujol
af82a9caa6
feat(profile): add profiles for whoopsie. 2025-05-31 13:52:42 +02:00
Alexandre Pujol
d76bc0b3be
feat(profile): add initial profile for systemd-initctl. 2025-05-31 13:50:20 +02:00
Alexandre Pujol
6c6e1c3456
feat(profile): minor fsp related improvment. 2025-05-31 13:49:16 +02:00
Alexandre Pujol
2282128cbd
feat(fsp): setup RBAC mapping in auth enabled profiles. 2025-05-31 13:43:57 +02:00
Alexandre Pujol
d9e6e686e0
build: ignore all rule in abi3. 2025-05-30 01:44:09 +02:00
Alexandre Pujol
e771ef77b8
tests(packer): update base images content. 2025-05-30 00:18:39 +02:00
Alexandre Pujol
89a1714610
fix(profile): a few linting fixes. 2025-05-30 00:14:54 +02:00
Alexandre Pujol
3d76c98c4b
feat(profile): add more systemd-generator profiles. 2025-05-30 00:05:34 +02:00
Alexandre Pujol
d9cfef3e5d
refractor(profile): move systemd generators to their own group 2025-05-30 00:03:11 +02:00
Alexandre Pujol
60b9127916
feat(profile): update pipewire profiles. 2025-05-29 23:53:47 +02:00
Alexandre Pujol
32a9806219
feat(fsp): update systemd user drop in files with AppArmorProfile set to the target profile. 2025-05-29 23:52:40 +02:00
Alexandre Pujol
9325dd5ca0
feat(profile): revisit systemd-udevd and ensure most program get transitionned confined. 2025-05-29 23:43:19 +02:00
Alexandre Pujol
581a55c726
feat(profile): update systemd-homework/homed as they get stacked. 2025-05-29 23:40:49 +02:00
Alexandre Pujol
28d9d48de4
feat(profile): small update to systemd profiles. 2025-05-29 23:39:35 +02:00
Alexandre Pujol
38c6e35a1b
feat(profile): add some ubuntu specific profiles. 2025-05-29 23:33:37 +02:00
Alexandre Pujol
7f684ee5dd
feat(profile): integrate fsp with apt and ubuntu. 2025-05-29 23:29:52 +02:00
Alexandre Pujol
3984cf8acc
feat(profile): initial profile for pollinate. 2025-05-29 23:27:55 +02:00
Alexandre Pujol
d5a65ba831
feat(profile): add a few small profile needed by fsp. 2025-05-29 23:26:18 +02:00
Alexandre Pujol
1aa0142a6a
feat(fsp): add/update systemd drop in files with AppArmorProfile set to the target profile. 2025-05-29 23:20:32 +02:00
Alexandre Pujol
8ff829542d
feat(profile): add profile for some named minimal systemd service. 2025-05-29 23:13:04 +02:00
Alexandre Pujol
a194f28c21
feat(fsp): add sd-mount. 2025-05-29 22:59:02 +02:00
Alexandre Pujol
9125686973
feat(fsp): add the new sdu profile as service and stacked profile manager for system. 2025-05-29 22:44:00 +02:00
Alexandre Pujol
5940f0117b
feat(fsp): add the new sdu profile as service and stacked profile manager for user. 2025-05-29 22:37:56 +02:00
Alexandre Pujol
dd2187552b
feat(fsp): remove the now deprecated generic system service profiles. 2025-05-29 22:35:28 +02:00
Alexandre Pujol
3dc8a74ec0
feat(fsp): rewrite the systemd-user profile. 2025-05-29 15:16:26 +02:00
Alexandre Pujol
47bafeb67b
feat(fsp): rewrite the systemd profile. 2025-05-29 15:06:52 +02:00
curiosityseeker
bf22a7786c Broken login: Update systemd-logind
Today I was not able to log into my Arch Linux system. After chrooting into the system, performing aa-log and adding the rule to systemd-logind the problem was fixed.
2025-05-27 16:35:47 +02:00
Alexandre Pujol
11f3529530
ci: ensure failing compiling the profile fail the job. 2025-05-27 00:29:35 +02:00
Alexandre Pujol
0886c7bc85
fix: rule compilation. 2025-05-27 00:29:21 +02:00
Alexandre Pujol
7243c18ce2
fix(build): conversion from abi4 to abi3. 2025-05-26 23:54:56 +02:00
Alexandre Pujol
d5002a6774
fix(profile): fwupd
fix #752
2025-05-26 23:52:39 +02:00
Alexandre Pujol
a08c99dcb7
feat(abs): console: add non owner access to /dev/tty@{u8}.
Follow recent addition in attached/consoles

fix #751
2025-05-26 23:47:49 +02:00
Alexandre Pujol
77d2f923b0
feat(profile): pacman: allow landlock to restrict itself
See https://docs.kernel.org/userspace-api/landlock.html#c.sys_landlock_restrict_self

fix #750
2025-05-26 23:45:10 +02:00
Alexandre Pujol
8f3f3816ed
feat(fsp): systemd drop in files: configure stacked profile
It comes as a replacement of old and unsecure config that was disabling the nnp flag.
The new solution is:
1. Safe
2. Scalable  as hundred of profile could be configured this way
2025-05-26 23:31:35 +02:00
Alexandre Pujol
4ffbf84a00
feat(fsp): remove the default profiles. 2025-05-26 23:20:37 +02:00
Alexandre Pujol
217448d09a
doc: improve documentation on the use of some special abstraction. 2025-05-26 01:18:11 +02:00
Alexandre Pujol
04b6cade64
feat(profile): use profile variable in rules such as in dbus, ptrace, unix... 2025-05-26 01:17:14 +02:00
Alexandre Pujol
f717ea7383
feat(aa): add a mount flag. 2025-05-26 01:01:08 +02:00
Alexandre Pujol
c07c5838e4
build: add RBAC filter to the only/exclude directive. 2025-05-26 01:00:08 +02:00
Alexandre Pujol
780ca65953
build(fsp): set stacked variables. 2025-05-26 00:57:37 +02:00
Alexandre Pujol
d9430c68c1
build: improve error message in the stack direcive. 2025-05-26 00:55:48 +02:00
Alexandre Pujol
e83a9a60dc
feat(profile): finalize upgrade process. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
a8ab6da6f3
feat(profile): add runit-helper. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
ead321e07e
feat(profile): improve the upgrade stack. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
acc35c3bd7
ci: show files installed in sbin. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
d575812e29
fix(profile): snapd journalctl subprofile. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
931c207089
feat(profile): simplify needrestart & fix pam-auth-update. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
ca5b4c99ba
ci: disable compatibility check with userspace tools. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
b1435dd491
feat(profile): ubuntu: update upgrade process. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
7361c21c40
feat(profile): add mdadm-mkconf. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
813758a1e0
feat(profile): add debconf-escape, update dpkg-scripts. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
8546533ad1
fix(build): flag generation. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
30bbd6d56a
feat(profile): cron: cleanup direct exec. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
774106b7e5
feat(profile): update some systemd profiles. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
a7807408b6
feat(profile): update some update-* profiles. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
0a5743fa46
feat(profile): add profile for more update-* tools. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
17624b95d8
feat(profile): update ucf profiles. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
e7fb186093
feat(profile): update kernerl-install. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
4e4f8d8a0e
build: update sbin.list 2025-05-26 00:47:47 +02:00
Alexandre Pujol
8c526b32c6
feat(profile): small update on core upgrade profiles. 2025-05-26 00:47:47 +02:00
Alexandre Pujol
649d2da8d2
feat(profile): expand and restrict motd. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
21b31a06a7
feat(profile): rewrite the run-parts profile. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
c03bcbef7a
feat(profile): rewrite the needrestart profiles. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
8b542434bd
feat(profile): update kdump profiles. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
c70f9b22fc
feat(tunable): add more variables for profile name. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
3e098b7152
feat(profile): initramfs: add hooks and scripts. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
d5926e9411
feat(abs): update debconf abs. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
3848838e53
feat(profile): merge dpkg-scripts and dpkg-script-tmp. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
f3ed1a3006
fix: profile compilation. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
b90c4073c9
ci: show full journalctl log on failure. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
31e90e6c58
feat(profile): add kernel update/install profiles. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
6650f45ee0
feat(profile): add pycompile. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
a9303e82bb
fix: linter 2025-05-26 00:47:46 +02:00
Alexandre Pujol
8755c4a1b7
fix(profile): remove sbin on some program path
Debian and opensuse do not install the same programs under /usr/sbin.
This will have to be tracked by distribution.
For now, sbin.list follows debian install.
2025-05-26 00:47:46 +02:00
Alexandre Pujol
7a3016724a
feat(profile): update linux check scripts. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
6e0c646d14
feat(profile): add profile for ischroot. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
49155625a5
feat(profile): rewrite debconf & add debconf-frontend. 2025-05-26 00:47:46 +02:00
Alexandre Pujol
390cc27ab8
feat(abs): add debconf common abs. 2025-05-26 00:47:45 +02:00
Alexandre Pujol
f033e69811
feat(abs): add the pager app abstaction. 2025-05-26 00:47:45 +02:00
Alexandre Pujol
2c880ba220
feat(profile): rewrite the apt stack of profiles. 2025-05-26 00:47:45 +02:00
Alexandre Pujol
c64901353e
fix(profile): some fix on the dpkg-scipts profiles. 2025-05-26 00:47:45 +02:00
Alexandre Pujol
760eb91ac6
feat(profile): add profile for t-methods-sq. 2025-05-26 00:47:45 +02:00
Alexandre Pujol
9eff482ebf
feat(profile): update unattended upgrade profiles. 2025-05-26 00:47:45 +02:00
Alexandre Pujol
c446c44ded
feat(profile): add dpkg-script-tmp. 2025-05-26 00:47:45 +02:00
Alexandre Pujol
6495061360
feat(profile): add initial version for dpkg-scripts. 2025-05-26 00:47:45 +02:00
Alexandre Pujol
222125e593
fix: processing regexs 2025-05-25 15:01:21 +02:00
Alexandre Pujol
58d677b5f0
fix: tweak kde related abs to ensure all common rules are allowed.
fix #741
2025-05-25 14:48:54 +02:00
Alexandre Pujol
facc504ae9
fix(abs): editor: use of neovim as editor.
fix #749
2025-05-25 14:32:28 +02:00
Alexandre Pujol
85d35a4f86
feat(profile): mkinitcpio ensure support for different kernel.
fix #749
2025-05-25 14:30:34 +02:00
Alexandre Pujol
707a5e8bee
feat(profile): firewalld move kmod into a subprofile. 2025-05-20 21:41:52 +02:00
Alexandre Pujol
86afef4920
build: improve just install 2025-05-18 19:33:58 +02:00
Alexandre Pujol
10ef829d31
fix(profile): more possible id than int for i2c. 2025-05-18 19:31:33 +02:00
tpaau-17DB
b677d4a0b5 Fix hyprland profile. 2025-05-18 19:08:52 +02:00
Alexandre Pujol
64f02ff608
feat(profile): snapd: add journalctl subprofile. 2025-05-18 14:50:09 +02:00
Alexandre Pujol
21abf59132
feat(profile): libvirt: simplify udev access. 2025-05-18 14:48:33 +02:00
Alexandre Pujol
658c054c47
feat(profile): update and enforce a few profiles. 2025-05-18 14:46:35 +02:00
Alexandre Pujol
1fab846875
feat(abs): add proc stat to the gnome common abs. 2025-05-18 13:47:08 +02:00
Alexandre Pujol
9499116542
feat(profile): add initial profile for ptyxis. 2025-05-18 13:39:32 +02:00
Alexandre Pujol
053ce04c8e
feat(tunanle): add the sqlhex variable. 2025-05-18 13:09:06 +02:00
Alexandre Pujol
3b1fe1f931
feat(tunable): fix and use terminal_path. 2025-05-17 22:41:43 +02:00
Alexandre Pujol
d74a477646
feat(tunable): add @{backup_path}. 2025-05-17 22:33:03 +02:00
Alexandre Pujol
4beb096532
feat(abs): expand zsh abs to more default locations
- Add support for oh-my-zsh
- Add support for gitstatus & p10k
- Add more zsh config dirctories.
2025-05-17 22:29:33 +02:00
Alexandre Pujol
dbd0a7d271
feat(tunable): add the efi variable. 2025-05-17 22:25:58 +02:00
Alexandre Pujol
8d374ed876
feat(fsp): add tunables for the future systemd executor profiles. 2025-05-17 22:25:27 +02:00
Alexandre Pujol
5a448cb39d
feat(profile): add initial profile for papers. 2025-05-17 22:23:35 +02:00
Alexandre Pujol
efba6e164e
feat(profile): add initial profile for decibels. 2025-05-17 22:22:00 +02:00
Alexandre Pujol
f9f4097164
feat(abs): add the path abstraction. 2025-05-17 22:12:24 +02:00
Alexandre Pujol
2bad07f5ff
doc: hide the date of revision on the front page. 2025-05-17 18:44:59 +02:00
Alexandre Pujol
00327dfae1
feat(profile): minor improvements. 2025-05-17 18:38:48 +02:00
Alexandre Pujol
043dc3fc05
feat(profile): add paperspecs to cups backend. 2025-05-17 15:23:24 +02:00
Alexandre Pujol
a46967cb43
feat(tunable): add papers to the list of document viewers. 2025-05-17 14:56:51 +02:00
Alexandre Pujol
daa6a1239b
feat(profile): improve protonmail-bridge-core. 2025-05-17 14:20:08 +02:00
Alexandre Pujol
04dc921eb1
doc: rewrite the introduction page. 2025-05-15 22:09:52 +02:00
Alexandre Pujol
36f9ae0458
fix(profile): ensure deluser use sbin. 2025-05-14 23:05:00 +02:00
Alexandre Pujol
877452519d
feat(profile): unix-chkpwd: Add read capability to profile
Following the Security Technical Implementation Guide, it is better to
set the permissions to 0000 for the shadow file.
However, since PAM version 1.6.0, after this change [0], unix-chkpwd
will unconditionnaly read the shadow file. And with the previous
restriction, the binary has an access denied to the shadow which
blocks user authentications. Moreover the PAM changes is needed to fix
the CVE-2024-10041.
Giving the read capability to the unix-chkpwd profile allows it to
function properly. See bug report [1].

[0] - https://github.com/linux-pam/linux-pam/pull/686
[1] - https://bugzilla.suse.com/show_bug.cgi?id=1241678

Signed-off-by: vlefebvre <valentin.lefebvre@suse.com>
2025-05-14 22:49:58 +02:00
Alexandre Pujol
415c09ca88
feat(tunable): add alias from which.debianutils to which. 2025-05-14 22:43:58 +02:00
Alexandre Pujol
1096666191
feat(profile): general minor update. 2025-05-14 22:36:46 +02:00
Roman Beslik
c972607ca4 wmname 2025-05-14 22:20:39 +02:00
beroal
be0b63724c
v4l2-ctl: a CLI utility for managing webcams (#731)
* v4l2-ctl

* abi 3 to 4
2025-05-14 20:19:27 +00:00
Yifan Zhu
888954744f fix(abstractions): allow link in thumbnail write 2025-05-14 22:18:36 +02:00
tpaau-17DB
f83e24b1b7
Add profile for spotdl. (#736)
* Add profile for spotdl.

* Change `rpx` to `rPx`

* Remove copyright
2025-05-14 20:17:06 +00:00
beroal
8697a6a7e1
cheese: video capturing (#730) 2025-05-14 17:40:40 +02:00
gjpin
e044fbe565 git//ssh: allow execution of ksshaskpass 2025-05-14 17:38:02 +02:00
gjpin
29a352d78f feat(profile): xdg-permission-store: allow screencast 2025-05-14 17:37:09 +02:00
EricLin0509
bb58c07871 offices_names: add wps 2025-05-14 17:33:51 +02:00
Alexandre Pujol
b07be68636
fix(profile): directive format in localectl. 2025-05-04 20:38:15 +02:00
Alexandre Pujol
37f70a0030
feat(abs): minor abstraction improvement. 2025-05-04 20:33:18 +02:00
Alexandre Pujol
74dcf2defc
feat(profile): systemd: improve some ctl tools. 2025-05-04 20:31:10 +02:00
Alexandre Pujol
3e0c3067d8
feat(profile): systemd: add some generators 2025-05-04 20:05:54 +02:00
Alexandre Pujol
4e21ef53e6
feat(profile): systemd: add nsresourced. 2025-05-04 20:01:28 +02:00
Alexandre Pujol
f936088ae7
doc: add abstraction architecture. 2025-05-04 19:51:49 +02:00
Alexandre Pujol
6d8eda6b87
feat(profile): update some dbus defintion for gnome. 2025-05-03 18:34:37 +02:00
Alexandre Pujol
f6c0893d90
feat(abs): update dbus rules for gtk4. 2025-05-03 18:30:25 +02:00
Alexandre Pujol
38b9bf673e
feat(tunable): dbus: ensure compatibility across multiple distribution even on apparmor 4.1 2025-05-03 18:20:34 +02:00
Alexandre Pujol
da97ffb63c
fix(profile): ensure gdm uses sbin. 2025-05-02 22:59:40 +02:00
Alexandre Pujol
6423e962a0
feat(abs): update dbus interface abs. 2025-05-01 20:45:07 +02:00
Alexandre Pujol
dd7841f4e9
feat(profile): pacman: ensure ghc-pkg is run independant from pacman. 2025-05-01 20:42:12 +02:00
Alexandre Pujol
fa317ad91b
feat(profile): improve netplan generator. 2025-05-01 20:40:26 +02:00
Alexandre Pujol
97ddc0de63
feat(profile): add sshd-auth 2025-05-01 20:39:38 +02:00
Alexandre Pujol
a98b8bbc0d
feat(profile): improve dbus rule in the gnome profiles. 2025-05-01 20:39:10 +02:00
Alexandre Pujol
df6378cec0
feat(profile): improve common freedesktop profiles. 2025-05-01 20:34:35 +02:00
Alexandre Pujol
3cc39debfb
feat(profile): improve kde integration. 2025-05-01 20:27:03 +02:00
Alexandre Pujol
87e82b1505
fix(profile): modernise fuse-overlayfs.
fix  #726
2025-05-01 20:15:24 +02:00
Alexandre Pujol
5edde91d44
fix(test): update test to the new value of bin. 2025-05-01 19:56:34 +02:00
Alexandre Pujol
c969faf6e8
feat(profile): add initial version of sshd-auth.
Fix #725
2025-05-01 19:46:32 +02:00
Alexandre Pujol
83806c1b35
fix(profile): ensure cmus can read the home directory
fix #728
2025-05-01 19:38:57 +02:00
Roman Beslik
ad4bfab4f2
loginctl-linger 2025-05-01 19:30:16 +02:00
Alexandre Pujol
8f250f451c
doc: add sbin. 2025-05-01 19:23:42 +02:00
Alexandre Pujol
45d7cf48c4
fix(profile): small improvment raised by the tests. 2025-05-01 18:48:31 +02:00
Alexandre Pujol
3a568ba307
feat(profile): add more programs to the list of sbin program. 2025-05-01 15:17:03 +02:00
Alexandre Pujol
dc816178f5
fix(profile): ensure adduser use sbin. 2025-05-01 14:38:52 +02:00
Alexandre Pujol
7431867fa4
ci(github): remove useless github specific rules. 2025-05-01 14:37:31 +02:00
Alexandre Pujol
48a37bbf34
build: configure sbin value according to the target distribution. 2025-05-01 14:36:57 +02:00
Alexandre Pujol
d162032af9
feat(profile): allow needrestart to scan more directories. 2025-04-30 22:16:45 +02:00
Alexandre Pujol
b9eaa840bd
fix: integration tests. 2025-04-29 00:31:08 +02:00
Alexandre Pujol
018ca1b0b5
feat(abs): ensure app root launcher can start program in sbin. 2025-04-29 00:14:01 +02:00
Alexandre Pujol
4f4a8fa8e7
test(check): ensurre we only match the sbin name. 2025-04-28 23:04:17 +02:00
Alexandre Pujol
1c499183f2
feat(aa-log): add support for the sbin variable. 2025-04-28 22:43:33 +02:00
Alexandre Pujol
7b55b351ef
feat(profile): replace @{bin} by @{sbin} on additional profiles. 2025-04-28 22:41:40 +02:00
Alexandre Pujol
aeb3614a07
tests: add some program to the list of tracked files in sbin. 2025-04-28 22:34:17 +02:00
Alexandre Pujol
af070877f2
tests: update unit tests to last changes. 2025-04-28 22:09:28 +02:00
Alexandre Pujol
0f8032f9e8
feat(tunable): configure sbin across distributions. 2025-04-28 21:57:26 +02:00
Alexandre Pujol
8ae1118de6
tests(check): ensure bin is not used instead of sbin. 2025-04-28 21:48:53 +02:00
Alexandre Pujol
fd17a77b17
feat(profile): use @{sbin} for all program inside /usr/sbin. 2025-04-28 21:27:57 +02:00
Alexandre Pujol
b8f2f38c72
doc: improve justfile doc. 2025-04-27 14:38:31 +02:00
Alexandre Pujol
4bb57bed22
doc: update aa-log man page. 2025-04-27 14:35:46 +02:00
Alexandre Pujol
532676b421
build: improve documentation about overwriten profiles.
Make it clear why a given profile is overwriten from upstream.
2025-04-27 14:33:44 +02:00
Alexandre Pujol
4d706f3598
build: be more verbose when file sync fail. 2025-04-27 14:30:10 +02:00
Alexandre Pujol
475d8dc082
doc: small update & improvements. 2025-04-27 14:28:18 +02:00
Alexandre Pujol
2bc87f68a8
tests(packer): define more common cloud init resources. 2025-04-27 14:20:22 +02:00
Alexandre Pujol
5bfebf6ea5
feat(profile): small general improvments. 2025-04-26 17:34:30 +02:00
Alexandre Pujol
dca81f4a1e
chore(abs): comment the use of keyfile in dconf. 2025-04-26 17:28:10 +02:00
Alexandre Pujol
e15dfdc33e
feat(profiles): smallupdate to gnome profiles. 2025-04-26 17:27:27 +02:00
Alexandre Pujol
b3da8d4be7
feat(profile): update steam profiles. 2025-04-26 17:23:30 +02:00
beroal
3295a1334a
webcam (#729)
* webcam

* webcam comment
2025-04-25 17:14:49 +00:00
doublez13
ce8e54c15f Allow vim to read spell files
https://vimhelp.org/spell.txt.html
2025-04-25 19:14:30 +02:00
moisesmsf
7c46ed2dd1
Fix the links to issues (#723) 2025-04-24 15:20:00 +00:00
zinootje
7394b9ff9c
Update PKGBUILD arch to any (#717)
* Update PKGBUILD arch to any

updated PKGBUILD arch to any to support all archs

* Update PKGBUILD

set archs as arch=('x86_64' 'armv6h' 'armv7h' 'aarch64')
2025-04-24 15:19:20 +00:00
Alexandre Pujol
9f0947a0fc
doc: add link to the play machine. 2025-04-16 00:11:15 +02:00
Alexandre Pujol
1aa8b42982 feat(profile): add initial version of dpkg-maintscript-helper 2025-04-13 22:46:53 +02:00
Alexandre Pujol
b765d8174b feat(profile): add initial dpkg-script-* profiles. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
f90208bb7f feat(profile): add deb-systemd-* profiles. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
e5b1c0ca7d feat(profile): minor update. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
e774ad6578 fix(ci): minor fixes. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
1ca12d173f ci: only run integration tests on dev branch. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
8c591c90ab feat(profile): journalctl minor improvments. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
e75d1729c1 fix(tunable): remove vimtutor to the list of editors.
#678
2025-04-13 22:46:53 +02:00
Alexandre Pujol
80f5c50f13 feat(profile): ensure flatpak can handle chromium based software.
fix  #715
2025-04-13 22:46:53 +02:00
Alexandre Pujol
c008cbda67 feat(profile): add profile for most of udev internat scripts
Required by FSP.
2025-04-13 22:46:53 +02:00
Alexandre Pujol
379a093b10 feat(fsp): small improvment to systemd profiles. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
63e2b9372b fix: snap access to cgroup. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
69aa16625b feat(profile): add support for gimp 3.0
fix #656
2025-04-13 22:46:53 +02:00
Alexandre Pujol
5e38394986 fix(profile): snap: simplify cgroup access. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
cd890bb81b feat(profile): minor improvement & update. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
e61529bd04 feat(profile): add integration with role profiles. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
5760ba4e48 feat(abs): fusermount: add mount, umount to fusermount. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
0860667d28 fix(profile): spotify needs to read usb. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
35d42038fd feat(abs): add abstraction for ansible. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
c32884ddeb feat(profile): add base mappings definition.
Used by profiles before to confine pre login script bfore transitionning to user hat.

It should only be enabled when mapping is enabled as otherwise the shell is not confined.
2025-04-13 22:46:53 +02:00
Alexandre Pujol
6d2147582e build: add mappings to the list of directories without profile files. 2025-04-13 22:46:53 +02:00
Alexandre Pujol
5775721e55
build: default target to apparmor 4.1 2025-04-13 12:12:45 +02:00
Alexandre Pujol
305c2e344f
fix: trailing whitespace. 2025-04-07 22:55:47 +02:00
Alexandre Pujol
ca381c4f07
feat(profile): update aa-notify for apparmor 4.1 2025-04-07 22:50:09 +02:00
beroal
2bc55822d0
Briar: lyrebird, sound (#714)
* initial

* abi 4 to 3

* abi 3 to 4
2025-04-07 20:13:46 +00:00
Alexandre Pujol
4c67b21bf3
feat(profile): finish using variable instead of [0-9]. 2025-04-06 20:56:39 +02:00
Alexandre Pujol
26d0797a07
fix(ci): add back the integration command in make. 2025-04-06 20:39:41 +02:00
Alexandre Pujol
ead2f4e40b
Revert "fix: remove wip workarroind in gstreamer abs."
This reverts commit 75a8ef2906.
2025-04-06 16:07:51 +02:00
Alexandre Pujol
8b99a0bdff
fix(ci): disable vcs information on Ubuntu. 2025-04-06 16:04:04 +02:00
Alexandre Pujol
c391bdefc1
feat(tunable): add editor_ui variables. 2025-04-06 15:49:15 +02:00
Alexandre Pujol
99df9cec51
fix(build): fsp configuration. 2025-04-06 15:39:48 +02:00
Alexandre Pujol
89fca6d9cf
feat(profile): update pam-tmpdir-helper path. 2025-04-06 15:31:10 +02:00
Alexandre Pujol
1009de7e6c
feat(abs): add the fusermount abstraction. 2025-04-06 15:30:10 +02:00
Alexandre Pujol
9aaf109383
feat(aa-log): improve log to rule conversion. 2025-04-06 14:51:00 +02:00
Alexandre Pujol
75a8ef2906
fix: remove wip workarroind in gstreamer abs. 2025-04-06 14:47:55 +02:00
Alexandre Pujol
9e9036b86d
fix: revert to CopyTo to handle overwrite. 2025-04-06 14:47:01 +02:00
Alexandre Pujol
99f5ed5901
fix: remove now unused variable. 2025-04-06 00:18:01 +02:00
Alexandre Pujol
f12f684eb1
build: remove some old makefile command now handled in the Justfile. 2025-04-05 23:50:47 +02:00
Alexandre Pujol
f86eb8c27c
build: ensure arch pkg can be build inside an OCI container. 2025-04-05 23:42:39 +02:00
Alexandre Pujol
feaf61fb0b
feat(profile): various small improvment. 2025-04-05 22:46:19 +02:00
Alexandre Pujol
6b5e586d83
feat(abs): limit number of tty
Up to 64 tty and 2048 pts.
2025-04-05 22:39:45 +02:00
Alexandre Pujol
60a050ff17
doc: update minimum go version. 2025-04-05 22:04:48 +02:00
Alexandre Pujol
984679c7cd
fix(tests): do not run vim inside CI job 2025-04-05 22:01:26 +02:00
Alexandre Pujol
8d1571a93b
build(arch): start using just in the PKGBUILD. 2025-04-05 21:59:43 +02:00
Alexandre Pujol
4bd415d260
chore(build): cleanup the justfile. 2025-04-05 21:50:18 +02:00
Alexandre Pujol
d5e70ca994
fix(test): various integration improvments. 2025-04-05 21:43:55 +02:00
Alexandre Pujol
8d71574e4d
build: improve the use of attached/base. 2025-04-05 21:31:51 +02:00
Alexandre Pujol
ea022725be
fix(ci): ensure systemd unit are reloaded. 2025-04-05 20:56:22 +02:00
Alexandre Pujol
7d6f68a95e
feat(abs): automatically use the attached consoles. 2025-04-05 20:55:29 +02:00
Alexandre Pujol
b532929f5d
fix(ci): ensure dbus session is confined during tests 2025-04-05 19:19:56 +02:00
Alexandre Pujol
9b8348181c
fix(tests): disable apt tests 2025-04-05 18:55:03 +02:00
Alexandre Pujol
5fb5d03512
feat(abs): ensure attached/consoles is not used manually. 2025-04-05 15:00:08 +02:00
Alexandre Pujol
c2b9f21d85
feat(profile): improve attached paths definition. 2025-04-05 00:38:47 +02:00
Alexandre Pujol
22a214ca1b
feat(abs): add attached dbus path. 2025-04-05 00:32:16 +02:00
Alexandre Pujol
8f7b9e50dd
fix(ci): pkg name. 2025-04-05 00:28:25 +02:00
Alexandre Pujol
2c3380f9ba
build: use golang CopyFS
- speed up prebuild sync tasks.
2025-04-05 00:28:04 +02:00
Alexandre Pujol
4d3025e249
ci: fix build on ubuntu OCI. 2025-04-05 00:11:41 +02:00
Alexandre Pujol
07b7f5c13d
fix: linter fix. 2025-04-05 00:01:27 +02:00
Alexandre Pujol
d00f204cc5
chore: update golangci-lint to v2 2025-04-04 23:46:40 +02:00
Alexandre Pujol
984cf28e61
chore: apply some linter recommendations. 2025-04-04 23:45:24 +02:00
Alexandre Pujol
3b6b50cf63
feat(pkg): add paths CopyFS function. 2025-04-04 22:15:01 +02:00
Alexandre Pujol
ccb7ee9b15
chore: update to go 1.23 as a minimum. 2025-04-04 22:11:11 +02:00
Alexandre Pujol
2f81ba67d4
build(debian): cleanup depends. 2025-04-04 21:53:13 +02:00
Alexandre Pujol
b9ec70b8bb
build: add support for various version in OCI based package build. 2025-04-04 21:52:44 +02:00
Alexandre Pujol
49a2a21c11
ci(gitlab): update image name. 2025-04-04 15:25:04 +02:00
Alexandre Pujol
6f4fada5e5
ci(github): do not define @{att} globally during re-attached tests. 2025-03-30 22:16:56 +02:00
Alexandre Pujol
2e79406127
feat(profile): allow dbus to receive failure. 2025-03-30 21:31:33 +02:00
Alexandre Pujol
0d43563520
ci(github): ignore profile not handled by this project. 2025-03-30 21:29:28 +02:00
Alexandre Pujol
cbea160416
ci(github): also test with re-attach disconnected path. 2025-03-30 21:16:18 +02:00
Alexandre Pujol
41ff05369d
fix(profile): integration tests. 2025-03-30 21:07:47 +02:00
Alexandre Pujol
86759f2ef1
feat(profile): update docker profiles. 2025-03-30 21:04:05 +02:00
Alexandre Pujol
c80c82fda2
fix(profile): integration tests. 2025-03-30 19:42:59 +02:00
Alexandre Pujol
71a8bf6be8
feat(profile): improve signal across profiles. 2025-03-30 18:54:27 +02:00
Alexandre Pujol
73e3ac6cbd
feat(profile): snap: improve update-ns. 2025-03-30 18:50:16 +02:00
Alexandre Pujol
811cb64390
tests: update requirments list. 2025-03-30 18:47:28 +02:00
Alexandre Pujol
94c7c1b33c
feat(profile): run-parts: use the motd profile. 2025-03-30 18:33:36 +02:00
Alexandre Pujol
5173d3177c
fix(profile): qemu: ensure guest addition can shutdown the system. 2025-03-30 18:32:26 +02:00
Alexandre Pujol
e73ea12cea
feat(profile): aa-log - move call to journalctl to a subprofile. 2025-03-30 18:31:25 +02:00
Alexandre Pujol
fbbf68f0ee
feat(profile): udiskd needs ipc_lock. 2025-03-30 18:30:24 +02:00
Alexandre Pujol
1751a9997c
fix(profile): integration tests. 2025-03-30 18:28:50 +02:00
Alexandre Pujol
9ef8db9cbc
fix: remove unused import. 2025-03-30 17:39:20 +02:00
Alexandre Pujol
5975c7f250
feat(profile): add ufw-init. 2025-03-30 17:12:25 +02:00
Alexandre Pujol
ee52841833
feat(profile): add sysstat profiles. 2025-03-30 17:07:51 +02:00
Alexandre Pujol
baa3f8f639
build: generalise the use of apparmor version during the build. 2025-03-30 17:06:00 +02:00
Alexandre Pujol
d3e9a7ec70
tests: allow some tests to fail as we don't test the software but the profile. 2025-03-30 16:55:24 +02:00
Alexandre Pujol
3ffcc533b4
feat(profile): allow pacman to pwd anywhere. 2025-03-30 16:36:24 +02:00
Alexandre Pujol
735f5de518
feat(profile): general update. 2025-03-30 16:27:41 +02:00
Alexandre Pujol
5861da3f33
build: set distribution name in dpkg build. 2025-03-29 13:57:00 +01:00
Alexandre Pujol
42818ddcf6
ci: remove rsync as deps. 2025-03-29 13:47:50 +01:00
Alexandre Pujol
414d8a3a47
feat(profile): update flatpak profiles. 2025-03-29 13:05:56 +01:00
Alexandre Pujol
2e5c860f0d
feat(profile): docker: add git & init subprofile. 2025-03-28 23:33:12 +01:00
Alexandre Pujol
7a352cb7df
feat(profile): motd: make it more generic. 2025-03-28 23:32:28 +01:00
Alexandre Pujol
1204e29fb9
test: update integration tests. 2025-03-28 23:31:05 +01:00
Alexandre Pujol
8e2a7e8068
build: ensure the justfile could fully replace the makefile. 2025-03-28 20:13:00 +01:00
Alexandre Pujol
fbb71fb47b
fix(profile): thunar
fix #704
2025-03-28 18:16:42 +01:00
Alexandre Pujol
4e1b983103
fix(abs): remove duplicated rule
fix #709
2025-03-28 18:00:04 +01:00
Alexandre Pujol
7562f87d9d
fix(profile): flatpak
fix #710
2025-03-28 17:56:46 +01:00
Roman Beslik
647d22ab9f read access to the hwmon directory 2025-03-26 10:21:22 +01:00
Alexandre Pujol
921503f514
feat(profile): small improvment on UI profiles. 2025-03-24 22:00:54 +01:00
Alexandre Pujol
c53c236648
feat(profile): improve gnome profiles. 2025-03-24 22:00:54 +01:00
Alexandre Pujol
dd129c1a03
feat(profile): minor kde improvments. 2025-03-24 22:00:54 +01:00
Alexandre Pujol
28111ab9a5
feat(profile): update gvfsd. 2025-03-24 22:00:54 +01:00
EricLin0509
7f3f0809a6 Fix can't parse mount rule error 2025-03-23 19:15:05 +01:00
Alexandre Pujol
8c9d61a28e
feat(abs): add /usr/share/ssl/ to the openssl abs.
fix #673
2025-03-23 16:57:19 +01:00
Alexandre Pujol
310f06bc03
feat(profile): minor improvment on wechat profiles 2025-03-23 16:53:38 +01:00
EricLin0509
11fc80663f A small fix 2025-03-23 16:48:32 +01:00
EricLin0509
7d06d07450 Apply suggestions 2025-03-23 16:48:32 +01:00
EricLin0509
5ac4a521ca Add support for different Wechat variants 2025-03-23 16:48:32 +01:00
curiosityseeker
9525c6c008 Update protonmail-bridge-core
Adding bridge-gui
2025-03-23 16:40:35 +01:00
Alexandre Pujol
97af63b483
chore(profile): minor cleanup 2025-03-23 16:39:41 +01:00
remph
8730fa55e5 Various fixes
* nvidia-strict: nvidia libraries get argv from /proc/self
* iwd:
  * sends lots of UDP on packet sockets
  * writes to accept_ra and optimistic_dad
  * DNS daemons other than systemd-resolvd may require iwd to use resolvconf
* lynx: now handles brotli'd HTML as well as gzipped
2025-03-23 16:36:37 +01:00
EliasTheGrandMasterOfMistakes
f1f84045fc wirepumbler: Allow access to /dev/udmabuf 2025-03-23 16:34:59 +01:00
Alexandre Pujol
d44001b71f
feat(profile): snap - ensure snap profile can all rm their own lib_dirs. 2025-03-23 16:33:18 +01:00
Alexandre Pujol
a5385c594a
fix(profile): cosmetic. 2025-03-23 16:28:55 +01:00
Alexandre Pujol
0fce2e526d
Merge branch 'xfce' of github.com:nobody43/apparmor.d into nobody43-xfce
* 'xfce' of github.com:nobody43/apparmor.d:
  xfce, fixes
  Adapt to RO root
  xfce, flags
  xfce, proper abi
  xfce, new profiles
  xfce, updates
2025-03-23 16:18:46 +01:00
Alexandre Pujol
7ef841716e
fix(profile): ensure kde-powerdevil can read card state
see #675
2025-03-23 15:52:12 +01:00
Alexandre Pujol
21dfc6ea26
feat(profile): improve kde profiles.
fix #676
2025-03-23 15:35:27 +01:00
Alexandre Pujol
7684de3459
fix(profile): integration fix. 2025-03-23 15:27:00 +01:00
Alexandre Pujol
291713d902
feat(profile): add nvidia-uvm to the gstreamer abs.
- Needed internally by multiqueue
- Lots of program using gstreamer was requiring it
2025-03-23 15:24:05 +01:00
Alexandre Pujol
bc422ab5b8
feat(profile): revisit the gparted profiles
fix #697
2025-03-23 15:17:25 +01:00
Alexandre Pujol
acf423fd86
feat(profile): add support for qemu-img in gnome-boxes
fix #698
2025-03-23 14:19:02 +01:00
Alexandre Pujol
5e225ed0ec
feat(fsp): small improvments. 2025-03-23 14:16:31 +01:00
Alexandre Pujol
46b0b19d5b
fix(profile): various fixes. 2025-03-23 14:08:50 +01:00
Alexandre Pujol
018e31375b
fix(abs): add missing vim syntax. 2025-03-23 13:47:48 +01:00
Alexandre Pujol
054b723255
feat(profile): improve core snap profiles. 2025-03-23 13:44:50 +01:00
Alexandre Pujol
41757ec4e4
feat(profile): remove now automatically added internal dbus rules. 2025-03-23 13:40:45 +01:00
Alexandre Pujol
85be9316e1
feat(abs): remove dbus rules handled in the new abs. 2025-03-23 12:33:54 +01:00
Alexandre Pujol
1f55c07692
build: automatically include bus/own-* abstraction when required. 2025-03-23 12:31:43 +01:00
Alexandre Pujol
9ab321d146
feat(abs): dbus interfaces definition update. 2025-03-23 12:28:01 +01:00
Alexandre Pujol
a1559d23c7
feat(abs): update pkexec. 2025-03-20 20:13:54 +01:00
Alexandre Pujol
d2c231653b
feat(abs): add bus/own-* abstactions 2025-03-20 20:13:44 +01:00
Alexandre Pujol
ec04495c4a
feat(profile): update for ubuntu/debian based systems. 2025-03-20 00:34:24 +01:00
Alexandre Pujol
a69dc5bc8b
feat(abs): ensure ca.desrt.dconf.Writer dbus is part of dconf-write only. 2025-03-20 00:30:24 +01:00
Alexandre Pujol
50135cf75b
build: define more variable to resolve during build. 2025-03-18 23:16:11 +01:00
Alexandre Pujol
bd9ab55bf0
feta(profile): remove the now duplicated @{bin}/perl r. 2025-03-18 23:10:38 +01:00
Alexandre Pujol
f6a9a1859a
fix(profile): ensure aplay can list devices. 2025-03-18 22:57:55 +01:00
Alexandre Pujol
5b1702b34c
fix(profile): ensure ssh support security keys.
fix #686
2025-03-18 22:54:56 +01:00
Alexandre Pujol
debed741ca
fix(profile): ensure sbctl can access tpm.
fix #687
2025-03-18 22:52:47 +01:00
Alexandre Pujol
9728042f69
fix(profile): ensure epiphany can generate web apps desktop icons
fix #689
2025-03-18 22:51:01 +01:00
EliasTheGrandMasterOfMistakes
dc83373a0f bwrap(abstractions): Allow read to actions_avail 2025-03-18 22:35:44 +01:00
Alexandre Pujol
600f9f314e
feat(profile): remove empty snap profiles.
see #693
2025-03-18 21:39:09 +01:00
Alexandre Pujol
9ddd24754e
feat(abs): cleanup PUx in app open. 2025-03-18 21:34:11 +01:00
Alexandre Pujol
bf09164b4c
feat(abs): ensure all path of perl binary can rix. 2025-03-18 21:33:13 +01:00
Alexandre Pujol
1d0994979e
feat(abs): add memory mapping to python on its own abs. 2025-03-18 21:32:30 +01:00
Alexandre Pujol
2ce7663016
fix(profile): issues in finalrd. 2025-03-18 21:31:17 +01:00
EliasTheGrandMasterOfMistakes
e2c1a17425 gnome-shell: Allow acess to flatpak 2025-03-18 21:29:05 +01:00
Yifan Zhu
9fd1c5f3d4 fix(profile): allow speech-dispatcher to read user config 2025-03-18 21:20:21 +01:00
Alexandre Pujol
01fcfc5438
feat(profile): add finalrd. 2025-03-15 00:27:14 +01:00
Alexandre Pujol
96e79d9d88
build: add filter for apparmor version. 2025-03-15 00:26:47 +01:00
Alexandre Pujol
07dbb0c7d3
fix(profile): ssh-sk-helper does not get transioned.
fix #681
see #677
2025-03-14 23:57:37 +01:00
Alexandre Pujol
e4a7e16ec0
build: add support for apparmor 4.1
Enabled when prebuild is run with the --version 4.1 argument
2025-03-14 22:07:59 +01:00
Alexandre Pujol
ebc8b29b1d
feat(profile): add initial profile for resolvectl. 2025-03-14 22:00:52 +01:00
Alexandre Pujol
cfccb7894d
feat(profile): general update. 2025-03-14 21:59:55 +01:00
Alexandre Pujol
24b1c816e5
feat(tunable): add @{sbin} variable
Will be used in the future for all programs inside /usr/sbin.
2025-03-14 21:35:50 +01:00
Alexandre Pujol
761c7abc7e
fix(profile): netplan profiles. 2025-03-14 21:34:39 +01:00
Alexandre Pujol
7abbf548a2
feat(profile): add netplan-generate. 2025-03-13 19:18:03 +01:00
Alexandre Pujol
1702072669
feat(profile): update apport. 2025-03-13 19:16:38 +01:00
Alexandre Pujol
2bb71dfc8f
feat(tunable): add dpkg maintainer's scripts extension names. 2025-03-13 19:15:51 +01:00
Alexandre Pujol
c2633c2fae
feat(profile): update apt profiles. 2025-03-13 19:15:22 +01:00
Alexandre Pujol
17d9df3e27
feat(abs): replace some manual rules in bus abs by the dbus common directive. 2025-03-13 19:11:23 +01:00
Alexandre Pujol
dcc6c72cbd
build(directive): add the dbus common subdirective for bus abstraction. 2025-03-13 19:08:56 +01:00
Alexandre Pujol
8be553c664
feat(profile): add profile for simple-scan 2025-03-13 18:51:43 +01:00
Alexandre Pujol
ef90157f25
feat(pkg): minor improvment on rlimit definition. 2025-03-10 19:39:38 +01:00
Alexandre Pujol
255458bc9c
feat(profile): fireox executes speech-dispatcher
fix #680
2025-03-10 19:36:10 +01:00
Alexandre Pujol
4efe52c437
feat(tunable): add to alternative vim name to the list of editor
fix git: unexpected vim filename on Tumbleweed #678
2025-03-10 19:36:10 +01:00
Yifan Zhu
f79f22c06a docs: fix typo 2025-03-10 19:20:44 +01:00
Alexandre Pujol
404b3d0ce2
ci(github): drop FSP tests in ubtuntu 22.04 2025-03-10 00:03:30 +01:00
Alexandre Pujol
20699b20b6
fix: minor build issue. 2025-03-09 23:58:18 +01:00
Alexandre Pujol
d93db0eca9
feat(profile): add motd. 2025-03-09 23:43:39 +01:00
Alexandre Pujol
f8340aa660
feat(fsp): add mapping abstractions for use with pam_apparmor. 2025-03-09 23:14:53 +01:00
Alexandre Pujol
ab41d2e0f3
feat(fsp): improve the systemd profiles. 2025-03-09 23:12:01 +01:00
Alexandre Pujol
47b6e3c616
feat(profile): various core update. 2025-03-09 23:04:32 +01:00
Alexandre Pujol
7badf80854
feat(profile): improve dbus abstractions and interopaerability with profiles. 2025-03-09 22:58:27 +01:00
Alexandre Pujol
0ef623ed40
fix: ensure pidof use the attach_disconnected and enforce it.
see #677
2025-03-08 21:54:39 +01:00
Alexandre Pujol
106921df23
fix(build): ensure fsp mode set the systemd profile name correctly. 2025-03-08 14:23:08 +01:00
Alexandre Pujol
9e1cc72cc4
feat(abs): kde: allow to access gtk resources.
They are required for gtk based app on KDE.
2025-03-07 00:08:17 +01:00
Alexandre Pujol
b623dc4a77
feat(profile): minor improvements. 2025-03-07 00:07:11 +01:00
Alexandre Pujol
da7958a2f9
feat(fsp): improve the base systemd profiles. 2025-03-07 00:00:24 +01:00
Alexandre Pujol
71632a6456
doc: minor improvements 2025-03-06 23:58:20 +01:00
Alexandre Pujol
0d5e363bbc
feat(abs): add more base attached files. 2025-03-06 23:50:27 +01:00
Alexandre Pujol
f270809c5f
feat(tunable): set alias // -> / for all install.
This is required when the re-attached path feature is enabled.
2025-03-06 23:49:55 +01:00
Alexandre Pujol
03406096ce
feat(dbus): simplify the way to provide unix address for dbus. 2025-03-06 23:46:49 +01:00
Alexandre Pujol
f360d12ec1
feat(profile): improve kde profiles.
See #675
2025-03-06 22:22:56 +01:00
Alexandre Pujol
cfce68a5df
feat(profile): allow to start hyprland from sddm.
fix #674
2025-03-06 21:59:20 +01:00
Alexandre Pujol
7e1c08b75d
feat(profile): improve kde profiles.
See #676
2025-03-06 21:53:41 +01:00
Alexandre Pujol
06f2fb4659
feat(profile): improve gimp.
see #656
2025-03-06 21:22:57 +01:00
Alexandre Pujol
e3a1ba5d0d
feat(profile): systemd-tty-ask-password-agent: add support for rpm.
see #576
2025-03-06 21:15:46 +01:00
Alexandre Pujol
b752ff540c
build: allow the docker build script to be sourced by downstream repository. 2025-03-04 22:38:46 +01:00
Alexandre Pujol
334b48749a
feat(profile): various minor update. 2025-03-04 22:33:42 +01:00
Alexandre Pujol
d49e93523f
feat(profile): restrict the qemu-ga profile. 2025-03-04 22:26:07 +01:00
Alexandre Pujol
3f9fe25fd4
doc: update aa-log usage. 2025-03-02 14:03:38 +01:00
Alexandre Pujol
6c284435ae
feat(profile): improve bluetoothctl
fix #671
2025-03-02 13:52:38 +01:00
Alexandre Pujol
189064c9f8
tests: make the integration tests work recursivelly. 2025-03-02 13:25:30 +01:00
Alexandre Pujol
86aba45d67
tests(integration): move most test inside groups. 2025-03-02 00:00:08 +01:00
Alexandre Pujol
eba7357cb1
doc: show off our tests a bit. 2025-03-01 22:48:24 +01:00
Alexandre Pujol
c9d249e5e3
tests(packer): add test images for ubuntu 25.04 & debian 13 2025-03-01 22:44:56 +01:00
Alexandre Pujol
e6752cb4b9
feat(profile): improve libreoffice, add missing dbus access. 2025-03-01 22:11:06 +01:00
Alexandre Pujol
80e85769ce
feat(profile): improve gnome profiles. 2025-03-01 22:09:19 +01:00
Alexandre Pujol
4dd78c0087
tests: improve justfile. 2025-03-01 22:06:38 +01:00
Alexandre Pujol
1392b078ab
tests: add Justile, used as integration environment helper. 2025-03-01 16:15:55 +01:00
Alexandre Pujol
0b029ec42f
tests(packer): rewrite the way to build the tests images. 2025-03-01 16:10:09 +01:00
Alexandre Pujol
6d5a522dcb
test(packer): update sources 2025-03-01 16:07:10 +01:00
Alexandre Pujol
fa6c37a7ab
doc: update integration tests section. 2025-03-01 16:04:18 +01:00
Alexandre Pujol
835b73f64e
build: prepare apparmor 4.1
Split upstreamed and non upstreamed tunable so that it easy to ignore the upstreamed version on apparmor 4.1.
2025-03-01 14:27:55 +01:00
Alexandre Pujol
d8d4ec11a6
feat(profile): systemd-networkd: update cap. 2025-03-01 14:20:35 +01:00
Alexandre Pujol
161078ed90
tests: move common cloud-init config to a unified file, rename some base distribution. 2025-03-01 13:18:19 +01:00
Alexandre Pujol
a793e711e5
fix(profile): dbus rule malformed. 2025-02-23 22:18:38 +01:00
Alexandre Pujol
6ebbb31589
feat(profile): dbus directive use the new interface+= 2025-02-23 21:06:41 +01:00
Alexandre Pujol
972ae950e4
build: improve the dbus directive.
- Support for additional interfaces: +=
- Restrict the generated dbus rules
- Add the required unix bind rule.
2025-02-23 20:53:49 +01:00
Alexandre Pujol
81ecce1ef7
fix(build): test in directive. 2025-02-23 20:17:49 +01:00
Alexandre Pujol
644f6b74aa
feat(profile): improve some core profiles. 2025-02-23 20:15:09 +01:00
Alexandre Pujol
7bc248577a
feat(profile): small improvment with systemd. 2025-02-23 20:13:21 +01:00
Alexandre Pujol
b10f2df5ec
doc: add roadmap and prebuilt pages. 2025-02-23 20:10:21 +01:00
Alexandre Pujol
2f5637bd65
feat(profile): improve makepkg. 2025-02-23 18:16:27 +01:00
Alexandre Pujol
d51826542b
Revert "chore: remove deprecated golangci config."
This reverts commit 6ea379eecd.
2025-02-23 18:13:49 +01:00
Alexandre Pujol
8a381b2f6b
feat(profile): various update for ubuntu. 2025-02-23 18:13:16 +01:00
Alexandre Pujol
e9b022a9a1
fix: ensure sync is not inherited
fix #670
2025-02-23 12:47:22 +01:00
Alexandre Pujol
898066c76c
refractor: add new polkit group. 2025-02-22 22:56:40 +01:00
Alexandre Pujol
6ea379eecd
chore: remove deprecated golangci config. 2025-02-22 21:49:39 +01:00
c-jaenicke
7c49a45cbb fix regex on line 65, missing star 2025-02-22 15:10:55 +01:00
Alexandre Pujol
360c009a67
fix: add missing desktop abs to gcr-prompter
see #404
2025-02-21 21:17:57 +01:00
Alexandre Pujol
8912aaf126
feat(profile): general update. 2025-02-21 00:55:52 +01:00
Alexandre Pujol
c1bea69cbf
feat(profile): minor gnome improvments. 2025-02-21 00:10:08 +01:00
Alexandre Pujol
2ae16a93f4
feat(abs): remove mesa 24.2 fix as it has been fixed upstream. 2025-02-21 00:07:08 +01:00
Alexandre Pujol
1f3fb1513a
feat(profile): enforce apparmor.systemd 2025-02-21 00:05:36 +01:00
Alexandre Pujol
a53ffeb251
fix(profile): ensure gsconnect-preferences is part of gnome-extension-gsconnect. 2025-02-20 20:18:44 +01:00
Alexandre Pujol
af85db9148
refractor: use @{python_path} in all profiles. 2025-02-17 21:28:40 +01:00
Alexandre Pujol
5870e1ee40
refractor: move more profiles to groups. 2025-02-17 21:04:28 +01:00
Alexandre Pujol
5aab9da030
fix(profile): blueman-rfcomm-watcher entrypoint. 2025-02-15 16:38:07 +01:00
Alexandre Pujol
8ba3dbd90f
refractor: move more profiles to groups. 2025-02-15 16:09:52 +01:00
Alexandre Pujol
33681e14f2
refractor: tests/bats -> tests/integration 2025-02-13 19:12:48 +01:00
Alexandre Pujol
9d74168be2
refractor: move more profiles to groups. 2025-02-10 00:20:15 +01:00
Alexandre Pujol
fadc08b1ea
fix(test): update reference path for aa-status. 2025-02-09 22:16:33 +01:00
Alexandre Pujol
9304c9a668
refractor: moce a lot of profiles inside they own groups. 2025-02-09 21:46:10 +01:00
curiosityseeker
e5aad04be4
Update dkms (#663) 2025-02-09 20:07:43 +00:00
Alexandre Pujol
5ea339803a
chore: fix typo & cosmetic. 2025-02-09 20:39:44 +01:00
Alexandre Pujol
ace9a12c95
feat(profile): add profile for xdg-desktop-portal-validate-icon. 2025-02-09 20:34:25 +01:00
Alexandre Pujol
ba5079d95c
build: update flag manifest. 2025-02-09 20:33:37 +01:00
Alexandre Pujol
86906d2601
feat(profile): add localsearch (renamed from tracker-extract
localsearch is the new name of  tracker-extract. The profile for  tracker-extract is kept as they will differ in the future.
2025-02-09 20:32:06 +01:00
Alexandre Pujol
63cbf2829b
feat(tunable): add p_ variables definition for a few core profiles. 2025-02-09 20:28:40 +01:00
Alexandre Pujol
77eb8c3c11
feat(profile): minor update. 2025-02-09 20:26:52 +01:00
Alexandre Pujol
da68c4f2d9
feat(profile): general update. 2025-02-09 00:11:09 +01:00
Alexandre Pujol
5784ff83cf
feat(abs): minor improvement to some abstraction. 2025-01-28 23:30:25 +01:00
Alexandre Pujol
c29927ea2f
fix(profile): ensure all child-open* profiles share the same flags.
fix #630
2025-01-28 23:28:11 +01:00
Alexandre Pujol
feee34ef7e
feat(profile): allow drkonqi to read logs.
fix #655
2025-01-26 21:17:18 +01:00
Alexandre Pujol
a68cd26d41
fix(profile): yay: pacman can be used by yay without installing anything
ie: without `sudo pacmcan -U ...`

see #420
2025-01-26 21:10:26 +01:00
curiosityseeker
4a978ef9b6
systemd-journald: adding mediate_deleted (#657)
* Update systemd-journald

profile systemd-journald flags=(mediate_deleted) {
link /var/log/journal/@{hex32}/#42742 ,                                                   # Failed name lookup - deleted entry
link /var/log/journal/@{hex32}/#42744 ,                                                   # Failed name lookup - deleted entry
link /var/log/journal/@{hex32}/.#system@@{hex32}-@{hex16}-@{hex16}.journal@{hex16} -> /var/log/journal/@{hex32}/#42744,
link /var/log/journal/@{hex32}/.#user-@{uid}@@{hex32}-@{hex16}-@{hex16}.journal@{hex16} -> /var/log/journal/@{hex32}/#42742,
}

* Update main.flags

Adding `systemd-journald attach_disconnected,mediate_deleted`
2025-01-26 20:07:44 +00:00
curiosityseeker
d802bf82f2 Update pacman
profile pacman//systemctl {
  signal send set=(cont term) peer=systemd-tty-ask-password-agent,
}
2025-01-26 21:06:37 +01:00
curiosityseeker
aec02b8f64 Update systemd-tmpfiles
profile systemd-tmpfiles {
  @{sys}/devices/system/cpu/cpufreq/ r,
  @{sys}/devices/system/cpu/cpufreq/policy0/scaling_governor w,
  @{sys}/devices/system/cpu/cpufreq/policy1/scaling_governor w,
  @{sys}/devices/system/cpu/cpufreq/policy2/scaling_governor w,
  @{sys}/devices/system/cpu/cpufreq/policy3/scaling_governor w,
  @{sys}/devices/system/cpu/cpufreq/policy4/scaling_governor w,
  @{sys}/devices/system/cpu/cpufreq/policy5/scaling_governor w,
  @{sys}/devices/system/cpu/cpufreq/policy6/scaling_governor w,
  @{sys}/devices/system/cpu/cpufreq/policy7/scaling_governor w,
  @{sys}/module/pcie_aspm/parameters/policy w,
}
2025-01-26 20:58:41 +01:00
curiosityseeker
5a1a5418ec Update kscreenlocker_greet 2025-01-26 20:58:18 +01:00
curiosityseeker
54a16eb055 Update okular
Typo.
2025-01-26 20:57:55 +01:00
curiosityseeker
01b173a1da Update needrestart-vmlinuz-get-version 2025-01-26 20:57:18 +01:00
curiosityseeker
aefa46359e Update firecfg 2025-01-26 20:56:34 +01:00
Alexandre Pujol
c427765909
feat(profile): initial support for gimp 3.
see #656
2025-01-26 17:04:11 +01:00
Alexandre Pujol
df8ac22e0c
test(vagrant): update boxes name. 2025-01-26 12:10:23 +01:00
Alexandre Pujol
de690ab878
fix(ci): update path to shellcheck. 2025-01-25 22:34:15 +01:00
Alexandre Pujol
8806030a0a
feat(profile): more use @{etc_ro} when we know it is needed. 2025-01-25 22:31:29 +01:00
Alexandre Pujol
4e73f7209f
test(packer): add cpu & ram internal variable. 2025-01-24 23:44:11 +01:00
Alexandre Pujol
aae36aa4e0
test(packer): make image builder simplier. 2025-01-24 23:32:24 +01:00
nobody43
45f5689d6a xfce, fixes 2025-01-24 21:48:31 +00:00
Alexandre Pujol
5b9c1a8fea
test(packer): remove useless definition in cloud-init. 2025-01-24 21:59:02 +01:00
Alexandre Pujol
cd8ae6a391
refraator(test): cloud init source out of packer directory. 2025-01-24 21:51:44 +01:00
Alexandre Pujol
8ce3c02000
feat(abs): add modern dbus definition in upstream dbus abs.
required for compqtibility with profile using upstream abstaction.
2025-01-24 21:47:49 +01:00
nobody43
39b38b9ee5 Adapt to RO root 2025-01-23 00:13:29 +00:00
nobody43
e749145544 xfce, flags 2025-01-22 23:10:50 +00:00
nobody43
bb3bbb492b xfce, proper abi 2025-01-22 23:10:29 +00:00
nobody43
c04ee92d26 xfce, new profiles 2025-01-22 23:06:56 +00:00
nobody43
4286b5330c xfce, updates 2025-01-22 22:50:59 +00:00
beroal
044c490f10
pacat: a CLI utility for playing and recording audio from the PulseAudio suite (#653) 2025-01-22 22:26:31 +00:00
Alexandre Pujol
0b3c49d26a
fix(profile): mqueue definition in needrestart. 2025-01-20 23:29:13 +01:00
Alexandre Pujol
c6a7879e02
fix: profile linter. 2025-01-20 23:00:20 +01:00
Alexandre Pujol
ef99c81eb1
feat(abs): rewrite the app/open abstraction to accomodate kde requirements.
See #630 #605  #647
2025-01-20 22:40:36 +01:00
Alexandre Pujol
f15cbdfc5b
feat(tunable): add terminal_path
fix #656
2025-01-20 21:36:52 +01:00
Alexandre Pujol
cf254c8021
feat(profile): do not use the uname profile directly
see #611
2025-01-20 21:31:08 +01:00
Alexandre Pujol
2f98d0817e
fix(profile): child-open-any
See #647
2025-01-20 21:26:54 +01:00
Alexandre Pujol
693259d8c1
feat(profile): general update 2025-01-20 21:23:31 +01:00
Alexandre Pujol
e41c5f6055
build; make the pkgname configurable. 2025-01-17 00:06:35 +01:00
adombeck
462a972abc docs: Fix typos 2025-01-15 23:14:11 +01:00
Alexandre Pujol
d20435eb21
feat(profiles): remove unused user role & mappings
- Not enabled, tested.
- Will come back under another form later.
2025-01-15 00:08:43 +01:00
Alexandre Pujol
ba067a0214
build: naming cosmetic. 2025-01-14 23:58:01 +01:00
Alexandre Pujol
9953cf1fbd
build: make synchronise task configurable.
Required by downtream repository.
2025-01-14 23:57:19 +01:00
Alexandre Pujol
f1182b27bb
build: do not resolve files in local/ 2025-01-12 20:30:52 +01:00
Alexandre Pujol
fc85b9fc58
build: better division of prebuild stages. 2025-01-12 19:41:47 +01:00
Alexandre Pujol
88f1821b19
tests: cosmetic. 2025-01-12 18:23:43 +01:00
Alexandre Pujol
61939a3bf8
build: disable dummy upstream profile in favor of ours. 2025-01-12 18:22:39 +01:00
nobody43
078b0de752 Fix rand typo 2025-01-10 23:30:20 +01:00
Alexandre Pujol
b94b11cbee
feat(profile): steam: update web paths. 2025-01-10 18:55:37 +01:00
Alexandre Pujol
17520a94bf
feat(profile): improve snap & login bus. 2025-01-10 00:09:24 +01:00
EricLin0509
bffb837ff3 Update profile for xray 2025-01-09 23:37:00 +01:00
Alexandre Pujol
f66ef4d5ea
chore: fix profile styling issue. 2025-01-09 23:36:42 +01:00
nobody43
0769e42ea2 regression: session names 2 2025-01-09 23:34:29 +01:00
Alexandre Pujol
34913ab0c0
build: update debian control. 2025-01-09 22:59:42 +01:00
Alexandre Pujol
fa85d909d7
feat(profile): general update. 2025-01-09 22:58:53 +01:00
Alexandre Pujol
70c06a0547
fix(profile): set dettached flag on some systemd services.
should fix #630
2025-01-09 22:48:23 +01:00
Alexandre Pujol
f21006dfd2
fix(profile): xfce-terminal graphics
fix #638
2025-01-09 22:41:17 +01:00
Alexandre Pujol
6348dafa8e
fix(profile): gnome on X
fix #641
2025-01-09 22:23:45 +01:00
Alexandre Pujol
2560e9645f
feat(profile): various improvements and update. 2024-12-25 00:05:36 +01:00
Alexandre Pujol
57ddfd29ce
fix(profile): pacman-hook-systemd: add systemd-tty-ask-password-agent.
fix  #632
2024-12-24 23:56:12 +01:00
Roman Beslik
f8fc1aa387 systemd user ask-password 2024-12-23 22:49:27 +01:00
Alexandre Pujol
cf1d7504f4
fix(profile): sensors: simplify hwmon access.
fix #628
2024-12-23 22:48:24 +01:00
Roman Beslik
b35c2a0abf non-owner accesses authorized_keys 2024-12-23 22:41:42 +01:00
Alexandre Pujol
01c1562e7c
feat(profile): firefox: better naming of possible attachment. 2024-12-23 22:19:29 +01:00
Alexandre Pujol
7167de932c
feat(profile): firefox: restric access to /tmp 2024-12-23 22:17:35 +01:00
nobody43
edaa45067a fix exec_path bug, ignore skipable files 2024-12-13 18:07:57 +01:00
nobody43
8f4b330407 Update profile_check.py 2024-12-13 18:07:57 +01:00
nobody43
3030c28c05 Update profile_check.py 2024-12-13 18:07:57 +01:00
nobody43
679df325de polishing 2024-12-13 18:07:57 +01:00
nobody43
21b60b4fa3 Update profile_check.py 2024-12-13 18:07:57 +01:00
nobody43
313f2f7f2c Create profile_check.py 2024-12-13 18:07:57 +01:00
Besanon
3721d12a5d
more lxqt-files (#613)
* Create abstraction for lxqt desktop group

first file for the LXQT 2.0 desktop group

* Update lxqt

* xdg-desktop abstraction added

* removing tabs

* Create startlxqt

starter file for LXQT Desktop

* Create startlxqt

* fixing startlxqt

I use sddm as display manager

I cant remove the other file - only use graphical env., sorry

After startlxqt i would add  2 lines to sddm to enable the start of LXQT desktop

* Delete apparmor.d/profiles-s-z/startlxqt

* indented by 2 spaces (like other entries)

* Update sddm

Enable sddm to start an lxqt desktop session

* Create lxqt-session

lxqt-session to be started by startlxqt. Display manager: sddm

* Update lxqt-session

* Update lxqt-session

* removed trailing whitespace

* Update kscreen_backend_launcher to support lxqt desktop

is needed for several complaints:
DENIED  kscreen_backend_launcher open owner @{user_config_dirs}/lxqt/lxqt.conf comm=kscreen_backend requested_mask=r denied_mask=r
DENIED  kscreen_backend_launcher open /usr/share/lxqt/lxqt.conf comm=kscreen_backend requested_mask=r denied_mask=r
DENIED  kscreen_backend_launcher open owner @{user_config_dirs}/lxqt/session.conf comm=kscreen_backend requested_mask=r denied_mask=r
DENIED  kscreen_backend_launcher open /usr/share/lxqt/session.conf comm=kscreen_backend requested_mask=r denied_mask=r

* Update lxqt-session

* Create lxqt-panel

* Update lxqt-panel

* Update lxqt-panel

* Update lxqt-panel

* fix conflicting x

* Update lxqt-panel

add child-open

* remove  include <abstractions/app-launcher-user>

you think its too permissive to have app-launcher-user here, right?

* Update lxqt-panel

add needed programs

* Update lxqt-panel

turning back to layout of corresponding xfce file.

* Create lxqt-globalkeysd

* Create lxqt-about

* Create lxqt-leave

* Create lxqt-runner

* Update lxqt-leave

* Update lxqt-runner

* Update lxqt-globalkeysd

* remove video in lxqt-about

* Update lxqt-about

* Update lxqt-runner

* remove abstr. in lxqt-globalkeysd

* remove abstr. in lxqt-runner

* remove abstr. in lxqt-leave

* Create lxqt-config-notificationd

* Create lxqt-config-locale

* Create lxqt-config-printer

* Create lxqt-config-file-associations

* Create lxqt-config-powermanagement

* enable wayland-session for lxqt 2.1

startlxqtwayland for starting the session, support for labwc and kwin_wayland

* Update lxqt-config-printer

* Update lxqt-config-powermanagement

* Update sddm

* Update sddm

* adapt pci-rules

ok, havent seen this profile yet. I will change that in lxqt-powermanagement as well and check the other profiles

* Update lxqt-config-powermanagement

* Update lxqt-config-powermanagement

* Update lxqt-config-powermanagement

* Update lxqt-config-powermanagement
2024-12-13 18:06:59 +01:00
odomingao
6dcb6c0362 Add wttrbar 2024-12-13 18:05:53 +01:00
Alex
c8cbeac9b2 fix(profile): snapd 2024-12-12 22:52:55 +01:00
Alex
64ed654fdf fix(profile): cron communication with dbus. 2024-12-12 22:52:55 +01:00
Alexandre Pujol
c8b1751f37 fix(profile): snap integration with dbus. 2024-12-12 22:52:55 +01:00
Alexandre Pujol
c7030f16a6 feat(profile): minor update. 2024-12-12 22:52:55 +01:00
Alexandre Pujol
14e9fea29a feat: improve dbus integration for chsh, better handling of generic needrestart. 2024-12-12 22:52:55 +01:00
Alexandre Pujol
3690a4c327 fix: apparmor parser inside snap. 2024-12-12 22:52:55 +01:00
Alexandre Pujol
94bf2495e3 feat(profile): needrestart improve mqueue rule. 2024-12-12 22:52:55 +01:00
Alexandre Pujol
212b8dcf54
feat(profile): improve some core profiles. 2024-11-29 15:34:10 +00:00
odomingao
3cc7f82d30 Fix typo 2024-11-24 19:39:04 +00:00
valoq
e5ed979ce1
add profile for swayimg (#612)
* add profile for swayimg

* fix exec
2024-11-23 21:03:42 +00:00
Besanon
7acd9079a2
add more lxqt files (#600)
* Create abstraction for lxqt desktop group

first file for the LXQT 2.0 desktop group

* Update lxqt

* xdg-desktop abstraction added

* removing tabs

* Create startlxqt

starter file for LXQT Desktop

* Create startlxqt

* fixing startlxqt

I use sddm as display manager

I cant remove the other file - only use graphical env., sorry

After startlxqt i would add  2 lines to sddm to enable the start of LXQT desktop

* Delete apparmor.d/profiles-s-z/startlxqt

* indented by 2 spaces (like other entries)

* Update sddm

Enable sddm to start an lxqt desktop session

* Create lxqt-session

lxqt-session to be started by startlxqt. Display manager: sddm

* Update lxqt-session

* Update lxqt-session

* removed trailing whitespace

* Update kscreen_backend_launcher to support lxqt desktop

is needed for several complaints:
DENIED  kscreen_backend_launcher open owner @{user_config_dirs}/lxqt/lxqt.conf comm=kscreen_backend requested_mask=r denied_mask=r
DENIED  kscreen_backend_launcher open /usr/share/lxqt/lxqt.conf comm=kscreen_backend requested_mask=r denied_mask=r
DENIED  kscreen_backend_launcher open owner @{user_config_dirs}/lxqt/session.conf comm=kscreen_backend requested_mask=r denied_mask=r
DENIED  kscreen_backend_launcher open /usr/share/lxqt/session.conf comm=kscreen_backend requested_mask=r denied_mask=r

* Update lxqt-session

* Create lxqt-panel

* Update lxqt-panel

* Update lxqt-panel

* Update lxqt-panel

* fix conflicting x

* Update lxqt-panel

add child-open

* remove  include <abstractions/app-launcher-user>

you think its too permissive to have app-launcher-user here, right?

* Update lxqt-panel

add needed programs

* Update lxqt-panel

turning back to layout of corresponding xfce file.

* Create lxqt-globalkeysd

* Create lxqt-about

* Create lxqt-leave

* Create lxqt-runner

* Update lxqt-leave

* Update lxqt-runner

* Update lxqt-globalkeysd

* remove video in lxqt-about

* Update lxqt-about

* Update lxqt-runner

* remove abstr. in lxqt-globalkeysd

* remove abstr. in lxqt-runner

* remove abstr. in lxqt-leave
2024-11-23 17:44:18 +00:00
doublez13
8efdc5d8e3
Add profile for iftop (#604)
* Add profile for iftop

* iftop: clean up formatting
2024-11-21 21:12:02 +00:00
Alexandre Pujol
044f80b1db
feat(tunable): unify some XDG and user dirs varibale name. 2024-11-21 20:59:06 +00:00
Alexandre Pujol
cb86f1c076
feat(profile): general update. 2024-11-21 20:37:39 +00:00
Alexandre Pujol
65f2d21558
feat(profile): add profile for tecla. 2024-11-21 20:37:39 +00:00
Alexandre Pujol
36d787fa44
feat(abs): add abstraction/webkit. 2024-11-21 20:37:39 +00:00
1779 changed files with 23220 additions and 9868 deletions

View file

@ -9,21 +9,25 @@ jobs:
- name: Check out repository code
uses: actions/checkout@v4
- name: Install linter dependencies
run: |
pipx install rust-just
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Run basic profile linter check
run: |
make check
just check
build:
runs-on: ${{ matrix.os }}
needs: check
strategy:
matrix:
os:
- ubuntu-24.04
- ubuntu-22.04
mode:
- default
- full-system-policy
include:
- os: ubuntu-24.04
mode: default
- os: ubuntu-24.04
mode: full-system-policy
steps:
- name: Check out repository code
uses: actions/checkout@v4
@ -34,12 +38,14 @@ jobs:
sudo apt-get install -y \
devscripts debhelper config-package-dev \
auditd apparmor-profiles apparmor-utils
pipx install rust-just
echo "$HOME/.local/bin" >> $GITHUB_PATH
sudo rm /etc/apparmor.d/usr.lib.snapd.snap-confine.real
- name: Build the apparmor.d package
run: |
if [[ ${{ matrix.mode }} == full-system-policy ]]; then
echo -e "\noverride_dh_auto_build:\n\tmake full" >> debian/rules
sed -e "s/just complain/just fsp-complain/" -i debian/rules
fi
bash dists/build.sh dpkg
@ -48,13 +54,10 @@ jobs:
- name: Reload AppArmor
run: |
sudo systemctl restart apparmor.service || true
sudo systemctl status apparmor.service
- name: Ensure compatibility with some AppArmor userspace tools
if: matrix.os != 'ubuntu-24.04'
run: |
sudo aa-enforce /etc/apparmor.d/aa-notify
if ! sudo systemctl restart apparmor.service; then
sudo journalctl -xeu apparmor.service
exit 1
fi
- name: Show AppArmor log and rules
run: |
@ -75,6 +78,7 @@ jobs:
tests:
runs-on: ubuntu-24.04
needs: build
if: github.ref_name == 'dev' || github.event_name == 'workflow_dispatch'
steps:
- name: Check out repository code
uses: actions/checkout@v4
@ -94,11 +98,15 @@ jobs:
sudo apt-get install -y \
apparmor-profiles apparmor-utils \
bats bats-support
pipx install rust-just
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Install apparmor.d
run: |
sudo dpkg --install .pkg/apparmor.d_*_amd64.deb || true
sudo systemctl restart apparmor.service
sudo systemctl daemon-reload
systemctl --user daemon-reload
- name: Restart some services to ensure they are confined
run: |
@ -117,16 +125,18 @@ jobs:
for service in "${services[@]}"; do
sudo systemctl restart "$service" || systemctl status "$service.service" || true
done
systemctl restart --user dbus || systemctl status --user "dbus.service" || true
sudo ps auxZ | grep -v '\[.*\]'
sudo aa-log -s --raw
- name: Install integration dependencies
run: |
bash tests/requirements.sh
just init
find /usr/sbin/ -type f
- name: Run the bats integration tests
- name: Run the integration tests
run: |
make bats
just integration
- name: Show final AppArmor logs
if: always()

1
.gitignore vendored
View file

@ -1,6 +1,7 @@
# Build
.build
.logs
.pkg
tests/tldr
tests/tldr.tar.gz

View file

@ -24,13 +24,13 @@ bash:
script:
- shellcheck --shell=bash
PKGBUILD dists/build.sh dists/docker.sh tests/check.sh
tests/packer/init/init.sh tests/packer/src/aa-update tests/packer/init/clean.sh
tests/packer/init.sh tests/packer/src/aa-update tests/packer/clean.sh
golangci-lint:
stage: lint
image: golangci/golangci-lint
script:
- golangci-lint run --exclude-dirs pkg/paths
- golangci-lint run
packer:
stage: lint
@ -54,7 +54,6 @@ tests:
image: golang
coverage: '/Coverage: \d+.\d+/'
script:
- apt update && apt install -y rsync
- cp tests/journalctl /usr/bin/journalctl
- chmod 755 /usr/bin/journalctl
- mkdir -p /var/log/audit/
@ -67,7 +66,7 @@ check:
stage: test
image: registry.gitlab.com/roddhjav/builders/archlinux
script:
- make check
- just check
# Package Build
# -------------
@ -85,13 +84,12 @@ archlinux:
debian:
stage: build
image: registry.gitlab.com/roddhjav/builders/debian
image: registry.gitlab.com/roddhjav/builders/debian:trixie
script:
- sudo chown -R build:build /builds/
- git config --global --add safe.directory $CI_PROJECT_DIR
- mkdir -p "$PKGDEST"
- sudo apt-get update -q && sudo apt-get install -y config-package-dev rsync
- sudo apt-get install -y -t bookworm-backports golang-go
- sudo apt-get update -q && sudo apt-get install -y config-package-dev golang-go lsb-release libdistro-info-perl
- bash dists/build.sh dpkg
artifacts:
expire_in: 1 day
@ -100,12 +98,13 @@ debian:
ubuntu:
stage: build
image: registry.gitlab.com/roddhjav/builders/ubuntu
image: registry.gitlab.com/roddhjav/builders/ubuntu:24.04
variables:
GOFLAGS: "-buildvcs=false"
script:
- sudo chown -R ubuntu:ubuntu /builds/
- git config --global --add safe.directory $CI_PROJECT_DIR
- mkdir -p "$PKGDEST"
- sudo apt-get update -q && sudo apt-get install -y config-package-dev rsync golang-go
- sudo apt-get update -q && sudo apt-get install -y config-package-dev golang-go lsb-release libdistro-info-perl
- bash dists/build.sh dpkg
artifacts:
expire_in: 1 day
@ -117,14 +116,14 @@ whonix:
variables:
DISTRIBUTION: whonix
before_script:
- echo "\noverride_dh_auto_build:\n\tmake full" >> debian/rules
- sed -e "s/just complain/just fsp-complain/" -i debian/rules
opensuse:
stage: build
image: registry.gitlab.com/roddhjav/builders/opensuse
script:
- mkdir -p "$PKGDEST"
- sudo zypper install -y distribution-release golang-packaging rsync apparmor-profiles
- sudo zypper install -y distribution-release golang-packaging apparmor-profiles
- bash dists/build.sh rpm
artifacts:
expire_in: 1 day
@ -147,7 +146,7 @@ preprocess-archlinux:
preprocess-debian:
stage: preprocess
image: debian
image: debian:trixie
dependencies:
- debian
script:
@ -167,7 +166,7 @@ preprocess-ubuntu:
- dpkg --install $PKGDEST/*
- apparmor_parser --preprocess /etc/apparmor.d 1> /dev/null
preprocess-whonix:
.preprocess-whonix:
extends: preprocess-debian
dependencies:
- whonix

View file

@ -1,5 +1,15 @@
---
linters-settings:
version: "2"
linters:
settings:
staticcheck:
checks: ["all", "-SA1019" ]
checks:
- all
- -SA1019
- -ST1000
exclusions:
paths:
- pkg/paths
- tests/cmd/

399
Justfile Normal file
View file

@ -0,0 +1,399 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Usage: `just`
# See https://apparmor.pujol.io/development/ for more information.
# Build settings
destdir := "/"
build := ".build"
pkgdest := `pwd` / ".pkg"
pkgname := "apparmor.d"
# Admin username
username := "user"
# Default admin password
password := "user"
# Disk size of the VM to build
disk_size := "40G"
# Virtual machine CPU
vcpus := "6"
# Virtual machine RAM
ram := "4096"
# Path to the ssh key
ssh_keyname := "id_ed25519"
ssh_privatekey := home_dir() / ".ssh/" + ssh_keyname
ssh_publickey := ssh_privatekey + ".pub"
# Where the VM are stored
vm := home_dir() / ".vm"
# Where the VM images are stored
base_dir := home_dir() / ".libvirt/base"
# Where the packer temporary output is stored
output_dir := base_dir / "packer"
# SSH options
sshopt := "-i " + ssh_privatekey + " -o IdentitiesOnly=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
# Libvirt connection address
c := "--connect=qemu:///system"
# VM prefix
prefix := "aa-"
# Show this help message
help:
@just --list --unsorted
@printf "\n%s\n" "See https://apparmor.pujol.io/development/ for more information."
# Build the go programs
[group('build')]
build:
@go build -o {{build}}/ ./cmd/aa-log
@go build -o {{build}}/ ./cmd/prebuild
# Prebuild the profiles in enforced mode
[group('build')]
enforce: build
@./{{build}}/prebuild --buildir {{build}}
# Prebuild the profiles in enforce mode (test)
enforce-test: build
@./{{build}}/prebuild --buildir {{build}} --test
# Prebuild the profiles in complain mode
[group('build')]
complain: build
./{{build}}/prebuild --buildir {{build}} --complain
# Prebuild the profiles in complain mode (test)
complain-test: build
@./{{build}}/prebuild --buildir {{build}} --complain --test
# Prebuild the profiles in FSP mode
[group('build')]
fsp: build
@./{{build}}/prebuild --buildir {{build}} --full
# Prebuild the profiles in FSP mode (complain)
[group('build')]
fsp-complain: build
@./{{build}}/prebuild --buildir {{build}} --complain --full
# Prebuild the profiles in FSP mode (debug)
[group('build')]
fsp-debug: build
@./{{build}}/prebuild --buildir {{build}} --complain --full --debug
# Install prebuild profiles
[group('install')]
install:
#!/usr/bin/env bash
set -eu -o pipefail
install -Dm0755 {{build}}/aa-log {{destdir}}/usr/bin/aa-log
mapfile -t share < <(find "{{build}}/share" -type f -not -name "*.md" -printf "%P\n")
for file in "${share[@]}"; do
install -Dm0644 "{{build}}/share/$file" "{{destdir}}/usr/share/$file"
done
mapfile -t aa < <(find "{{build}}/apparmor.d" -type f -printf "%P\n")
for file in "${aa[@]}"; do
install -Dm0644 "{{build}}/apparmor.d/$file" "{{destdir}}/etc/apparmor.d/$file"
done
mapfile -t links < <(find "{{build}}/apparmor.d" -type l -printf "%P\n")
for file in "${links[@]}"; do
mkdir -p "{{destdir}}/etc/apparmor.d/disable"
cp -d "{{build}}/apparmor.d/$file" "{{destdir}}/etc/apparmor.d/$file"
done
for file in "{{build}}/systemd/system/"*; do
service="$(basename "$file")"
install -Dm0644 "$file" "{{destdir}}/usr/lib/systemd/system/$service.d/apparmor.conf"
done
for file in "{{build}}/systemd/user/"*; do
service="$(basename "$file")"
install -Dm0644 "$file" "{{destdir}}/usr/lib/systemd/user/$service.d/apparmor.conf"
done
# Locally install prebuild profiles
[group('install')]
local +names:
#!/usr/bin/env bash
set -eu -o pipefail
install -Dm0755 {{build}}/aa-log {{destdir}}/usr/bin/aa-log
mapfile -t abs < <(find "{{build}}/apparmor.d/abstractions" -type f -printf "%P\n")
for file in "${abs[@]}"; do
install -Dm0644 "{{build}}/apparmor.d/abstractions/$file" "{{destdir}}/etc/apparmor.d/abstractions/$file"
done;
mapfile -t tunables < <(find "{{build}}/apparmor.d/tunables" -type f -printf "%P\n")
for file in "${tunables[@]}"; do
install -Dm0644 "{{build}}/apparmor.d/tunables/$file" "{{destdir}}/etc/apparmor.d/tunables/$file"
done;
echo "Warning: profile dependencies fallback to unconfined."
for file in {{names}}; do
grep -Ei 'rPx|rpx' "{{build}}/apparmor.d/$file" || true
sed -i -e "s/rPx/rPUx/g" "{{build}}/apparmor.d/$file"
install -Dvm0644 "{{build}}/apparmor.d/$file" "{{destdir}}/etc/apparmor.d/$file"
done;
systemctl restart apparmor || sudo journalctl -xeu apparmor.service
# Prebuild, install, and load a dev profile
[group('install')]
dev name:
go run ./cmd/prebuild --complain --file `find apparmor.d -iname {{name}}`
sudo install -Dm644 {{build}}/apparmor.d/{{name}} /etc/apparmor.d/{{name}}
sudo systemctl restart apparmor || sudo journalctl -xeu apparmor.service
# Build & install apparmor.d on Arch based systems
[group('packages')]
pkg:
@makepkg --syncdeps --install --cleanbuild --force --noconfirm
# Build & install apparmor.d on Debian based systems
[group('packages')]
dpkg:
@bash dists/build.sh dpkg
@sudo dpkg -i {{pkgdest}}/{{pkgname}}_*.deb
# Build & install apparmor.d on OpenSUSE based systems
[group('packages')]
rpm:
@bash dists/build.sh rpm
@sudo rpm -ivh --force {{pkgdest}}/{{pkgname}}-*.rpm
# Run the unit tests
[group('tests')]
tests:
@go test ./cmd/... -v -cover -coverprofile=coverage.out
@go test ./pkg/... -v -cover -coverprofile=coverage.out
@go tool cover -func=coverage.out
# Run the linters
[group('linter')]
lint:
golangci-lint run
packer fmt tests/packer/
packer validate --syntax-only tests/packer/
shellcheck --shell=bash \
PKGBUILD dists/build.sh dists/docker.sh tests/check.sh \
tests/packer/init.sh tests/packer/src/aa-update tests/packer/clean.sh \
debian/{{pkgname}}.postinst debian/{{pkgname}}.postrm
# Run style checks on the profiles
[group('linter')]
check:
@bash tests/check.sh
# Generate the man pages
[group('docs')]
man:
@pandoc -t man -s -o share/man/man8/aa-log.8 share/man/man8/aa-log.md
# Build the documentation
[group('docs')]
docs:
@ENABLED_GIT_REVISION_DATE=false MKDOCS_OFFLINE=true mkdocs build --strict
# Serve the documentation
[group('docs')]
serve:
@ENABLED_GIT_REVISION_DATE=false MKDOCS_OFFLINE=false mkdocs serve
# Remove all build artifacts
clean:
@rm -rf \
debian/.debhelper debian/debhelper* debian/*.debhelper debian/{{pkgname}} \
{{pkgdest}}/{{pkgname}}* {{build}} coverage.out
# Build the package in a clean OCI container
[group('packages')]
package dist:
#!/usr/bin/env bash
set -eu -o pipefail
dist="{{dist}}"
version=""
if [[ $dist =~ ubuntu([0-9]+) ]]; then
version="${BASH_REMATCH[1]}.04"
dist="ubuntu"
elif [[ $dist == debian* ]]; then
version="trixie"
dist="debian"
fi
bash dists/docker.sh $dist $version
# Build the VM image
[group('vm')]
img dist flavor: (package dist)
@mkdir -p {{base_dir}}
packer build -force \
-var dist={{dist}} \
-var flavor={{flavor}} \
-var prefix={{prefix}} \
-var username={{username}} \
-var password={{password}} \
-var ssh_publickey={{ssh_publickey}} \
-var disk_size={{disk_size}} \
-var cpus={{vcpus}} \
-var ram={{ram}} \
-var base_dir={{base_dir}} \
-var output_dir={{output_dir}} \
tests/packer/
# Create the machine
[group('vm')]
create dist flavor:
@cp -f {{base_dir}}/{{prefix}}{{dist}}-{{flavor}}.qcow2 {{vm}}/{{prefix}}{{dist}}-{{flavor}}.qcow2
@virt-install {{c}} \
--import \
--name {{prefix}}{{dist}}-{{flavor}} \
--vcpus {{vcpus}} \
--ram {{ram}} \
--machine q35 \
{{ if dist == "archlinux" { "" } else { "--boot uefi" } }} \
--memorybacking source.type=memfd,access.mode=shared \
--disk path={{vm}}/{{prefix}}{{dist}}-{{flavor}}.qcow2,format=qcow2,bus=virtio \
--filesystem "`pwd`,0a31bc478ef8e2461a4b1cc10a24cc4",accessmode=passthrough,driver.type=virtiofs \
--os-variant "`just _get_osinfo {{dist}}`" \
--graphics spice \
--audio id=1,type=spice \
--sound model=ich9 \
--noautoconsole
# Start a machine
[group('vm')]
up dist flavor:
@virsh {{c}} start {{prefix}}{{dist}}-{{flavor}}
# Stops the machine
[group('vm')]
halt dist flavor:
@virsh {{c}} shutdown {{prefix}}{{dist}}-{{flavor}}
# Reboot the machine
[group('vm')]
reboot dist flavor:
@virsh {{c}} reboot {{prefix}}{{dist}}-{{flavor}}
# Destroy the machine
[group('vm')]
destroy dist flavor:
@virsh {{c}} destroy {{prefix}}{{dist}}-{{flavor}} || true
@virsh {{c}} undefine {{prefix}}{{dist}}-{{flavor}} --nvram
@rm -fv {{vm}}/{{prefix}}{{dist}}-{{flavor}}.qcow2
# Connect to the machine
[group('vm')]
ssh dist flavor:
@ssh {{sshopt}} {{username}}@`just _get_ip {{dist}} {{flavor}}`
# Mount the shared directory on the machine
[group('vm')]
mount dist flavor:
@ssh {{sshopt}} {{username}}@`just _get_ip {{dist}} {{flavor}}` \
sh -c 'mount | grep 0a31bc478ef8e2461a4b1cc10a24cc4 || sudo mount 0a31bc478ef8e2461a4b1cc10a24cc4'
# Unmout the shared directory on the machine
[group('vm')]
umount dist flavor:
@ssh {{sshopt}} {{username}}@`just _get_ip {{dist}} {{flavor}}` \
sh -c 'true; sudo umount /home/{{username}}/Projects/apparmor.d || true'
# List the machines
[group('vm')]
list:
@printf "{{BOLD}} %-4s %-22s %s{{NORMAL}}\n" "Id" "Distribution-Flavor" "State"
@virsh {{c}} list --all | grep {{prefix}} | sed 's/{{prefix}}//g'
# List the VM images
[group('vm')]
images:
#!/usr/bin/env bash
set -eu -o pipefail
mkdir -p {{base_dir}}
ls -lh {{base_dir}} | awk '
BEGIN {
printf("{{BOLD}}%-18s %-10s %-5s %s{{NORMAL}}\n", "Distribution", "Flavor", "Size", "Date")
}
{
if ($9 ~ /^{{prefix}}.*\.qcow2$/) {
split($9, arr, "-|\\.")
printf("%-18s %-10s %-5s %s %s %s\n", arr[2], arr[3], $5, $6, $7, $8)
}
}
'
# List the VM images that can be created
[group('vm')]
available:
#!/usr/bin/env bash
set -eu -o pipefail
ls -lh tests/cloud-init | awk '
BEGIN {
printf("{{BOLD}}%-18s %s{{NORMAL}}\n", "Distribution", "Flavor")
}
{
if ($9 ~ /^.*\.user-data.yml$/) {
split($9, arr, "-|\\.")
printf("%-18s %s\n", arr[1], arr[2])
}
}
'
# Install dependencies for the integration tests
[group('tests')]
init:
@bash tests/requirements.sh
# Run the integration tests
[group('tests')]
integration name="":
bats --recursive --timing --print-output-on-failure tests/integration/{{name}}
# Install dependencies for the integration tests (machine)
[group('tests')]
tests-init dist flavor:
@ssh {{sshopt}} {{username}}@`just _get_ip {{dist}} {{flavor}}` \
just --justfile /home/{{username}}/Projects/apparmor.d/Justfile init
# Synchronize the integration tests (machine)
[group('tests')]
tests-sync dist flavor:
@ssh {{sshopt}} {{username}}@`just _get_ip {{dist}} {{flavor}}` \
rsync -a --delete /home/{{username}}/Projects/apparmor.d/tests/ /home/{{username}}/Projects/tests/
# Re-synchronize the integration tests (machine)
[group('tests')]
tests-resync dist flavor: (mount dist flavor) \
(tests-sync dist flavor) \
(umount dist flavor)
# Run the integration tests (machine)
[group('tests')]
tests-run dist flavor name="": (tests-resync dist flavor)
ssh {{sshopt}} {{username}}@`just _get_ip {{dist}} {{flavor}}` \
bats --recursive --pretty --timing --print-output-on-failure \
/home/{{username}}/Projects/tests/integration/{{name}}
_get_ip dist flavor:
@virsh --quiet --readonly {{c}} domifaddr {{prefix}}{{dist}}-{{flavor}} | \
head -1 | \
grep -E -o '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}'
_get_osinfo dist:
#!/usr/bin/env python3
osinfo = {
"archlinux": "archlinux",
"debian12": "debian12",
"debian13": "debian13",
"ubuntu22": "ubuntu22.04",
"ubuntu24": "ubuntu24.04",
"ubuntu25": "ubuntu25.04",
"opensuse": "opensusetumbleweed",
}
print(osinfo.get("{{dist}}", "{{dist}}"))

134
Makefile
View file

@ -1,134 +0,0 @@
#!/usr/bin/make -f
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2022-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
DESTDIR ?= /
BUILD ?= .build
PKGDEST ?= ${PWD}/.pkg
PKGNAME := apparmor.d
PROFILES = $(filter-out dpkg,$(notdir $(wildcard ${BUILD}/apparmor.d/*)))
.PHONY: all
all: build
@./${BUILD}/prebuild --complain
.PHONY: build
build:
@go build -o ${BUILD}/ ./cmd/aa-log
@go build -o ${BUILD}/ ./cmd/prebuild
.PHONY: enforce
enforce: build
@./${BUILD}/prebuild
.PHONY: full
full: build
@./${BUILD}/prebuild --complain --full
.PHONY: install
install:
@install -Dm0755 ${BUILD}/aa-log ${DESTDIR}/usr/bin/aa-log
@for file in $(shell find "${BUILD}/share" -type f -not -name "*.md" -printf "%P\n"); do \
install -Dm0644 "${BUILD}/share/$${file}" "${DESTDIR}/usr/share/$${file}"; \
done;
@for file in $(shell find "${BUILD}/apparmor.d" -type f -printf "%P\n"); do \
install -Dm0644 "${BUILD}/apparmor.d/$${file}" "${DESTDIR}/etc/apparmor.d/$${file}"; \
done;
@for file in $(shell find "${BUILD}/apparmor.d" -type l -printf "%P\n"); do \
mkdir -p "${DESTDIR}/etc/apparmor.d/disable"; \
cp -d "${BUILD}/apparmor.d/$${file}" "${DESTDIR}/etc/apparmor.d/$${file}"; \
done;
@for file in ${BUILD}/systemd/system/*; do \
service="$$(basename "$$file")"; \
install -Dm0644 "$${file}" "${DESTDIR}/usr/lib/systemd/system/$${service}.d/apparmor.conf"; \
done;
@for file in ${BUILD}/systemd/user/*; do \
service="$$(basename "$$file")"; \
install -Dm0644 "$${file}" "${DESTDIR}/usr/lib/systemd/user/$${service}.d/apparmor.conf"; \
done
.PHONY: $(PROFILES)
$(PROFILES):
@install -Dm0755 ${BUILD}/aa-log ${DESTDIR}/usr/bin/aa-log
@for file in $(shell find ${BUILD}/apparmor.d/abstractions/ -type f -printf "%P\n"); do \
install -Dm0644 "${BUILD}/apparmor.d/abstractions/$${file}" "${DESTDIR}/etc/apparmor.d/abstractions/$${file}"; \
done;
@for file in $(shell find ${BUILD}/apparmor.d/tunables/ -type f -printf "%P\n"); do \
install -Dm0644 "${BUILD}/apparmor.d/tunables/$${file}" "${DESTDIR}/etc/apparmor.d/tunables/$${file}"; \
done;
@echo "Warning: profile dependencies fallback to unconfined."
@for file in ${@}; do \
grep 'rPx' "${BUILD}/apparmor.d/$${file}"; \
sed -i -e "s/rPx/rPUx/g" "${BUILD}/apparmor.d/$${file}"; \
install -Dvm0644 "${BUILD}/apparmor.d/$${file}" "${DESTDIR}/etc/apparmor.d/$${file}"; \
done;
@systemctl restart apparmor || sudo journalctl -xeu apparmor.service
.PHONY: dev
name ?=
dev:
@go run ./cmd/prebuild --complain --file $(shell find apparmor.d -iname ${name})
@sudo install -Dm644 ${BUILD}/apparmor.d/${name} /etc/apparmor.d/${name}
@sudo systemctl restart apparmor || sudo journalctl -xeu apparmor.service
.PHONY: package
dist ?= archlinux
package:
@bash dists/docker.sh ${dist}
.PHONY: pkg
pkg:
@makepkg --syncdeps --install --cleanbuild --force --noconfirm
.PHONY: dpkg
dpkg:
@bash dists/build.sh dpkg
@sudo dpkg -i ${PKGDEST}/${PKGNAME}_*.deb
.PHONY: rpm
rpm:
@bash dists/build.sh rpm
@sudo rpm -ivh --force ${PKGDEST}/${PKGNAME}-*.rpm
.PHONY: tests
tests:
@go test ./cmd/... -v -cover -coverprofile=coverage.out
@go test ./pkg/... -v -cover -coverprofile=coverage.out
@go tool cover -func=coverage.out
.PHONY: lint
lint:
@golangci-lint run
@make --directory=tests lint
@shellcheck --shell=bash \
PKGBUILD dists/build.sh dists/docker.sh tests/check.sh \
tests/packer/init/init.sh tests/packer/src/aa-update tests/packer/init/clean.sh \
debian/${PKGNAME}.postinst debian/${PKGNAME}.postrm
.PHONY: check
check:
@bash tests/check.sh
.PHONY: bats
bats:
@bats --timing --print-output-on-failure tests/bats/
.PHONY: manual
manual:
@pandoc -t man -s -o root/usr/share/man/man8/aa-log.8 root/usr/share/man/man8/aa-log.md
.PHONY: docs
docs:
@ENABLED_GIT_REVISION_DATE=false MKDOCS_OFFLINE=true mkdocs build --strict
.PHONY: serve
serve:
@ENABLED_GIT_REVISION_DATE=false MKDOCS_OFFLINE=false mkdocs serve
.PHONY: clean
clean:
@rm -rf \
debian/.debhelper debian/debhelper* debian/*.debhelper debian/${PKGNAME} \
.pkg/${PKGNAME}* ${BUILD} coverage.out

122
PKGBUILD
View file

@ -3,19 +3,25 @@
# Warning: for development only, use https://aur.archlinux.org/packages/apparmor.d-git for production use.
pkgname=apparmor.d
pkgver=0.001
pkgbase=apparmor.d
pkgname=(
apparmor.d
# apparmor.d.enforced
# apparmor.d.fsp apparmor.d.fsp.enforced
# apparmor.d.server apparmor.d.server.enforced
# apparmor.d.server.fsp apparmor.d.server.fsp.enforced
)
pkgver=0.0001
pkgrel=1
pkgdesc="Full set of apparmor profiles"
arch=("x86_64")
url="https://github.com/roddhjav/$pkgname"
license=('GPL2')
depends=('apparmor')
makedepends=('go' 'git' 'rsync')
conflicts=("$pkgname-git")
arch=('x86_64' 'armv6h' 'armv7h' 'aarch64')
url="https://github.com/roddhjav/apparmor.d"
license=('GPL-2.0-only')
depends=('apparmor>=4.1.0' 'apparmor<5.0.0')
makedepends=('go' 'git' 'rsync' 'just')
pkgver() {
cd "$srcdir/$pkgname"
cd "$srcdir/$pkgbase"
echo "0.$(git rev-list --count HEAD)"
}
@ -24,16 +30,104 @@ prepare() {
}
build() {
cd "$srcdir/$pkgname"
cd "$srcdir/$pkgbase"
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOPATH="${srcdir}"
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
make DISTRIBUTION=arch
export DISTRIBUTION=arch
local -A modes=(
# Mapping of modes to just build target.
[default]=complain
# [enforced]=enforce
# [fsp]=fsp-complain
# [fsp.enforced]=fsp
# [server]=server-complain
# [server.enforced]=server
# [server.fsp]=server-fsp-complain
# [server.fsp.enforced]=server-fsp
)
for mode in "${!modes[@]}"; do
just build=".build/$mode" "${modes[$mode]}"
done
}
package() {
cd "$srcdir/$pkgname"
make install DESTDIR="$pkgdir"
_conflicts() {
local mode="$1"
local pattern=".$mode"
if [[ "$mode" == "default" ]]; then
pattern=""
else
echo "$pkgbase"
fi
for pkg in "${pkgname[@]}"; do
if [[ "$pkg" == "${pkgbase}${pattern}" ]]; then
continue
fi
echo "$pkg"
done
}
_install() {
local mode="${1:?}"
cd "$srcdir/$pkgbase"
just build=".build/$mode" destdir="$pkgdir" install
}
package_apparmor.d() {
mode=default
pkgdesc="$pkgdesc (complain mode)"
mapfile -t conflicts < <(_conflicts $mode)
_install $mode
}
package_apparmor.d.enforced() {
mode=enforced
pkgdesc="$pkgdesc (enforced mode)"
mapfile -t conflicts < <(_conflicts $mode)
_install $mode
}
package_apparmor.d.fsp() {
mode="fsp"
pkgdesc="$pkgdesc (FSP mode)"
mapfile -t conflicts < <(_conflicts $mode)
_install $mode
}
package_apparmor.d.fsp.enforced() {
mode="fsp.enforced"
pkgdesc="$pkgdesc (FSP enforced mode)"
mapfile -t conflicts < <(_conflicts $mode)
_install $mode
}
package_apparmor.d.server() {
mode="server"
pkgdesc="$pkgdesc (server complain mode)"
mapfile -t conflicts < <(_conflicts $mode)
_install $mode
}
package_apparmor.d.server.enforced() {
mode="server.enforced"
pkgdesc="$pkgdesc (server enforced mode)"
mapfile -t conflicts < <(_conflicts $mode)
_install $mode
}
package_apparmor.d.server.fsp() {
mode="server.fsp"
pkgdesc="$pkgdesc (server FSP complain mode)"
mapfile -t conflicts < <(_conflicts $mode)
_install $mode
}
package_apparmor.d.server.fsp.enforced() {
mode="server.fsp.enforced"
pkgdesc="$pkgdesc (server FSP enforced mode)"
mapfile -t conflicts < <(_conflicts $mode)
_install $mode
}

View file

@ -2,7 +2,7 @@
# apparmor.d
[![][workflow]][action] [![][build]][project] [![][quality]][goreportcard] [![][matrix]][matrix-link]
[![][workflow]][action] [![][build]][project] [![][quality]][goreportcard] [![][matrix]][matrix-link] [![][play]][play-link]
**Full set of AppArmor profiles**
@ -35,8 +35,11 @@
* Gnome (GDM)
* KDE (SDDM)
* XFCE (Lightdm) *(work in progress)*
- Fully tested *(work in progress)*
- [Fully tested](https://apparmor.pujol.io/development/tests/)
**Demo**
You want to try this project, or you are curious about the advanced usage and security it can provide without installing it on your machine. You can try it online on my AppArmor play machine at https://play.pujol.io/
> This project is originally based on the work from [Morfikov][upstream] and aims to extend it to more Linux distributions and desktop environments.
@ -59,6 +62,10 @@ Building the largest set of AppArmor profiles:
- [Linux Security Summit North America (LSS-NA 2023)](https://events.linuxfoundation.org/linux-security-summit-north-america/) *([Slide](https://lssna2023.sched.com/event/1K7bI/building-the-largest-working-set-of-apparmor-profiles-alexandre-pujol-the-collaboratory-tudublin), [Video](https://www.youtube.com/watch?v=OzyalrOzxE8))*
- [Ubuntu Summit 2023](https://events.canonical.com/event/31/) *([Slide](https://events.canonical.com/event/31/contributions/209/), [Video](https://www.youtube.com/watch?v=GK1J0TlxnFI))*
Lessons learned while making an AppArmor Play machine:
- [Linux Security Summit North America (LSS-NA 2025)](https://events.linuxfoundation.org/linux-security-summit-north-america/) *([Slide](https://lssna2025.sched.com/event/1zalf/lessons-learned-while-making-an-apparmor-play-machine-alexandre-pujol-linagora), [Video](https://www.youtube.com/watch?v=zCSl8honRI0))*
## Installation
Please see [apparmor.pujol.io/install](https://apparmor.pujol.io/install)
@ -93,6 +100,8 @@ and thus has the same license (GPL2).
[goreportcard]: https://goreportcard.com/report/github.com/roddhjav/apparmor.d
[matrix]: https://img.shields.io/badge/Matrix-%23apparmor.d-blue?style=flat-square&logo=matrix
[matrix-link]: https://matrix.to/#/#apparmor.d:matrix.org
[play]: https://img.shields.io/badge/Live_Demo-play.pujol.io-blue?style=flat-square
[play-link]: https://play.pujol.io
[android_model]: https://arxiv.org/pdf/1904.05572
[clipos]: https://clip-os.org/en/

View file

@ -4,25 +4,25 @@
abi <abi/4.0>,
# The unix socket to use to connect to the display
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]*"),
unix type=stream addr="@/tmp/.ICE-unix/[0-9]*",
unix type=stream addr="@/tmp/.X11-unix/X[0-9]*",
unix (connect, receive, send) type=stream peer=(addr=@/tmp/.ICE-unix/@{int}),
unix (connect, receive, send) type=stream peer=(addr=@/tmp/.X11-unix/X@{int}),
unix type=stream addr=@/tmp/.ICE-unix/@{int},
unix type=stream addr=@/tmp/.X11-unix/X@{int},
/usr/share/X11/{,**} r,
/usr/share/xsessions/{,*.desktop} r, # Available Xsessions
/usr/share/xkeyboard-config-2/{,**} r,
/etc/X11/cursors/{,**} r,
owner @{HOME}/.ICEauthority rw, # ICEauthority files required for X authentication, per user
owner @{HOME}/.ICEauthority r, # ICEauthority files required for X authentication, per user
owner @{HOME}/.Xauthority rw, # Xauthority files required for X connections, per user
owner @{HOME}/.xsession-errors rw,
/tmp/.ICE-unix/* rw,
/tmp/.ICE-unix/@{int} rw,
/tmp/.X@{int}-lock rw,
/tmp/.X11-unix/* rw,
/tmp/.X11-unix/X@{int} rw,
owner @{tmp}/xauth_@{rand6} rl -> @{tmp}/#@{int},
owner @{run}/user/@{uid}/.mutter-Xwaylandauth.@{rand6} rw, # Xwayland

View file

@ -0,0 +1,15 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allow communication with Assistive Technology Service Provider Interface (AT-SPI)
abi <abi/4.0>,
include <abstractions/bus-accessibility>
include <abstractions/bus/accessibility/org.a11y>
include <abstractions/bus/session/org.a11y>
include if exists <abstractions/accessibility.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,30 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Kernel Fusion Driver for AMD GPUs
abi <abi/4.0>,
@{sys}/devices/virtual/kfd/kfd/topology/nodes/@{int}/ r,
@{sys}/devices/virtual/kfd/kfd/topology/nodes/@{int}/properties r,
@{sys}/devices/virtual/kfd/kfd/dev r,
@{sys}/devices/virtual/kfd/kfd/topology/ r,
@{sys}/devices/virtual/kfd/kfd/topology/generation_id r,
@{sys}/devices/virtual/kfd/kfd/topology/nodes/ r,
@{sys}/devices/virtual/kfd/kfd/topology/nodes/@{int}/ r,
@{sys}/devices/virtual/kfd/kfd/topology/nodes/@{int}/caches/@{int}/properties r,
@{sys}/devices/virtual/kfd/kfd/topology/nodes/@{int}/gpu_id r,
@{sys}/devices/virtual/kfd/kfd/topology/nodes/@{int}/io_links/@{int}/properties r,
@{sys}/devices/virtual/kfd/kfd/topology/nodes/@{int}/mem_banks/@{int}/properties r,
@{sys}/devices/virtual/kfd/kfd/topology/nodes/@{int}/properties r,
@{sys}/devices/virtual/kfd/kfd/topology/system_properties r,
@{sys}/devices/virtual/kfd/kfd/uevent r,
@{sys}/module/amdgpu/initstate r,
/dev/kfd rw,
include if exists <abstractions/amdgpu.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,11 @@
# 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>,
owner @{HOME}/.ansible/tmp/ansible-tmp-*/* rw,
include if exists <abstractions/ansible.d>
# vim:syntax=apparmor

View file

@ -5,13 +5,11 @@
abi <abi/4.0>,
@{bin}/** PUx,
/usr/local/{s,}bin/** PUx,
include <abstractions/path>
@{bin}/ r,
/ r,
/usr/ r,
/usr/local/{s,}bin/ r,
@{bin}/** PUx,
@{sbin}/** PUx,
/usr/local/{s,}bin/** PUx,
include if exists <abstractions/app-launcher-root.d>

View file

@ -5,6 +5,8 @@
abi <abi/4.0>,
include <abstractions/path>
@{bin}/** PUx,
/opt/*/** PUx,
/usr/share/** PUx,
@ -18,12 +20,6 @@
@{thunderbird_path} Px,
@{offices_path} PUx,
@{bin}/ r,
/ r,
/usr/ r,
/usr/local/bin/ r,
@{user_bin_dirs}/ r,
@{user_bin_dirs}/** PUx,
include if exists <abstractions/app-launcher-user.d>

View file

@ -18,6 +18,7 @@
# Labeled programs
@{archive_viewers_path} PUx,
@{backup_path} PUx,
@{browsers_path} Px,
@{document_viewers_path} PUx,
@{emails_path} PUx,
@ -25,6 +26,7 @@
@{help_path} Px,
@{image_viewers_path} PUx,
@{offices_path} PUx,
@{terminal_path} Px,
@{text_editors_path} PUx,
# Others
@ -33,17 +35,19 @@
@{bin}/discord{,-ptb} Px,
@{bin}/draw.io PUx,
@{bin}/dropbox Px,
@{bin}/ebook-edit PUx,
@{bin}/element-desktop Px,
@{bin}/extension-manager Px,
@{bin}/filezilla Px,
@{bin}/flameshot Px,
@{bin}/gimp* PUx,
@{bin}/gnome-calculator PUx,
@{bin}/gimp{,-3.0} Px,
@{bin}/gnome-calculator Px,
@{bin}/gnome-disk-image-mounter Px,
@{bin}/gnome-disks Px,
@{bin}/gnome-session-quit Px,
@{bin}/gnome-software Px,
@{bin}/gwenview PUx,
@{bin}/kgx Px,
@{bin}/keepassxc Px,
@{bin}/qbittorrent Px,
@{bin}/qpdfview Px,
@{bin}/smplayer Px,
@ -51,15 +55,12 @@
@{bin}/telegram-desktop Px,
@{bin}/transmission-gtk Px,
@{bin}/viewnior PUx,
@{bin}/vlc PUx,
@{bin}/vlc Px,
@{bin}/xbrlapi Px,
#aa:only opensuse
@{lib}/YaST2/** PUx,
# Backup
@{lib}/deja-dup/deja-dup-monitor PUx,
include if exists <abstractions/app-open.d>
# vim:syntax=apparmor

View file

@ -2,6 +2,11 @@
# Copyright (C) 2022-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# LOGPROF-SUGGEST: no
# NEEDS-VARIABLE: name
# NEEDS-VARIABLE: domain
# NEEDS-VARIABLE: lib_dirs
# NEEDS-VARIABLE: config_dirs
# NEEDS-VARIABLE: cache_dirs
# Full set of rules for all chromium based browsers. It works as a *function*
# and requires some variables to be provided as *arguments* and set in the
@ -20,39 +25,32 @@
abi <abi/4.0>,
include <abstractions/audio-client>
include <abstractions/avahi-observe>
include <abstractions/bus-session>
include <abstractions/bus-system>
include <abstractions/bus/org.bluez>
include <abstractions/bus/org.freedesktop.Avahi>
include <abstractions/bus/org.freedesktop.FileManager1>
include <abstractions/bus/org.freedesktop.Notifications>
include <abstractions/bus/org.freedesktop.ScreenSaver>
include <abstractions/bus/org.freedesktop.secrets>
include <abstractions/bus/org.freedesktop.UPower>
include <abstractions/bus/org.gnome.Mutter.IdleMonitor>
include <abstractions/bus/org.gnome.ScreenSaver>
include <abstractions/bus/org.gnome.SessionManager>
include <abstractions/bus/org.kde.kwalletd>
include <abstractions/bus/session/org.gnome.SessionManager>
include <abstractions/bus/system/org.bluez>
include <abstractions/camera>
include <abstractions/common/chromium>
include <abstractions/dconf-write>
include <abstractions/desktop>
include <abstractions/devices-usb>
include <abstractions/devices-u2f>
include <abstractions/devices-usb-read>
include <abstractions/fontconfig-cache-read>
include <abstractions/graphics-full>
include <abstractions/graphics>
include <abstractions/nameservice-strict>
include <abstractions/notifications>
include <abstractions/pcscd>
include <abstractions/screensaver>
include <abstractions/secrets-service>
include <abstractions/ssl_certs>
include <abstractions/thumbnails-cache-read>
include <abstractions/uim>
include <abstractions/upower-observe>
include <abstractions/user-download-strict>
include <abstractions/user-read-strict>
include <abstractions/video>
userns,
capability setgid,
capability setuid,
capability sys_admin,
capability sys_chroot,
capability sys_ptrace,
network inet dgram,
network inet6 dgram,
@ -78,7 +76,7 @@
@{lib_dirs}/chrome-sandbox rPx,
# Desktop integration
@{bin}/lsb_release rPx -> lsb_release,
@{bin}/lsb_release rPx,
@{bin}/xdg-desktop-menu rPx,
@{bin}/xdg-email rPx,
@{bin}/xdg-icon-resource rPx,
@ -86,16 +84,11 @@
@{bin}/xdg-open rPx -> child-open,
@{bin}/xdg-settings rPx,
# Installing/removing extensions & applications
@{bin}/{,e}grep rix,
@{bin}/basename rix,
@{bin}/cat rix,
@{bin}/cut rix,
@{bin}/mkdir rix,
@{bin}/mktemp rix,
@{bin}/rm rix,
@{bin}/sed rix,
@{bin}/touch rix,
# Installing/removing extensions, applications, and stacked xdg menus
@{sh_path} rix,
@{bin}/{,e}grep ix,
@{bin}/{m,g,}awk ix,
@{coreutils_path} ix,
# For storing passwords externally
@{bin}/keepassxc-proxy rix, # as a temporary solution - see issue #128
@ -115,23 +108,14 @@
/etc/@{name}/{,**} r,
/etc/fstab r,
/etc/{,opensc/}opensc.conf r,
/var/lib/dbus/machine-id r,
/etc/machine-id r,
/ r,
owner @{HOME}/ r,
owner @{HOME}/.pki/ rw,
owner @{HOME}/.pki/nssdb/ rw,
owner @{HOME}/.pki/nssdb/pkcs11.txt rw,
owner @{HOME}/.pki/nssdb/{cert9,key4}.db rwk,
owner @{HOME}/.pki/nssdb/{cert9,key4}.db-journal rw,
owner @{user_config_dirs}/gtk-3.0/servers r,
owner @{user_share_dirs}/.@{domain}.@{rand6} rw,
owner @{user_cache_dirs}/gtk-3.0/**/*.cache r,
owner @{user_config_dirs}/gtk-3.0/servers r,
owner @{user_share_dirs}/icons/hicolor/.xdg-icon-resource-dummy w,
owner @{config_dirs}/ rw,
owner @{config_dirs}/** rwk,
@ -141,7 +125,7 @@
owner @{user_config_dirs}/kioslaverc r,
owner @{user_config_dirs}/menus/applications-merged/ r,
owner @{user_config_dirs}/menus/applications-merged/xdg-desktop-menu-dummy.menu r,
owner @{user_config_dirs}/menus/applications-merged/*.menu rw,
# For importing data (bookmarks, cookies, etc) from Firefox
# owner @{HOME}/.mozilla/firefox/profiles.ini r,
@ -155,10 +139,8 @@
/tmp/ r,
/var/tmp/ r,
owner @{tmp}/.@{domain}.@{rand6} rw,
owner @{tmp}/.@{domain}.@{rand6}/{,**} rw,
owner @{tmp}/@{name}-crashlog-@{int}-@{int}.txt rw,
owner @{tmp}/scoped_dir@{rand6}/{,**} rw,
owner @{tmp}/tmp.@{rand10} rw,
owner @{tmp}/tmp.@{rand6} rw,
owner @{tmp}/tmp.@{rand6}/ rw,
owner @{tmp}/tmp.@{rand6}/** rwk,
@ -166,9 +148,6 @@
owner @{run}/user/@{uid}/app/org.keepassxc.KeePassXC/org.keepassxc.KeePassXC.BrowserServer rw,
owner @{run}/user/@{uid}/org.keepassxc.KeePassXC.BrowserServer rw,
/dev/shm/ r,
owner /dev/shm/.@{domain}.@{rand6} rw,
@{run}/udev/data/c13:@{int} r, # for /dev/input/*
@{sys}/bus/ r,
@ -176,12 +155,7 @@
@{sys}/class/**/ r,
@{sys}/devices/@{pci}/{in_intensity_sampling_frequency,in_intensity_scale,in_illuminance_raw} r,
@{sys}/devices/@{pci}/boot_vga r,
@{sys}/devices/@{pci}/report_descriptor r,
@{sys}/devices/**/uevent r,
@{sys}/devices/system/cpu/kernel_max r,
@{sys}/devices/virtual/**/report_descriptor r,
@{sys}/devices/virtual/dmi/id/{sys_vendor,product_name} r,
@{sys}/devices/virtual/tty/tty@{int}/active r,
@{PROC}/ r,
@{PROC}/@{pid}/fd/ r,
@ -195,20 +169,17 @@
owner @{PROC}/@{pid}/clear_refs w,
owner @{PROC}/@{pid}/cmdline r,
owner @{PROC}/@{pid}/environ r,
owner @{PROC}/@{pid}/gid_map w,
owner @{PROC}/@{pid}/limits r,
owner @{PROC}/@{pid}/mem r,
owner @{PROC}/@{pid}/mountinfo r,
owner @{PROC}/@{pid}/mounts r,
owner @{PROC}/@{pid}/oom_{,score_}adj rw,
owner @{PROC}/@{pid}/setgroups w,
owner @{PROC}/@{pid}/smaps_rollup r,
owner @{PROC}/@{pid}/task/ r,
owner @{PROC}/@{pid}/task/@{tid}/comm rw,
owner @{PROC}/@{pid}/task/@{tid}/stat r,
owner @{PROC}/@{pid}/uid_map w,
/dev/ r,
/dev/hidraw@{int} rw,
/dev/tty rw,
owner /dev/tty@{int} rw,

View file

@ -10,11 +10,12 @@
include <abstractions/consoles>
@{sh_path} rix,
@{bin}/nvim mix,
@{bin}/nvim mrix,
@{bin}/sensible-editor mr,
@{bin}/vim{,.*} mrix,
@{bin}/which{,.debianutils} ix,
@{bin}/vim* mrix,
@{bin}/which{,.debianutils} rix,
/usr/share/doc/{,**} r,
/usr/share/nvim/{,**} r,
/usr/share/terminfo/** r,
/usr/share/vim/{,**} r,
@ -24,6 +25,8 @@
/etc/xdg/nvim/* r,
owner @{HOME}/.selected_editor r,
owner @{HOME}/.vim/{after/,}spell/{,**} rw,
owner @{HOME}/.vim/** r,
owner @{HOME}/.viminf@{c}{,.tmp} rw,
owner @{HOME}/.vimrc r,

View file

@ -2,6 +2,10 @@
# Copyright (C) 2022-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# LOGPROF-SUGGEST: no
# NEEDS-VARIABLE: name
# NEEDS-VARIABLE: lib_dirs
# NEEDS-VARIABLE: config_dirs
# NEEDS-VARIABLE: cache_dirs
# Full set of rules for all firefox based browsers. It works as a *function*
# and requires some variables to be provided as *arguments* and set in the
@ -18,17 +22,21 @@
include <abstractions/audio-client>
include <abstractions/bus-session>
include <abstractions/bus-system>
include <abstractions/bus/org.a11y>
include <abstractions/bus/org.freedesktop.FileManager1>
include <abstractions/bus/org.freedesktop.NetworkManager>
include <abstractions/bus/org.freedesktop.portal.Desktop>
include <abstractions/bus/org.freedesktop.RealtimeKit1>
include <abstractions/bus/org.freedesktop.timedate1>
include <abstractions/cups-client>
include <abstractions/dconf-write>
include <abstractions/desktop>
include <abstractions/devices-u2f>
include <abstractions/enchant>
include <abstractions/fontconfig-cache-read>
include <abstractions/graphics-full>
include <abstractions/graphics>
include <abstractions/gstreamer>
include <abstractions/nameservice-strict>
include <abstractions/pcscd>
include <abstractions/ssl_certs>
include <abstractions/thumbnails-cache-read>
include <abstractions/uim>
@ -64,7 +72,7 @@
@{lib_dirs}/plugin-container rPx,
# Desktop integration
@{bin}/lsb_release rPx -> lsb_release,
@{bin}/lsb_release rPx,
/usr/share/@{name}/{,**} r,
/usr/share/doc/{,**} r,
@ -72,7 +80,6 @@
/usr/share/webext/{,**} r,
/usr/share/xul-ext/kwallet5/* r,
/etc/{,opensc/}opensc.conf r,
/etc/@{name}/{,**} r,
/etc/fstab r,
/etc/lsb-release r,
@ -96,8 +103,14 @@
/var/tmp/ r,
owner @{tmp}/@{name}/ rw,
owner @{tmp}/@{name}/* rwk,
owner @{tmp}/@{rand6}.tmp rw,
owner @{tmp}/firefox/ rw,
owner @{tmp}/firefox/* rwk,
owner @{tmp}/mozilla* rw,
owner @{tmp}/mozilla*/ rw,
owner @{tmp}/mozilla*/* rwk,
owner @{tmp}/remote-settings-startup-bundle- rw,
owner @{tmp}/remote-settings-startup-bundle-.tmp rw,
owner @{tmp}/Temp-@{uuid}/ rw,
owner @{tmp}/Temp-@{uuid}/* rwk,
owner @{tmp}/tmp-*.xpi rw,
@ -124,8 +137,10 @@
@{sys}/devices/**/uevent r,
@{sys}/devices/power/events/energy-* r,
@{sys}/devices/power/type r,
@{sys}/devices/virtual/dmi/id/product_name r,
@{sys}/devices/virtual/dmi/id/product_sku r,
@{sys}/fs/cgroup/cpu,cpuacct/cpu.cfs_quota_us r,
@{sys}/fs/cgroup/user.slice/user-@{uid}.slice/session-@{int}.scope/cpu.max r,
@{sys}/fs/cgroup/user.slice/user-@{uid}.slice/session-@{word}.scope/cpu.max r,
owner @{sys}/fs/cgroup/user.slice/user-@{uid}.slice/user@@{uid}.service/**/cpu.max r,
@{PROC}/@{pid}/net/arp r,
@ -149,7 +164,6 @@
owner @{PROC}/@{pid}/uid_map w, # If kernel.unprivileged_userns_clone = 1
/dev/ r,
/dev/hidraw@{int} rw,
/dev/tty rw,
/dev/video@{int} rw,
owner /dev/tty@{int} rw, # File Inherit

View file

@ -0,0 +1,35 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# LOGPROF-SUGGEST: no
# Minimal set of rules for fusermount subprofiles. Path to mount/unmount should
# be defined in the calling profile.
abi <abi/4.0>,
include <abstractions/consoles>
include <abstractions/nameservice-strict>
capability dac_override,
capability dac_read_search,
capability sys_admin, # To mount anything
@{bin}/fusermount{,3} mr,
@{bin}/mount rix,
@{bin}/umount rix,
@{etc_ro}/fuse{,3}.conf r,
@{run}/mount/utab r,
@{run}/mount/utab.* rwk,
@{PROC}/@{pid}/mountinfo r,
@{PROC}/@{pid}/mounts r,
/dev/fuse rw,
include if exists <abstractions/app/fusermount.d>
# vim:syntax=apparmor

View file

@ -7,13 +7,7 @@
include <abstractions/consoles>
@{bin}/depmod mr,
@{bin}/insmod mr,
@{bin}/kmod mr,
@{bin}/lsmod mr,
@{bin}/modinfo mr,
@{bin}/modprobe mr,
@{bin}/rmmod mr,
@{lib}/modprobe.d/ r,
@{lib}/modprobe.d/*.conf r,

View file

@ -3,19 +3,44 @@
# SPDX-License-Identifier: GPL-2.0-only
# LOGPROF-SUGGEST: no
# Full set of rules for child-open-* profiles.
# Full set of rules for desktop generic open-* used in child-open-* profiles.
abi <abi/4.0>,
include <abstractions/accessibility>
include <abstractions/bus-session>
include <abstractions/desktop>
@{open_path} mrix,
# We cannot use `@{open_path} mrix,` here because it includes:
# @{lib}/@{multiarch}/glib-@{version}/gio-launch-desktop
# And `@{multiarch}` has a wildcard that cannot be merged and that will generate
# "has merged rule with conflicting x modifiers" error when used with other
# wilcard over PUx transition.
@{bin}/exo-open mrix,
@{bin}/xdg-open mrix,
@{bin}/gio mrix,
@{bin}/kde-open mrix,
@{bin}/gio-launch-desktop mrix,
@{lib}/gio-launch-desktop mrix,
@{sh_path} r,
@{bin}/env rix,
@{sh_path} r,
/dev/tty rw,
# if @{DE} == kde
include <abstractions/audio-client>
include <abstractions/graphics>
include <abstractions/nameservice-strict>
owner @{run}/user/@{uid}/#@{int} rw,
owner @{run}/user/@{uid}/kioclient@{rand6}.@{int}.kioworker.socket rwl -> @{run}/user/@{uid}/#@{int},
@{PROC}/sys/kernel/random/boot_id r,
# fi
include if exists <abstractions/app/open.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,39 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# LOGPROF-SUGGEST: no
# Minimal set of rules for pagers.
abi <abi/4.0>,
include <abstractions/consoles>
capability dac_override,
capability dac_read_search,
signal receive set=(stop, cont, term, kill),
@{bin}/ r,
@{pager_path} mrix,
@{system_share_dirs}/terminfo/{,**} r,
/usr/share/file/misc/** r,
/usr/share/nvim/{,**} r,
@{etc_ro}/lesskey.bin r,
@{HOME}/.lesshst r,
owner @{HOME}/ r,
owner @{HOME}/.lesshs* rw,
owner @{HOME}/.terminfo/@{int}/* r,
owner @{user_cache_dirs}/lesshs* rw,
owner @{user_state_dirs}/ r,
owner @{user_state_dirs}/lesshs* rw,
/dev/tty@{int} rw,
include if exists <abstractions/app/pager.d>
# vim:syntax=apparmor

View file

@ -19,10 +19,13 @@
@{sys}/devices/system/node/node@{int}/meminfo r,
@{PROC}/ r,
@{PROC}/@{pid}/status r,
@{PROC}/@{pids}/cgroup r,
@{PROC}/@{pids}/cmdline r,
@{PROC}/@{pids}/environ r,
@{PROC}/@{pids}/stat r,
@{PROC}/sys/kernel/osrelease r,
@{PROC}/tty/drivers r,
@{PROC}/uptime r,
include if exists <abstractions/app/pgrep.d>

View file

@ -30,6 +30,8 @@
/etc/shells r,
@{PROC}/@{pid}/fdinfo/@{int} r,
@{PROC}/@{pid}/stat r,
owner @{PROC}/@{pid}/loginuid r,
owner /dev/tty@{int} rw,

View file

@ -3,7 +3,7 @@
# SPDX-License-Identifier: GPL-2.0-only
# LOGPROF-SUGGEST: no
# Minimal set of rules for sudo. Interactive sudo need more rules.
# Minimal set of rules for sudo.
abi <abi/4.0>,
@ -24,10 +24,10 @@
network netlink raw, # PAM
unix bind type=stream addr=@@{udbus}/bus/sudo/system,
unix type=stream addr=@@{udbus}/bus/sudo/system,
#aa:dbus talk bus=system name=org.freedesktop.home1 label=systemd-homed
#aa:dbus talk bus=system name=org.freedesktop.login1 label=systemd-logind
#aa:dbus talk bus=system name=org.freedesktop.home1 label="@{p_systemd_homed}"
#aa:dbus talk bus=system name=org.freedesktop.login1 label="@{p_systemd_logind}"
dbus (send receive) bus=session path=/org/freedesktop/systemd1
interface=org.freedesktop.systemd.Manager

View file

@ -11,9 +11,12 @@
ptrace read peer=@{p_systemd},
unix bind type=stream addr=@@{udbus}/bus/systemctl/,
unix bind type=stream addr=@@{udbus}/bus/systemctl/system,
@{bin}/systemctl mr,
@{att}/@{run}/systemd/private rw,
owner @{run}/systemd/private rw,
@{PROC}/1/cgroup r,

View file

@ -11,7 +11,8 @@
/etc/udev/udev.conf r,
@{run}/udev/data/* r,
@{run}/udev/data/+*:* r, # Identifies all subsystems
@{run}/udev/data/c@{int}:@{int} r, # Identifies all character devices
@{sys}/** r,

View file

@ -6,7 +6,9 @@
abi <abi/4.0>,
/usr/share/dpkg/cputable r,
/usr/share/dpkg/ostable r,
/usr/share/dpkg/tupletable r,
/usr/share/dpkg/varianttable r,
/etc/apt/apt.conf r,
/etc/apt/apt.conf.d/{,*} r,
@ -18,6 +20,9 @@
/etc/apt/sources.list.d/ r,
/etc/apt/sources.list.d/*.{sources,list} r,
/etc/apt/trusted.gpg r,
/etc/apt/trusted.gpg.d/{,*} r,
/var/lib/apt/lists/{,**} r,
/var/lib/apt/extended_states r,
@ -25,11 +30,14 @@
/var/cache/apt/srcpkgcache.bin r,
/var/lib/dpkg/status r,
/var/lib/ubuntu-advantage/apt-esm/{,**} r,
/var/lib/ubuntu-advantage/apt-esm/{,**} r, #aa:only ubuntu
owner @{tmp}/#@{int} rw,
owner @{tmp}/clearsigned.message.* rw,
include if exists <abstractions/common/apt.d>
#aa:only test
/tmp/autopkgtest.@{rand6}/** rwk,
include if exists <abstractions/apt.d>
# vim:syntax=apparmor

View file

@ -3,15 +3,21 @@
# SPDX-License-Identifier: GPL-2.0-only
# LOGPROF-SUGGEST: no
# Do not use it manually, it is automatically included in profiles when it is required.
# Do not use it manually, It automatically replaces the base abstraction in a
# profile with the attach_disconnected flag set and the re-attached path enabled.
abi <abi/4.0>,
include <abstractions/base>
@{att}/@{run}/systemd/journal/dev-log w,
@{att}/@{run}/systemd/journal/socket w,
@{att}/@{run}/systemd/journal/stdout rw,
deny /apparmor/.null rw,
deny @{att}/apparmor/.null rw,
@{att}/dev/null rw,
/apparmor/.null rw,
@{att}/apparmor/.null rw,
include if exists <abstractions/attached/base.d>

View file

@ -3,10 +3,26 @@
# SPDX-License-Identifier: GPL-2.0-only
# LOGPROF-SUGGEST: no
# Do not use it manually, It automatically replaces the consoles abstraction in a
# profile with the attach_disconnected flag set and the re-attached path enabled.
abi <abi/4.0>,
@{att}/dev/tty@{int} rw,
owner @{att}/dev/pts/@{int} rw,
# There are the common ways to refer to consoles
/dev/console rw,
/dev/tty rw,
/dev/tty@{u8} rw,
@{att}/dev/tty rw,
@{att}/dev/tty@{u8} rw,
# These entries are a bit 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/ r,
owner /dev/pts/@{u16} rw,
@{att}/pts/ r,
owner @{att}/dev/pts/@{u16} rw,
include if exists <abstractions/attached/consoles.d>

View file

@ -21,6 +21,7 @@
/etc/openal/alsoft.conf r,
/etc/pipewire/client{,-rt}.conf r,
/etc/pipewire/client{,-rt}.conf.d/{,**} r,
/etc/pipewire/jack.conf.d/{,**} r,
/etc/pulse/client.conf r,
/etc/pulse/client.conf.d/{,**} r,
/etc/wildmidi/wildmidi.cfg r,
@ -56,12 +57,18 @@
owner @{run}/user/@{uid}/pulse/ rw,
owner @{run}/user/@{uid}/pulse/native rw,
@{run}/udev/data/c116:@{int} r, # For ALSA
@{run}/udev/data/+sound:card@{int} r, # For sound card
@{sys}/class/ r,
@{sys}/class/sound/ r,
/dev/shm/ r,
owner /dev/shm/pulse-shm-@{int} rw,
/dev/snd/controlC@{int} r,
/dev/snd/pcmC@{int}D@{int}[cp] r,
/dev/snd/timer r,
include if exists <abstractions/audio-client.d>

View file

@ -9,11 +9,6 @@
include <abstractions/audio-client>
@{run}/udev/data/+sound:card@{int} r, # for sound card
@{sys}/class/ r,
@{sys}/class/sound/ r,
@{PROC}/asound/** rw,
/dev/admmidi* rw,

View file

@ -3,9 +3,10 @@
# SPDX-License-Identifier: GPL-2.0-only
@{bin}/pam-tmpdir-helper rPx,
@{lib}/pam-tmpdir/pam-tmpdir-helper rPx,
#aa:only abi3
@{bin}/unix_chkpwd rPx,
@{sbin}/unix_chkpwd rPx,
#aa:only whonix
@{lib}/security-misc/pam-abort-on-locked-password rPx,

View file

@ -0,0 +1,25 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2016 Canonical Ltd
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allows domain, record, service, and service type browsing as well as address,
# host and service resolving
abi <abi/4.0>,
include <abstractions/bus/system/org.freedesktop.Avahi.Server>
include <abstractions/bus/system/org.freedesktop.Avahi.AddressResolver>
include <abstractions/bus/system/org.freedesktop.Avahi.DomainBrowser>
include <abstractions/bus/system/org.freedesktop.Avahi.HostNameResolver>
include <abstractions/bus/system/org.freedesktop.Avahi.RecordBrowser>
include <abstractions/bus/system/org.freedesktop.Avahi.ServiceBrowser>
include <abstractions/bus/system/org.freedesktop.Avahi.ServiceResolver>
include <abstractions/bus/system/org.freedesktop.Avahi.ServiceTypeBrowser>
@{run}/avahi-daemon/socket rw,
include if exists <abstractions/avahi-observe.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,132 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2002-2009 Novell/SUSE
# Copyright (C) 2009-2011 Canonical Ltd.
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# LOGPROF-SUGGEST: no
# Do not use it manually, It automatically replaces the base abstraction in
# profiles when the re-attached mode is enabled.
# For now, it is only a restructuring of the base abstraction with awareness
# of the apparmor.d architecture.
abi <abi/4.0>,
include <abstractions/crypto>
include <abstractions/glibc>
include <abstractions/ld>
include <abstractions/locale>
# 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,
#aa:exclude RBAC
# Allow unconfined processes to send us signals by default
signal receive peer=unconfined,
# Systemd: allow to receive any signal from the systemd profiles stack
signal receive peer=@{p_systemd},
signal receive peer=@{p_systemd_user},
# Htop like programs can send any signal to any process
signal receive peer=btop,
signal receive peer=htop,
signal receive peer=top,
signal receive set=(cont,term,kill,stop) peer=gnome-system-monitor,
# Allow to receive termination signal from manager such as sudo, login, shutdown or systemd
signal receive peer=su,
signal receive peer=sudo,
signal receive set=(cont,term,kill,stop) peer=gnome-shell,
signal receive set=(cont,term,kill,stop) peer=login,
signal receive set=(cont,term,kill,stop) peer=openbox,
signal receive set=(cont,term,kill,stop) peer=systemd-shutdown,
signal receive set=(cont,term,kill,stop) peer=xinit,
# 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 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 communication to children and stacked profiles
signal peer=@{profile_name}//*,
signal peer=@{profile_name}//&*,
unix type=stream peer=(label=@{profile_name}//*),
# 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),
# Allow all programs to use common libraries
@{lib}/** r,
@{lib}/**.so* m,
@{lib}/@{multiarch}/**.so* m,
@{lib}/@{multiarch}/** r,
# Some applications will display license information
/usr/share/common-licenses/** 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,
# Transparent hugepage support
@{sys}/kernel/mm/transparent_hugepage/hpage_pmd_size r,
# Systemd's equivalent of /dev/log
@{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,
# Allow determining the highest valid capability of the running kernel
@{PROC}/sys/kernel/cap_last_cap r,
# Controls how core dump files are named
@{PROC}/sys/kernel/core_pattern r,
# Sometimes used to determine kernel/user interfaces to use
@{PROC}/sys/kernel/version r,
# Harmless and frequently used
/dev/null rw,
/dev/random r,
/dev/urandom r,
/dev/zero rw,
# 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,
include if exists <abstractions/base-strict.d>
# vim:syntax=apparmor

View file

@ -3,34 +3,33 @@
# Copyright (C) 2021-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allow to receive some signals from new well-known profiles
signal (receive) peer=btop,
signal (receive) peer=htop,
signal (receive) peer=sudo,
signal (receive) peer=top,
signal (receive) set=(cont,term,kill,stop) peer=systemd-shutdown,
signal (receive) set=(cont,term) peer=@{p_systemd_user},
signal (receive) set=(cont,term) peer=@{p_systemd},
signal (receive) set=(hup term) peer=login,
signal (receive) set=(hup) peer=xinit,
signal (receive) set=(term,kill) peer=gnome-shell,
signal (receive) set=(term,kill) peer=gnome-system-monitor,
signal (receive) set=(term,kill) peer=openbox,
signal (receive) set=(term,kill) peer=su,
# Systemd: allow to receive any signal from the systemd profiles stack
signal receive peer=@{p_systemd},
signal receive peer=@{p_systemd_user},
ptrace (readby) peer=systemd-coredump,
# Allow to receive some signals from new well-known profiles
signal receive peer=btop,
signal receive peer=htop,
signal receive peer=pkill,
signal receive peer=sudo,
signal receive peer=top,
signal receive set=(cont,term,kill,stop) peer=systemd-shutdown,
signal receive set=(hup term) peer=login,
signal receive set=(hup) peer=xinit,
signal receive set=(term,kill) peer=gnome-shell,
signal receive set=(term,kill) peer=gnome-system-monitor,
signal receive set=(term,kill) peer=openbox,
signal receive set=(term,kill) peer=su,
ptrace readby peer=@{p_systemd_coredump},
@{etc_rw}/localtime r,
/etc/locale.conf r,
# mesa 24.2 introduced a shader disk cache which opens quite a lot of fd.
# They are not closed and get inherited by child programs. Denying it can cause
# crash, so we are allowing it globally while the issue is beeing fixed in mesa.
owner @{user_cache_dirs}/mesa_shader_cache_db/part@{int}/mesa_cache.db rw,
owner @{user_cache_dirs}/mesa_shader_cache_db/part@{int}/mesa_cache.idx rw,
@{sys}/devices/system/cpu/possible r,
@{PROC}/sys/kernel/core_pattern r,
/apparmor/.null rw,
# vim:syntax=apparmor

View file

@ -2,7 +2,7 @@
# Copyright (C) 2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# This abstraction is only required when an interactive shell is started.
# This abstraction is only required when .bashrc is loaded (e.g. interactive shell).
# Classic shell scripts do not need it.
abi <abi/4.0>,

View file

@ -9,11 +9,6 @@
member={Hello,AddMatch,RemoveMatch,GetNameOwner,NameHasOwner,StartServiceByName}
peer=(name=org.freedesktop.DBus, label="@{p_dbus_accessibility}"),
dbus send bus=accessibility path=/org/freedesktop/DBus
interface=org.freedesktop.DBus
member={RequestName,ReleaseName}
peer=(name=org.freedesktop.DBus, label="@{p_dbus_accessibility}"),
owner @{run}/user/@{uid}/at-spi/ rw,
owner @{run}/user/@{uid}/at-spi/bus rw,
owner @{run}/user/@{uid}/at-spi/bus_@{int} rw,

View file

@ -4,20 +4,13 @@
abi <abi/4.0>,
unix (bind, listen) type=stream addr="@/tmp/dbus-*",
unix (connect, send, receive, accept) type=stream addr="@/tmp/dbus-*",
unix (connect, send, receive, accept) type=stream peer=(addr="@/tmp/dbus-*"),
unix bind type=stream addr=@@{udbus}/bus/@{profile_name}/session,
dbus send bus=session path=/org/freedesktop/DBus
dbus send bus=session path=/org/freedesktop/{dbus,DBus}
interface=org.freedesktop.DBus
member={Hello,AddMatch,RemoveMatch,GetNameOwner,NameHasOwner,StartServiceByName}
peer=(name=org.freedesktop.DBus, label="@{p_dbus_session}"),
dbus send bus=session path=/org/freedesktop/DBus
interface=org.freedesktop.DBus
member={RequestName,ReleaseName}
peer=(name=org.freedesktop.DBus, label="@{p_dbus_session}"),
/etc/machine-id r,
/var/lib/dbus/machine-id r,

View file

@ -4,17 +4,15 @@
abi <abi/4.0>,
unix bind type=stream addr=@@{udbus}/bus/@{profile_name}/system,
dbus send bus=system path=/org/freedesktop/DBus
interface=org.freedesktop.DBus
member={Hello,AddMatch,RemoveMatch,GetNameOwner,NameHasOwner,StartServiceByName}
peer=(name=org.freedesktop.DBus, label="@{p_dbus_system}"),
dbus send bus=system path=/org/freedesktop/DBus
interface=org.freedesktop.DBus
member={RequestName,ReleaseName}
peer=(name=org.freedesktop.DBus, label="@{p_dbus_system}"),
@{run}/dbus/system_bus_socket rw,
@{att}/@{run}/dbus/system_bus_socket rw,
include if exists <abstractions/bus-system.d>

View file

@ -0,0 +1,65 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2017 Canonical Ltd
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
# Allow the accessibility services in the user session to send us any events
dbus receive bus=accessibility
peer=(label="@{p_at_spi2_registryd}"),
# Allow querying for capabilities and registering
dbus send bus=accessibility path=/org/a11y/atspi/accessible/root
interface=org.a11y.atspi.Socket
member=Embed
peer=(name=org.a11y.atspi.Registry, label="@{p_at_spi2_registryd}"),
dbus send bus=accessibility path=/org/a11y/atspi/registry
interface=org.a11y.atspi.Registry
member=GetRegisteredEvents
peer=(name=org.a11y.atspi.Registry, label="@{p_at_spi2_registryd}"),
dbus send bus=accessibility path=/org/a11y/atspi/registry/deviceeventcontroller
interface=org.a11y.atspi.DeviceEventController
member={GetKeystrokeListeners,GetDeviceEventListeners}
peer=(name=org.a11y.atspi.Registry, label="@{p_at_spi2_registryd}"),
dbus send bus=accessibility path=/org/a11y/atspi/registry/deviceeventcontroller
interface=org.a11y.atspi.DeviceEventController
member=NotifyListenersSync
peer=(name=org.a11y.atspi.Registry, label="@{p_at_spi2_registryd}"),
# org.a11y.atspi is not designed for application isolation and these rules
# can be used to send change events for other processes.
dbus send bus=accessibility path=/org/a11y/atspi/accessible/root
interface=org.a11y.atspi.Event.Object
member=ChildrenChanged
peer=(name=org.freedesktop.DBus, label="@{p_at_spi2_registryd}"),
dbus send bus=accessibility path=/org/a11y/atspi/accessible/root
interface=org.a11y.atspi.Accessible
member=Get*
peer=(label="@{p_at_spi2_registryd}"),
dbus send bus=accessibility path=/org/a11y/atspi/accessible/@{int}
interface=org.a11y.atspi.Event.Object
member={ChildrenChanged,PropertyChange,StateChanged,TextCaretMoved}
peer=(name=org.freedesktop.DBus, label="@{p_at_spi2_registryd}"),
dbus send bus=accessibility path=/org/a11y/atspi/accessible/@{int}
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(label="@{p_at_spi2_registryd}"),
dbus send bus=accessibility path=/org/a11y/atspi/cache
interface=org.a11y.atspi.Cache
member={AddAccessible,RemoveAccessible}
peer=(name=org.freedesktop.DBus, label="@{p_at_spi2_registryd}"),
include if exists <abstractions/bus/accessibility/org.a11y.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,25 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# LOGPROF-SUGGEST: no
# Do not use it manually, It is automatically included in a profile by the
# `aa:dbus own` directive.
# Allow owning a name on DBus public bus
abi <abi/4.0>,
dbus send bus=accessibility path=/org/freedesktop/DBus
interface=org.freedesktop.DBus
member={RequestName,ReleaseName}
peer=(name=org.freedesktop.DBus, label="@{p_dbus_accessibility}"),
dbus send bus=accessibility path=/org/freedesktop/DBus
interface=org.freedesktop.DBus
member={GetConnectionUnixProcessID,GetConnectionUnixUser,GetConnectionCredentials}
peer=(name=org.freedesktop.DBus, label="@{p_dbus_accessibility}"),
include if exists <abstractions/bus/accessibility/own.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,19 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
dbus send bus=session path=/ca/desrt/dconf/Writer/user
interface=ca.desrt.dconf.Writer
member=Change
peer=(name=ca.desrt.dconf), # no peer's labels
dbus receive bus=session path=/ca/desrt/dconf/Writer/user
interface=ca.desrt.dconf.Writer
member=Notify
peer=(name=@{busname}, label=dconf-service),
include if exists <abstractions/bus/ca.desrt.dconf.Writer.d>
# vim:syntax=apparmor

View file

@ -4,6 +4,10 @@
abi <abi/4.0>,
dbus send bus=session path=/com/canonical/unity/launcherentry/**
interface=com.canonical.dbusmenu
member={GetGroupProperties,GetLayout}
peer=(name=@{busname}, label=nautilus),
include if exists <abstractions/bus/com.canonical.dbusmenu.d>

View file

@ -4,14 +4,11 @@
abi <abi/4.0>,
dbus send bus=system path=/fi/w1/wpa_supplicant1
interface=org.freedesktop.DBus.Properties
member={GetAll,PropertiesChanged}
peer=(name="@{busname}", label=wpa-supplicant),
#aa:dbus common bus=system name=fi.w1.wpa_supplicant1 label=wpa-supplicant
dbus send bus=system path=/fi/w1/wpa_supplicant1/Interfaces/@{int}
interface=org.freedesktop.DBus.Properties
member={GetAll,Set}
member=Set
peer=(name="@{busname}", label=wpa-supplicant),
dbus send bus=system path=/fi/w1/wpa_supplicant1
@ -39,16 +36,6 @@
member={BSSAdded,BSSRemoved,NetworkAdded,NetworkRemoved,NetworkSelected,ScanDone,PropertiesChanged}
peer=(name="@{busname}", label=wpa-supplicant),
dbus receive bus=system path=/fi/w1/wpa_supplicant1/Interfaces/@{int}
interface=org.freedesktop.DBus.Properties
member={GetAll,PropertiesChanged}
peer=(name="@{busname}", label=wpa-supplicant),
dbus receive bus=system path=/fi/w1/wpa_supplicant1/Interfaces/@{int}/BSSs/@{int}
interface=org.freedesktop.DBus.Properties
member={GetAll,PropertiesChanged}
peer=(name="@{busname}", label=wpa-supplicant),
include if exists <abstractions/bus/fi.w1.wpa_supplicant1.d>
# vim:syntax=apparmor

View file

@ -4,10 +4,7 @@
abi <abi/4.0>,
dbus send bus=system path=/net/hadess/PowerProfiles
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=power-profiles-daemon),
#aa:dbus common bus=system name=net.hadess.PowerProfiles label="@{p_power_profiles_daemon}"
include if exists <abstractions/bus/net.hadess.PowerProfiles.d>

View file

@ -4,10 +4,7 @@
abi <abi/4.0>,
dbus send bus=system path=/net/hadess/SwitcherooControl
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=switcheroo-control),
#aa:dbus common bus=system name=net.hadess.SwitcherooControl label=switcheroo-control
include if exists <abstractions/bus/net.hadess.SwitcherooControl.d>

View file

@ -4,10 +4,12 @@
abi <abi/4.0>,
#aa:dbus common bus=system name=net.reactivated.Fprint label="@{p_fprintd}"
dbus send bus=system path=/net/reactivated/Fprint/Manager
interface=net.reactivated.Fprint.Manager
member={GetDevices,GetDefaultDevice}
peer=(name="@{busname}", label=fprintd),
peer=(name="@{busname}", label="@{p_fprintd}"),
dbus send bus=system path=/net/reactivated/Fprint/Manager
interface=net.reactivated.Fprint.Manager
@ -17,7 +19,7 @@
dbus send bus=system path=/net/reactivated/Fprint/Manager
interface=net.reactivated.Fprint.Manager
member={GetDevices,GetDefaultDevice}
peer=(name=net.reactivated.Fprint, label=fprintd),
peer=(name=net.reactivated.Fprint, label="@{p_fprintd}"),
include if exists <abstractions/bus/net.reactivated.Fprint.d>

View file

@ -1,48 +0,0 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
# Accessibility bus
dbus receive bus=accessibility path=/org/a11y/atspi/registry
interface=org.a11y.atspi.Registry
member=EventListenerDeregistered
peer=(name="@{busname}", label=at-spi2-registryd),
dbus send bus=accessibility path=/org/a11y/atspi/registry
interface=org.a11y.atspi.Registry
member=GetRegisteredEvents
peer=(name=org.a11y.atspi.Registry, label=at-spi2-registryd),
dbus send bus=accessibility path=/org/a11y/atspi/registry/deviceeventcontroller
interface=org.a11y.atspi.DeviceEventController
member={GetKeystrokeListeners,GetDeviceEventListeners}
peer=(name=org.a11y.atspi.Registry, label=at-spi2-registryd),
dbus receive bus=accessibility path=/org/a11y/atspi/accessible/root
interface=org.freedesktop.DBus.Properties
member=Set
peer=(name="@{busname}", label=at-spi2-registryd),
dbus send bus=accessibility path=/org/a11y/atspi/accessible/root
interface=org.a11y.atspi.Socket
member=Embed
peer=(name=org.a11y.atspi.Registry, label=at-spi2-registryd),
# Session bus
dbus send bus=session path=/org/a11y/bus
interface=org.a11y.Bus
member=GetAddress
peer=(name=org.a11y.Bus, label="@{p_dbus_accessibility}"),
dbus send bus=session path=/org/a11y/bus
interface=org.a11y.Bus
member=GetAddress
peer=(name=org.a11y.Bus),
include if exists <abstractions/bus/org.a11y.d>
# vim:syntax=apparmor

View file

@ -4,30 +4,27 @@
abi <abi/4.0>,
#aa:dbus common bus=system name=org.freedesktop.Accounts label="@{p_accounts_daemon}"
dbus send bus=system path=/org/freedesktop/Accounts
interface=org.freedesktop.Accounts
member={FindUserByName,ListCachedUsers}
peer=(name="@{busname}", label=accounts-daemon),
dbus send bus=system path=/org/freedesktop/Accounts{,/User@{uid}}
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=accounts-daemon),
member={FindUserByName,ListCachedUsers,FindUserById}
peer=(name="{@{busname},org.freedesktop.Accounts}", label="@{p_accounts_daemon}"),
dbus receive bus=system path=/org/freedesktop/Accounts/User@{uid}
interface=org.freedesktop.Accounts.User
member=*Changed
peer=(name="@{busname}", label=accounts-daemon),
peer=(name="@{busname}", label="@{p_accounts_daemon}"),
dbus receive bus=system path=/org/freedesktop/Accounts
interface=org.freedesktop.Accounts
member=UserAdded
peer=(name="@{busname}", label=accounts-daemon),
peer=(name="@{busname}", label="@{p_accounts_daemon}"),
dbus receive bus=system path=/org/freedesktop/Accounts/User@{uid}
interface=org.freedesktop.DBus.Properties
member=*Changed
peer=(name="@{busname}", label=accounts-daemon),
peer=(name="@{busname}", label="@{p_accounts_daemon}"),
include if exists <abstractions/bus/org.freedesktop.Accounts.d>

View file

@ -4,25 +4,42 @@
abi <abi/4.0>,
#aa:dbus common bus=system name=org.freedesktop.Avahi label="@{p_avahi_daemon}"
dbus send bus=system path=/
interface=org.freedesktop.DBus.Peer
member=Ping
peer=(name=org.freedesktop.Avahi, label=avahi-daemon),
peer=(name=org.freedesktop.Avahi),
dbus send bus=system path=/
interface=org.freedesktop.Avahi.Server
member={GetAPIVersion,GetState,Service*New}
peer=(name=org.freedesktop.Avahi, label=avahi-daemon),
peer=(name=org.freedesktop.Avahi, label="@{p_avahi_daemon}"),
dbus send bus=system path=/Client@{int}/ServiceBrowser@{int}
interface=org.freedesktop.Avahi.ServiceBrowser
member=Free
peer=(name=org.freedesktop.Avahi, label=avahi-daemon),
peer=(name=org.freedesktop.Avahi, label="@{p_avahi_daemon}"),
dbus receive bus=system path=/Client@{int}/ServiceBrowser@{int}
interface=org.freedesktop.Avahi.ServiceBrowser
member={ItemNew,AllForNow,CacheExhausted}
peer=(name="@{busname}", label=avahi-daemon),
member={ItemNew,ItemRemove,AllForNow,CacheExhausted}
peer=(name="@{busname}", label="@{p_avahi_daemon}"),
dbus receive bus=system path=/
interface=org.freedesktop.Avahi.Server
member=StateChanged
peer=(name=@{busname}, label="@{p_avahi_daemon}"),
dbus receive bus=system path=/Client@{int}/ServiceResolver@{int}
interface=org.freedesktop.Avahi.ServiceResolver
member=Found
peer=(name=@{busname}, label="@{p_avahi_daemon}"),
dbus send bus=system path=/Client@{int}/ServiceResolver@{int}
interface=org.freedesktop.Avahi.ServiceResolver
member=Free
peer=(name=org.freedesktop.Avahi, label="@{p_avahi_daemon}"),
include if exists <abstractions/bus/org.freedesktop.Avahi.d>

View file

@ -1,29 +0,0 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
dbus send bus=system path=/org/freedesktop/ColorManager
interface=org.freedesktop.ColorManager
member=GetDevices
peer=(name="@{busname}", label=colord),
dbus send bus=system path=/org/freedesktop/ColorManager{,/**}
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=colord),
dbus send bus=system path=/org/freedesktop/ColorManager
interface=org.freedesktop.ColorManager
member=CreateDevice
peer=(name="@{busname}", label=colord),
dbus receive bus=system path=/org/freedesktop/ColorManager
interface=org.freedesktop.ColorManager
member={DeviceAdded,DeviceRemoved}
peer=(name="@{busname}", label=colord),
include if exists <abstractions/bus/org.freedesktop.ColorManager.d>
# vim:syntax=apparmor

View file

@ -4,15 +4,12 @@
abi <abi/4.0>,
dbus send bus=session path=/org/freedesktop/FileManager1
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=nautilus),
#aa:dbus common bus=session name=org.freedesktop.FileManager1 label=nautilus
dbus receive bus=session path=/org/freedesktop/FileManager1
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="@{busname}", label=nautilus),
dbus send bus=session path=/org/freedesktop/FileManager1
interface=org.freedesktop.FileManager1
member=ShowItems
peer=(name=org.freedesktop.FileManager1, label=nautilus),
include if exists <abstractions/bus/org.freedesktop.FileManager1.d>

View file

@ -4,35 +4,26 @@
abi <abi/4.0>,
dbus send bus=system path=/org/freedesktop/GeoClue2/Manager
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=geoclue),
#aa:dbus common bus=system name=org.freedesktop.GeoClue2 label="@{p_geoclue}"
dbus send bus=system path=/org/freedesktop/GeoClue2/Agent
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name=org.freedesktop.DBus, label=geoclue),
peer=(name=org.freedesktop.DBus, label="@{p_geoclue}"),
dbus receive bus=system path=/org/freedesktop/GeoClue2/Agent
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=geoclue),
peer=(name="@{busname}", label="@{p_geoclue}"),
dbus send bus=system path=/org/freedesktop/GeoClue2/Manager
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=geoclue),
peer=(name="@{busname}", label="@{p_geoclue}"),
dbus send bus=system path=/org/freedesktop/GeoClue2/Manager
interface=org.freedesktop.GeoClue2.Manager
member=AddAgent
peer=(name="@{busname}", label=geoclue),
dbus receive bus=system path=/org/freedesktop/GeoClue2/Manager
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="@{busname}", label=geoclue),
peer=(name="@{busname}", label="@{p_geoclue}"),
include if exists <abstractions/bus/org.freedesktop.GeoClue2.d>

View file

@ -4,20 +4,17 @@
abi <abi/4.0>,
dbus send bus=system path=/org/freedesktop/ModemManager1
interface=org.freedesktop.DBus.ObjectManager
member=GetManagedObjects
peer=(name=org.freedesktop.ModemManager1, label=ModemManager),
#aa:dbus common bus=system name=org.freedesktop.ModemManager1 label="@{p_ModemManager}"
dbus send bus=system path=/org/freedesktop/ModemManager1
interface=org.freedesktop.DBus.ObjectManager
member=GetManagedObjects
peer=(name="@{busname}", label=ModemManager),
peer=(name=org.freedesktop.ModemManager1, label="@{p_ModemManager}"),
dbus send bus=system path=/org/freedesktop/ModemManager1
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=ModemManager),
interface=org.freedesktop.DBus.ObjectManager
member=GetManagedObjects
peer=(name="@{busname}", label="@{p_ModemManager}"),
include if exists <abstractions/bus/org.freedesktop.ModemManager1.d>

View file

@ -4,14 +4,11 @@
abi <abi/4.0>,
#aa:dbus common bus=system name=org.freedesktop.NetworkManager label=NetworkManager
dbus send bus=system path=/org/freedesktop
interface=org.freedesktop.DBus.ObjectManager
member=GetManagedObjects
peer=(name="{@{busname},org.freedesktop.NetworkManager}", label=NetworkManager),
dbus send bus=system path=/org/freedesktop/NetworkManager{,/**}
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
member={GetManagedObjects,InterfacesRemoved}
peer=(name="{@{busname},org.freedesktop.NetworkManager}", label=NetworkManager),
dbus send bus=system path=/org/freedesktop/NetworkManager
@ -29,19 +26,9 @@
member=GetSettings
peer=(name="{@{busname},org.freedesktop.NetworkManager}", label=NetworkManager),
dbus send bus=system path=/org/freedesktop/NetworkManager
interface=org.freedesktop.DBus.Introspectable
member=Introspect
peer=(name="{@{busname},org.freedesktop.NetworkManager}", label=NetworkManager),
dbus receive bus=system path=/org/freedesktop
interface=org.freedesktop.DBus.ObjectManager
member=InterfacesAdded
peer=(name="{@{busname},org.freedesktop.NetworkManager}", label=NetworkManager),
dbus receive bus=system path=/org/freedesktop/NetworkManager{,/**}
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
member={InterfacesAdded,InterfacesRemoved}
peer=(name="{@{busname},org.freedesktop.NetworkManager}", label=NetworkManager),
dbus receive bus=system path=/org/freedesktop/NetworkManager
@ -64,6 +51,11 @@
member=Updated
peer=(name="{@{busname},org.freedesktop.NetworkManager}", label=NetworkManager),
dbus receive bus=system path=/org/freedesktop/NetworkManager/ActiveConnection/@{int}
interface=org.freedesktop.NetworkManager.Connection.Active
member=StateChanged
peer=(name=@{busname}, label=NetworkManager),
include if exists <abstractions/bus/org.freedesktop.NetworkManager.d>
# vim:syntax=apparmor

View file

@ -1,29 +0,0 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
dbus send bus=session path=/org/freedesktop/Notifications
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=gjs-console),
dbus send bus=session path=/org/freedesktop/Notifications
interface=org.freedesktop.DBus.Properties
member={GetCapabilities,GetServerInformation,Notify}
peer=(name="@{busname}", label=gjs-console),
dbus receive bus=session path=/org/freedesktop/Notifications
interface=org.freedesktop.DBus.Properties
member={GetAll,NotificationClosed,CloseNotification}
peer=(name="@{busname}", label=gjs-console),
dbus receive bus=session path=/org/freedesktop/Notifications
interface=org.freedesktop.DBus.Properties
member=Notify
peer=(name=org.freedesktop.DBus, label=gjs-console),
include if exists <abstractions/bus/org.freedesktop.Notifications.d>
# vim:syntax=apparmor

View file

@ -2,17 +2,13 @@
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allow communication with PackageKit transactions. Transactions are exported
# with random object paths that currently take the form /@{int}_@{hex8}.
abi <abi/4.0>,
dbus send bus=system path=/org/freedesktop/PackageKit
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=packagekitd),
#aa:dbus common bus=system name=org.freedesktop.PackageKit label=packagekitd
dbus send bus=system path=/org/freedesktop/PackageKit
interface=org.freedesktop.DBus.Introspectable
member=Introspect
peer=(name=org.freedesktop.PackageKit, label=packagekitd),
dbus send bus=system path=/org/freedesktop/PackageKit
interface=org.freedesktop.DBus.Introspectable
member=Introspect
@ -21,7 +17,15 @@
dbus send bus=system path=/org/freedesktop/PackageKit
interface=org.freedesktop.PackageKit
member=StateHasChanged
peer=(name=org.freedesktop.PackageKit, label=packagekitd),
peer=(name=org.freedesktop.PackageKit),
dbus send bus=system path=/@{int}_@{hex8}
interface=org.freedesktop.PackageKit.Transaction
peer=(label=packagekitd),
dbus receive bus=system path=/@{int}_@{hex8}
interface=org.freedesktop.PackageKit.Transaction
peer=(label=packagekitd),
include if exists <abstractions/bus/org.freedesktop.PackageKit.d>

View file

@ -2,36 +2,26 @@
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Can talk to polkitd's CheckAuthorization API
abi <abi/4.0>,
#aa:dbus common bus=system name=org.freedesktop.PolicyKit1 label="@{p_polkitd}"
dbus receive bus=system path=/org/freedesktop/PolicyKit1/Authority
interface=org.freedesktop.PolicyKit1.Authority
member=Changed
peer=(name="@{busname}", label=polkitd),
dbus send bus=system path=/org/freedesktop/PolicyKit1/Authority
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=polkitd),
peer=(name="@{busname}", label="@{p_polkitd}"),
dbus send bus=system path=/org/freedesktop/PolicyKit1/Authority
interface=org.freedesktop.PolicyKit1.Authority
member=CheckAuthorization
peer=(name=org.freedesktop.PolicyKit1, label=polkitd),
member={CheckAuthorization,CancelCheckAuthorization}
peer=(name="{@{busname},org.freedesktop.PolicyKit1}", label="@{p_polkitd}"),
dbus send bus=system path=/org/freedesktop/PolicyKit1/Authority
interface=org.freedesktop.PolicyKit1.Authority
member=CheckAuthorization
peer=(name="@{busname}", label=polkitd),
dbus send bus=system path=/org/freedesktop/PolicyKit1/Authority
interface=org.freedesktop.PolicyKit1.Authority
member=CheckAuthorization
peer=(name=org.freedesktop.PolicyKit1),
dbus send bus=system path=/org/freedesktop/PolicyKit1/Authority
interface=org.freedesktop.DBus.Introspectable
member=Introspect
peer=(name="@{busname}", label=polkitd),
member=RegisterAuthenticationAgentWithOptions
peer=(name="{@{busname},org.freedesktop.PolicyKit1}", label="@{p_polkitd}"),
include if exists <abstractions/bus/org.freedesktop.PolicyKit1.d>

View file

@ -2,32 +2,25 @@
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allow setting realtime priorities.
abi <abi/4.0>,
#aa:dbus common bus=system name=org.freedesktop.RealtimeKit1 label="@{p_rtkit_daemon}"
dbus send bus=system path=/org/freedesktop/RealtimeKit1
interface=org.freedesktop.DBus.Properties
member=Get
peer=(name=org.freedesktop.RealtimeKit1),
dbus send bus=system path=/org/freedesktop/RealtimeKit1
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name="@{busname}", label=rtkit-daemon),
interface=org.freedesktop.RealtimeKit1
member={MakeThreadHighPriority,MakeThreadRealtime}
peer=(name="{@{busname},org.freedesktop.RealtimeKit1}", label="@{p_rtkit_daemon}"),
dbus send bus=system path=/org/freedesktop/RealtimeKit1
interface=org.freedesktop.RealtimeKit1
member=MakeThread*
peer=(name="@{busname}", label=rtkit-daemon),
dbus send bus=system path=/org/freedesktop/RealtimeKit1
interface=org.freedesktop.RealtimeKit1
member=MakeThread*
peer=(name=org.freedesktop.RealtimeKit1),
dbus send bus=system path=/org/freedesktop/RealtimeKit1
interface=org.freedesktop.RealtimeKit1
member=MakeThread*
peer=(name=org.freedesktop.RealtimeKit1, label=rtkit-daemon),
member={MakeThreadHighPriorityWithPID,MakeThreadRealtimeWithPID}
peer=(name="{@{busname},org.freedesktop.RealtimeKit1}", label="@{p_rtkit_daemon}"),
include if exists <abstractions/bus/org.freedesktop.RealtimeKit1.d>

View file

@ -1,14 +0,0 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
dbus send bus=session path=/ScreenSaver
interface=org.freedesktop.ScreenSaver
member={Inhibit,UnInhibit}
peer=(name=org.freedesktop.ScreenSaver),
include if exists <abstractions/bus/org.freedesktop.ScreenSaver.d>
# vim:syntax=apparmor

View file

@ -7,12 +7,12 @@
dbus send bus=session path=/org/freedesktop/Tracker3/Endpoint
interface=org.freedesktop.DBus.Peer
member=Ping
peer=(name=org.freedesktop.Tracker3.Miner.Files, label=tracker-miner),
peer=(name=org.freedesktop.Tracker3.Miner.Files, label="{localsearch,tracker-miner}"),
dbus send bus=session path=/org/freedesktop/Tracker3/Endpoint
interface=org.freedesktop.Tracker3.Endpoint
member=Query
peer=(name=org.freedesktop.Tracker3.Miner.Files, label=tracker-miner),
peer=(name=org.freedesktop.Tracker3.Miner.Files, label="{localsearch,tracker-miner}"),
include if exists <abstractions/bus/org.freedesktop.Tracker3.Miner.Files.d>

View file

@ -4,16 +4,13 @@
abi <abi/4.0>,
#aa:dbus common bus=system name=org.freedesktop.UDisks2 label=udisksd
dbus send bus=system path=/org/freedesktop/UDisks2
interface=org.freedesktop.DBus.ObjectManager
member=GetManagedObjects
peer=(name="{@{busname},org.freedesktop.UDisks2}", label=udisksd),
dbus send bus=system path=/org/freedesktop/UDisks2/**
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="{@{busname},org.freedesktop.UDisks2}", label=udisksd),
dbus send bus=system path=/
interface=org.freedesktop.DBus.Introspectable
member=Introspect
@ -29,16 +26,6 @@
member=Introspect
peer=(name="{@{busname},org.freedesktop.UDisks2}", label=udisksd),
dbus send bus=system path=/org/freedesktop/UDisks2/drives{,/*}
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name="{@{busname},org.freedesktop.UDisks2}", label=udisksd),
dbus send bus=system path=/org/freedesktop/UDisks2/block_devices/*
interface=org.freedesktop.DBus.Introspectable
member=Introspect
peer=(name="{@{busname},org.freedesktop.UDisks2}", label=udisksd),
dbus receive bus=system path=/org/freedesktop/UDisks2
interface=org.freedesktop.DBus.ObjectManager
member=InterfacesAdded
@ -49,11 +36,6 @@
member=Completed
peer=(name="{@{busname},org.freedesktop.UDisks2}", label=udisksd),
dbus receive bus=system path=/org/freedesktop/UDisks2/block_devices/*
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="{@{busname},org.freedesktop.UDisks2}", label=udisksd),
include if exists <abstractions/bus/org.freedesktop.UDisks2.d>
# vim:syntax=apparmor

View file

@ -1,48 +0,0 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
dbus send bus=system path=/org/freedesktop/UPower
interface=org.freedesktop.UPower
member=EnumerateDevices
peer=(name="{@{busname},org.freedesktop.UPower}", label=upowerd),
dbus send bus=system path=/org/freedesktop/UPower{,/**}
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name="{@{busname},org.freedesktop.UPower}", label=upowerd),
dbus send bus=system path=/org/freedesktop/UPower{,/**}
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name=org.freedesktop.UPower, label=upowerd),
dbus send bus=system path=/org/freedesktop/UPower
interface=org.freedesktop.DBus.Properties
member=GetDisplayDevice
peer=(name=org.freedesktop.UPower, label=upowerd),
dbus send bus=system path=/org/freedesktop/UPower/devices/*
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name="{@{busname},org.freedesktop.UPower}", label=upowerd),
dbus send bus=system path=/org/freedesktop/UPower{,/**}
interface=org.freedesktop.DBus.Introspectable
member=Introspect
peer=(name="{@{busname},org.freedesktop.UPower}", label=upowerd),
dbus receive bus=system path=/org/freedesktop/UPower
interface=org.freedesktop.UPower
member=DeviceAdded
peer=(name="{@{busname},org.freedesktop.UPower}", label=upowerd),
dbus receive bus=system path=/org/freedesktop/UPower/devices/*
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="{@{busname},org.freedesktop.UPower}", label=upowerd),
include if exists <abstractions/bus/org.freedesktop.UPower.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,11 @@
# 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>,
#aa:dbus common bus=system name=org.freedesktop.UPower.PowerProfiles label=@{p_power_profiles_daemon}
include if exists <abstractions/bus/org.freedesktop.UPower.PowerProfiles.d>
# vim:syntax=apparmor

View file

@ -4,15 +4,7 @@
abi <abi/4.0>,
dbus send bus=session path=/org/freedesktop/background/monitor
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=xdg-desktop-portal),
dbus receive bus=session path=/org/freedesktop/background/monitor
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="@{busname}", label=xdg-desktop-portal),
#aa:dbus common bus=session name=org.freedesktop.background.Monitor label=xdg-desktop-portal
include if exists <abstractions/bus/org.freedesktop.background.Monitor.d>

View file

@ -4,21 +4,13 @@
abi <abi/4.0>,
dbus send bus=system path=/org/freedesktop/hostname1
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name="{@{busname},org.freedesktop.hostname1}", label=systemd-hostnamed),
#aa:dbus common bus=system name=org.freedesktop.hostname1 label="@{p_systemd_hostnamed}"
dbus send bus=system path=/org/freedesktop/hostname1
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
member=Get
peer=(name=org.freedesktop.hostname1),
dbus receive bus=system path=/org/freedesktop/hostname1
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="{@{busname},org.freedesktop.hostname1}", label=systemd-hostnamed),
include if exists <abstractions/bus/org.freedesktop.hostname1.d>
# vim:syntax=apparmor

View file

@ -4,16 +4,18 @@
abi <abi/4.0>,
dbus send bus=session path=/org/freedesktop/impl/portal/PermissionStore
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=xdg-permission-store),
#aa:dbus common bus=session name=org.freedesktop.impl.portal.PermissionStore label=xdg-permission-store
dbus send bus=session path=/org/freedesktop/impl/portal/PermissionStore
interface=org.freedesktop.impl.portal.PermissionStore
member=Lookup
peer=(name="@{busname}", label=xdg-permission-store),
dbus send bus=session path=/org/freedesktop/impl/portal/PermissionStore
interface=org.freedesktop.impl.portal.PermissionStore
member=Lookup
peer=(name=org.freedesktop.impl.portal.PermissionStore, label=xdg-permission-store),
include if exists <abstractions/bus/org.freedesktop.impl.portal.PermissionStore.d>
# vim:syntax=apparmor

View file

@ -4,35 +4,22 @@
abi <abi/4.0>,
dbus send bus=system path=/org/freedesktop/login1
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name="{@{busname},org.freedesktop.login1}", label=systemd-logind),
dbus receive bus=system path=/org/freedesktop/login1
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="{@{busname},org.freedesktop.login1}", label=systemd-logind),
#aa:dbus common bus=system name=org.freedesktop.login1 label="@{p_systemd_logind}"
dbus send bus=system path=/org/freedesktop/login1
interface=org.freedesktop.login1.Manager
member={Inhibit,CanHibernate,CanHybridSleep,CanPowerOff,CanReboot,CanSuspend,CreateSession,GetSessionByPID}
peer=(name="{@{busname},org.freedesktop.login1}", label=systemd-logind),
peer=(name="{@{busname},org.freedesktop.login1}", label="@{p_systemd_logind}"),
dbus receive bus=system path=/org/freedesktop/login1
interface=org.freedesktop.login1.Manager
member={SessionNew,SessionRemoved,UserNew,UserRemoved,PrepareFor*}
peer=(name="{@{busname},org.freedesktop.login1}", label=systemd-logind),
dbus send bus=system path=/org/freedesktop/login1
interface=org.freedesktop.DBus.Introspectable
member=Introspect
peer=(name="{@{busname},org.freedesktop.login1}", label=systemd-logind),
member={SessionNew,SessionRemoved,UserNew,UserRemoved,SeatNew,PrepareFor*}
peer=(name="{@{busname},org.freedesktop.login1}", label="@{p_systemd_logind}"),
dbus send bus=system path=/org/freedesktop/login1/session/*
interface=org.freedesktop.login1.Session
member=PauseDeviceComplete
peer=(name=org.freedesktop.login1, label=systemd-logind),
peer=(name=org.freedesktop.login1, label="@{p_systemd_logind}"),
include if exists <abstractions/bus/org.freedesktop.login1.d>

View file

@ -4,40 +4,22 @@
abi <abi/4.0>,
#aa:dbus common bus=system name=org.freedesktop.login1 label="@{p_systemd_logind}"
dbus send bus=system path=/org/freedesktop/login1
interface=org.freedesktop.login1.Manager
member=GetSession
peer=(name="@{busname}", label=systemd-logind),
dbus send bus=system path=/org/freedesktop/login1{,session/*,seat/*}
interface=org.freedesktop.DBus.Introspectable
member=Introspect
peer=(name="{@{busname},org.freedesktop.login1}", label=systemd-logind),
dbus send bus=system path=/org/freedesktop/login1/session/*
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name="@{busname}", label=systemd-logind),
peer=(name="@{busname}", label="@{p_systemd_logind}"),
dbus send bus=system path=/org/freedesktop/login1/session/*
interface=org.freedesktop.login1.Session
member={ReleaseDevice,TakeControl,TakeDevice,SetBrightness,SetLockedHint,SetIdleHint}
peer=(name="{@{busname},org.freedesktop.login1}", label=systemd-logind),
dbus send bus=system path=/org/freedesktop/login1/seat/*
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name="{@{busname},org.freedesktop.login1}", label=systemd-logind),
dbus receive bus=system path=/org/freedesktop/login1/session/*
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="@{busname}", label=systemd-logind),
peer=(name="{@{busname},org.freedesktop.login1}", label="@{p_systemd_logind}"),
dbus receive bus=system path=/org/freedesktop/login1/session/*
interface=org.freedesktop.login1.Session
member={PauseDevice,Unlock}
peer=(name="{@{busname},org.freedesktop.login1}", label=systemd-logind),
peer=(name="{@{busname},org.freedesktop.login1}", label="@{p_systemd_logind}"),
include if exists <abstractions/bus/org.freedesktop.login1.Session.d>

View file

@ -4,10 +4,7 @@
abi <abi/4.0>,
dbus send bus=system path=/org/freedesktop/network1
interface=org.freedesktop.DBus.Properties
member=Get
peer=(name=org.freedesktop.network1, label=systemd-networkd),
#aa:dbus common bus=system name=org.freedesktop.network1 label="@{p_systemd_networkd}"
include if exists <abstractions/bus/org.freedesktop.network1.d>

View file

@ -4,30 +4,57 @@
abi <abi/4.0>,
#aa:dbus common bus=session name=org.freedesktop.portal.{d,D}esktop label=xdg-desktop-portal
dbus send bus=session path=/org/freedesktop/portal/desktop
interface=org.freedesktop.DBus.Properties
member={Get,GetAll,Read}
member=Read
peer=(name="{@{busname},org.freedesktop.portal.Desktop}", label=xdg-desktop-portal),
dbus send bus=session path=/org/freedesktop/portal/desktop
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name=@{busname}, label=xdg-desktop-portal),
dbus send bus=session path=/org/freedesktop/portal/desktop
interface=org.freedesktop.portal.Settings
member={Read,ReadAll}
peer=(name="@{busname}", label=xdg-desktop-portal),
peer=(name=@{busname}, label=xdg-desktop-portal),
dbus receive bus=session path=/org/freedesktop/portal/desktop
interface=org.freedesktop.portal.Settings
member=SettingChanged
peer=(name="@{busname}", label=xdg-desktop-portal),
peer=(name=@{busname}, label=xdg-desktop-portal),
dbus receive bus=session path=/org/freedesktop/portal/desktop
dbus receive bus=session path=/org/freedesktop/portal/desktop{,/**}
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name="@{busname}", label=xdg-desktop-portal),
peer=(name=@{busname}, label=xdg-desktop-portal),
dbus receive bus=session path=/org/freedesktop/portal/desktop
interface=org.freedesktop.impl.portal.Settings
member={Read,ReadAll}
peer=(name="@{busname}", label=xdg-desktop-portal),
peer=(name=@{busname}, label=xdg-desktop-portal),
dbus send bus=session path=/org/freedesktop/portal/desktop
interface=org.freedesktop.host.portal.Registry
member=Register
peer=(name=org.freedesktop.portal.Desktop, label=xdg-desktop-portal),
dbus receive bus=session path=/org/freedesktop/portal/desktop/**
interface=org.freedesktop.portal.Request
member=Response
peer=(name=@{busname}, label=xdg-desktop-portal),
dbus receive bus=session path=/org/freedesktop/portal/desktop
interface=org.freedesktop.portal.Inhibit
member={StateChanged,CreateMonitor}
peer=(name=@{busname}, label=xdg-desktop-portal),
dbus receive bus=session path=/org/freedesktop/portal/desktop/session/**
interface=org.freedesktop.impl.portal.Session
member=Close
peer=(name=@{busname}, label=xdg-desktop-portal),
include if exists <abstractions/bus/org.freedesktop.portal.Desktop.d>

View file

@ -1,14 +0,0 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
dbus send bus=system path=/org/freedesktop/resolve1
interface=org.freedesktop.resolve1.Manager
member={SetLink*,ResolveHostname}
peer=(name="{@{busname},org.freedesktop.resolve1}", label=systemd-resolved),
include if exists <abstractions/bus/org.freedesktop.resolve1.d>
# vim:syntax=apparmor

View file

@ -4,15 +4,12 @@
abi <abi/4.0>,
dbus send bus=session path=/org/freedesktop/secrets{,/**}
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=gnome-keyring-daemon),
#aa:dbus common bus=session name=org.freedesktop.secrets label=gnome-keyring-daemon
dbus send bus=session path=/org/freedesktop/secrets
interface=org.freedesktop.Secret.Service
member={OpenSession,GetSecrets,SearchItems,ReadAlias}
peer=(name="@{busname}", label=gnome-keyring-daemon),
member={OpenSession,GetSecrets,SearchItems,Unlock,ReadAlias}
peer=(name="{@{busname},org.freedesktop.secrets}", label=gnome-keyring-daemon),
dbus send bus=session path=/org/freedesktop/secrets/aliases/default
interface=org.freedesktop.Secret.Collection
@ -24,11 +21,6 @@
member=ItemCreated
peer=(name="@{busname}", label=gnome-keyring-daemon),
dbus receive bus=session path=/org/freedesktop/secrets/collection/login
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="@{busname}", label=gnome-keyring-daemon),
include if exists <abstractions/bus/org.freedesktop.secrets.d>
# vim:syntax=apparmor

View file

@ -4,14 +4,16 @@
abi <abi/4.0>,
dbus send bus=system path=/org/freedesktop/systemd1{,/**}
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
#aa:dbus common bus=system name=org.freedesktop.systemd1 label="@{p_systemd}"
dbus send bus=system path=/org/freedesktop/systemd1
interface=org.freedesktop.systemd1.Manager
member={GetUnit,GetUnitByPIDFD,StartUnit,StartTransientUnit}
peer=(name=org.freedesktop.systemd1, label="@{p_systemd}"),
dbus send bus=session path=/org/freedesktop/systemd1
dbus send bus=system path=/org/freedesktop/systemd1
interface=org.freedesktop.systemd1.Manager
member={GetUnit,StartUnit,StartTransientUnit}
member=ListUnitsByPatterns
peer=(name=org.freedesktop.systemd1, label="@{p_systemd}"),
dbus send bus=session path=/org/freedesktop/systemd1

View file

@ -4,21 +4,7 @@
abi <abi/4.0>,
dbus send bus=system path=/org/freedesktop/timedate1
interface=org.freedesktop.DBus.Properties
member=Get
peer=(name=org.freedesktop.timedate1, label=systemd-timedated),
# FIXME: should be under the systemd-timedated label
dbus send bus=system path=/org/freedesktop/timedate1
interface=org.freedesktop.DBus.Properties
member=Get
peer=(name=org.freedesktop.timedate1, label=unconfined),
dbus send bus=system path=/org/freedesktop/timedate1
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=systemd-timedated),
#aa:dbus common bus=system name=org.freedesktop.timedate1 label="@{p_systemd_timedated}"
include if exists <abstractions/bus/org.freedesktop.timedate1.d>

View file

@ -4,6 +4,8 @@
abi <abi/4.0>,
#aa:dbus common bus=session name=org.gnome.Mutter.DisplayConfig label=gnome-shell
dbus send bus=session path=/org/gnome/Mutter/DisplayConfig
interface=org.gnome.Mutter.DisplayConfig
member={GetResources,GetCrtcGamma}
@ -14,16 +16,6 @@
member=GetCurrentState
peer=(name="{@{busname},org.gnome.Mutter.DisplayConfig}", label=gnome-shell),
dbus send bus=session path=/org/gnome/Mutter/DisplayConfig
interface=org.freedesktop.DBus.Properties
member={GetAll,PropertiesChanged}
peer=(name="@{busname}", label=gnome-shell),
dbus receive bus=session path=/org/gnome/Mutter/DisplayConfig
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="@{busname}", label=gnome-shell),
dbus receive bus=session path=/org/gnome/Mutter/DisplayConfig
interface=org.gnome.Mutter.DisplayConfig
member=MonitorsChanged

View file

@ -4,6 +4,8 @@
abi <abi/4.0>,
#aa:dbus common bus=session name=org.gnome.Mutter.IdleMonitor label=gnome-shell
dbus send bus=session path=/org/gnome/Mutter/IdleMonitor
interface=org.freedesktop.DBus.ObjectManager
member=GetManagedObjects
@ -11,8 +13,8 @@
dbus send bus=session path=/org/gnome/Mutter/IdleMonitor/Core
interface=org.gnome.Mutter.IdleMonitor
member={AddIdleWatch,AddUserActiveWatch,RemoveWatch}
peer=(name="@{busname}", label=gnome-shell),
member={AddIdleWatch,AddUserActiveWatch,RemoveWatch,GetIdletime}
peer=(name="{@{busname},org.gnome.Mutter.IdleMonitor}", label=gnome-shell),
dbus receive bus=session path=/org/gnome/Mutter/IdleMonitor/Core
interface=org.gnome.Mutter.IdleMonitor

View file

@ -1,24 +0,0 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
dbus send bus=session path=/org/gnome/Nautilus/FileOperations2
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=nautilus),
dbus send bus=session path=/org/gnome/Nautilus/FileOperations2
interface=org.freedesktop.DBus.Introspectable
member=Introspect
peer=(name="@{busname}", label=nautilus),
dbus receive bus=session path=/org/gnome/Nautilus/FileOperations2
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="@{busname}", label=nautilus),
include if exists <abstractions/bus/org.gnome.Nautilus.FileOperations2.d>
# vim:syntax=apparmor

View file

@ -1,24 +0,0 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
dbus send bus=session path=/org/gnome/ScreenSaver
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=gjs-console),
dbus send bus=session path=/org/gnome/ScreenSaver
interface=org.gnome.ScreenSaver
member=GetActive
peer=(name="@{busname}", label=gjs-console),
dbus receive bus=session path=/org/gnome/ScreenSaver
interface=org.gnome.ScreenSaver
member={ActiveChanged,WakeUpScreen}
peer=(name="@{busname}", label=gjs-console),
include if exists <abstractions/bus/org.gnome.ScreenSaver.d>
# vim:syntax=apparmor

View file

@ -1,66 +0,0 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# FIXME: Too large, restrict it.
abi <abi/4.0>,
dbus send bus=session path=/org/gnome/SessionManager
interface=org.gnome.SessionManager
member={RegisterClient,IsSessionRunning}
peer=(name="@{busname}", label=gnome-session-binary),
dbus send bus=session path=/org/gnome/SessionManager
interface=org.gnome.SessionManager
member={Setenv,IsSessionRunning}
peer=(name=org.gnome.SessionManager, label=gnome-session-binary),
dbus receive bus=session path=/org/gnome/SessionManager
interface=org.gnome.SessionManager
member={ClientAdded,ClientRemoved,SessionRunning,InhibitorRemoved,InhibitorAdded}
peer=(name="@{busname}", label=gnome-session-binary),
dbus send bus=session path=/org/gnome/SessionManager
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=gnome-session-binary),
dbus receive bus=session path=/org/gnome/SessionManager
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="@{busname}", label=gnome-session-binary),
dbus send bus=session path=/org/gnome/SessionManager/Client@{int}
interface=org.gnome.SessionManager.ClientPrivate
member=EndSessionResponse
peer=(name="@{busname}", label=gnome-session-binary),
dbus receive bus=session path=/org/gnome/SessionManager/Client@{int}
interface=org.gnome.SessionManager.ClientPrivate
member={CancelEndSession,QueryEndSession,EndSession,Stop}
peer=(name="@{busname}", label=gnome-session-binary),
dbus send bus=session path=/org/gnome/SessionManager/Client@{int}
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=gnome-session-binary),
dbus receive bus=session path=/org/gnome/SessionManager/Client@{int}
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="@{busname}", label=gnome-session-binary),
dbus receive bus=session path=/org/gnome/SessionManager/Presence
interface=org.gnome.SessionManager.Presence
member=StatusChanged
peer=(name="@{busname}", label=gnome-session-binary),
dbus send bus=session path=/org/gnome/SessionManager
interface=org.freedesktop.DBus.Introspectable
member=Introspect
peer=(name=org.gnome.SessionManager, label=gnome-session-binary),
include if exists <abstractions/bus/org.gnome.SessionManager.d>
# vim:syntax=apparmor

View file

@ -4,15 +4,7 @@
abi <abi/4.0>,
dbus send bus=session path=/org/gnome/Shell/Introspect
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=gnome-shell),
dbus send bus=session path=/org/gnome/Shell/Introspect
interface=org.freedesktop.DBus.Properties
member=Get
peer=(name=org.gnome.Shell.Introspect, label=gnome-shell),
#aa:dbus common bus=session name=org.gnome.Shell.Introspect label=gnome-shell
dbus send bus=session path=/org/gnome/Shell/Introspect
interface=org.gnome.Shell.Introspect
@ -24,11 +16,6 @@
member={RunningApplicationsChanged,WindowsChanged}
peer=(name="@{busname}", label=gnome-shell),
dbus receive bus=session path=/org/gnome/Shell/Introspect
interface=org.freedesktop.DBus.Properties
member=PropertiesChanged
peer=(name="@{busname}", label=gnome-shell),
include if exists <abstractions/bus/org.gnome.Shell.Introspect.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,22 @@
# 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>,
#aa:dbus common bus=session name=org.gnome.Shell.SearchProvider2 label=gnome-shell
dbus receive bus=session path=/org/gnome/Characters/SearchProvider
interface=org.gnome.Shell.SearchProvider2
member={GetInitialResultSet,GetSubsearchResultSet,GetResultMetas}
peer=(name=@{busname}, label=gnome-shell),
dbus receive bus=session path=/org/gnome/Characters/SearchProvider
interface=org.gnome.Shell.SearchProvider2
member=*Cancel
peer=(name=@{busname}, label=gnome-shell),
include if exists <abstractions/bus/org.gnome.Shell.SearchProvider2.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,28 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allow accessing the GNOME crypto services prompt APIs as used by
# applications using libgcr (such as pinentry-gnome3) for secure pin
# entry to unlock GPG keys etc. See:
# https://developer.gnome.org/gcr/unstable/GcrPrompt.html
# https://developer.gnome.org/gcr/unstable/GcrSecretExchange.html
# https://github.com/snapcore/snapd/pull/7673#issuecomment-592229711
abi <abi/4.0>,
unix type=stream peer=(label=gnome-keyring-daemon),
dbus send bus=session path=/org/gnome/keyring/Prompter
interface=org.gnome.keyring.internal.Prompter
member={BeginPrompting,PerformPrompt,StopPrompting}
peer=(name=@{busname}, label=pinentry-*),
dbus receive bus=session path=/org/gnome/keyring/Prompt/p@{int}
interface=org.gnome.keyring.internal.Prompter.Callback
member={PromptReady,PromptDone}
peer=(name=@{busname}, label=pinentry-*),
include if exists <abstractions/bus/org.gnome.keyring.internal.Prompter.d>
# vim:syntax=apparmor

View file

@ -1,14 +0,0 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
dbus send bus=session path=/org/gtk/vfs/Daemon
interface=org.gtk.vfs.Daemon
member={GetConnection,ListMonitorImplementations,ListMountableInfo}
peer=(name="@{busname}", label=gvfsd),
include if exists <abstractions/bus/org.gtk.vfs.Daemon.d>
# vim:syntax=apparmor

View file

@ -1,19 +0,0 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
dbus send bus=session path=/org/gtk/vfs/metadata
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=gvfsd-metadata),
dbus receive bus=session path=/org/gtk/vfs/metadata
interface=org.gtk.vfs.Metadata
member=AttributeChanged
peer=(name="@{busname}", label=gvfsd-metadata),
include if exists <abstractions/bus/org.gtk.vfs.Metadata.d>
# vim:syntax=apparmor

View file

@ -2,22 +2,52 @@
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allow to display Status Notifier Items in the KDE Plasma systray
abi <abi/4.0>,
dbus send bus=session path=/StatusNotifierWatcher
interface=org.freedesktop.DBus.Properties
member=Get
peer=(name=org.kde.StatusNotifierWatcher, label=gnome-shell),
dbus send bus=session path=/StatusNotifierWatcher
interface=org.kde.StatusNotifierWatcher
member=RegisterStatusNotifierItem
peer=(name="{:*,org.kde.StatusNotifierWatcher}", label=gnome-shell),
#aa-dbus common bus=session name=org.kde.StatusNotifierWatcher label=gnome-shell
dbus send bus=session path=/StatusNotifierWatcher
interface=org.freedesktop.DBus.Introspectable
member=Introspect
peer=(name=org.kde.StatusNotifierWatcher, label=gnome-shell),
peer=(name=org.kde.StatusNotifierWatcher, label="@{pp_app_indicator}"),
dbus send bus=session path=/StatusNotifierWatcher
interface=org.freedesktop.DBus.Properties
member=Get
peer=(name=org.kde.StatusNotifierWatcher, label="@{pp_app_indicator}"),
dbus receive bus=session path=/StatusNotifierItem
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(label="@{pp_app_indicator}"),
dbus send bus=session path=/{StatusNotifierItem/menu,org/ayatana/NotificationItem/*/Menu}
interface=com.canonical.dbusmenu
member={LayoutUpdated,ItemsPropertiesUpdated}
peer=(name=org.freedesktop.DBus, label="@{pp_app_indicator}"),
dbus receive bus=session path=/{StatusNotifierItem,StatusNotifierItem/menu,org/ayatana/NotificationItem/**}
interface={org.freedesktop.DBus.Properties,com.canonical.dbusmenu}
member={Get*,AboutTo*,Event*}
peer=(label="@{pp_app_indicator}"),
dbus send bus=session path=/StatusNotifierWatcher
interface=org.kde.StatusNotifierWatcher
member=RegisterStatusNotifierItem
peer=(label="@{pp_app_indicator}"),
dbus receive bus=session path=/StatusNotifierItem
interface=org.kde.StatusNotifierItem
member={ProvideXdgActivationToken,Activate}
peer=(label="@{pp_app_indicator}"),
dbus receive bus=session path=/MenuBar
interface=com.canonical.dbusmenu
member={AboutToShow,GetLayout,Event}
peer=(label="@{pp_app_indicator}"),
include if exists <abstractions/bus/org.kde.StatusNotifierWatcher.d>

View file

@ -0,0 +1,21 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allow use of snapd's internal xdg-open
abi <abi/4.0>,
dbus send bus=session path=/
interface=com.canonical.SafeLauncher
member=OpenURL
peer=(name=@{busname}, label=snap),
dbus send bus=session path=/io/snapcraft/Launcher
interface=io.snapcraft.Launcher
member={OpenURL,OpenFile}
peer=(name=@{busname}, label=snap),
include if exists <abstractions/bus/session/io.snapcraft.Launcher.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,16 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Can identify and launch other snaps.
abi <abi/4.0>,
dbus send bus=session path=/io/snapcraft/PrivilegedDesktopLauncher
interface=io.snapcraft.PrivilegedDesktopLauncher
member=OpenDesktopEntry
peer=(name=io.snapcraft.Launcher, label=snap),
include if exists <abstractions/bus/session/io.snapcraft.PrivilegedDesktopLauncher.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,16 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allow use of snapd's internal 'xdg-settings'
abi <abi/4.0>,
dbus send bus=session path=/io/snapcraft/Settings
interface=io.snapcraft.Settings
member={Check,CheckSub,Get,GetSub,Set,SetSub}
peer=(name=io.snapcraft.Settings, label=snap),
include if exists <abstractions/bus/session/io.snapcraft.Settings.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,29 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
dbus send bus=session path=/org/a11y/bus
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name=@{busname}, label="@{p_dbus_accessibility}"),
dbus send bus=session path=/org/a11y/bus
interface=org.freedesktop.DBus.Properties
member=Get
peer=(name=org.a11y.Bus, label="@{p_dbus_accessibility}"),
dbus send bus=session path=/org/a11y/bus
interface=org.a11y.Bus
member=Get
peer=(name=org.a11y.Bus, label="@{p_dbus_accessibility}"),
dbus send bus=session path=/org/a11y/bus
interface=org.a11y.Bus
member=GetAddress
peer=(name=org.a11y.Bus),
include if exists <abstractions/bus/session/org.a11y.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,24 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allow access to the IBus portal
abi <abi/4.0>,
dbus send bus=session path=/org/freedesktop/IBus
interface=org.freedesktop.IBus.Portal
member=CreateInputContext
peer=(name=org.freedesktop.portal.IBus),
dbus send bus=session path=/org/freedesktop/IBus/InputContext_@{int}
interface=org.freedesktop.IBus.InputContext
peer=(label=ibus-daemon),
dbus receive bus=session path=/org/freedesktop/IBus/InputContext_@{int}
interface=org.freedesktop.IBus.InputContext
peer=(label=ibus-daemon),
include if exists <abstractions/bus/session/org.freedesktop.IBus.Portal.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,21 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
#aa:dbus common bus=session name=org.freedesktop.Notifications label="@{pp_notification}"
dbus send bus=session path=/org/freedesktop/Notifications
interface=org.freedesktop.Notifications
member={GetCapabilities,GetServerInformation,Notify,CloseNotification}
peer=(name="{@{busname},org.freedesktop.Notifications}", label="@{pp_notification}"),
dbus receive bus=session path=/org/freedesktop/Notifications
interface=org.freedesktop.Notifications
member={ActionInvoked,NotificationClosed,NotificationReplied}
peer=(name="{@{busname},org.freedesktop.Notifications}", label="@{pp_notification}"),
include if exists <abstractions/bus/session/org.freedesktop.Notifications.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,26 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allow checking status, activating and locking the screensaver
abi <abi/4.0>,
dbus send bus=session path=/ScreenSaver
interface=org.freedesktop.ScreenSaver
member={Inhibit,UnInhibit}
peer=(name=org.freedesktop.ScreenSaver),
dbus send bus=session path=/{,org/freedesktop/}ScreenSaver
interface=org.freedesktop.ScreenSaver
member={GetActive,GetActiveTime,Lock,SetActive}
peer=(name=@{busname}, label="{gsd-screensaver-proxy,ksmserver,kwin_wayland}"),
dbus receive bus=session path=/org/freedesktop/ScreenSaver
interface=org.freedesktop.ScreenSaver
member={ActiveChanged,WakeUpScreen}
peer=(name=@{busname}, label="{gsd-screensaver-proxy,ksmserver,kwin_wayland}"),
include if exists <abstractions/bus/session/org.freedesktop.ScreenSaver.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,49 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2017 Canonical Ltd
# Copyright (C) 2021-2025 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Provide full access to the secret-service API:
# - https://standards.freedesktop.org/secret-service/)
#
# The secret-service allows managing (add/delete/lock/etc) collections and
# (add/delete/etc) items within collections. The API also has the concept of
# aliases for collections which is typically used to access the default
# collection. While it would be possible for an application developer to use a
# snap-specific collection and mediate by object path, application developers
# are meant to instead to treat collections (typically the default collection)
# as a database of key/value attributes each with an associated secret that
# applications may query. Because AppArmor does not mediate member data,
# typical and recommended usage of the API does not allow for application
# isolation. For details, see:
# - https://standards.freedesktop.org/secret-service/ch03.html
#
abi <abi/4.0>,
#aa:dbus common bus=session name=org.freedesktop.{S,s}ecret label=gnome-keyring-daemon
dbus send bus=session path=/org/freedesktop/secrets{,/**}
interface=org.freedesktop.Secret.{Collection,Item,Prompt,Service,Session}
peer=(name="{@{busname},org.freedesktop.secrets}", label=gnome-keyring-daemon),
dbus receive bus=session path=/org/freedesktop/secrets{,/**}
interface=org.freedesktop.Secret.{Collection,Item,Prompt,Service,Session}
peer=(name="{@{busname},org.freedesktop.secrets}", label=gnome-keyring-daemon),
dbus send bus=session path=/org/freedesktop/secrets
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name=@{busname}, label=gnome-keyring-daemon),
dbus send bus=session path=/org/freedesktop/secrets
interface=org.freedesktop.Secret.Service
member=ReadAlias
peer=(name=org.freedesktop.secrets, label=gnome-keyring-daemon),
dbus send bus=session path=/org/freedesktop/secrets
interface=org.freedesktop.Secret.Service
member=SearchItems
peer=(name=@{busname}, label=gnome-keyring-daemon),
include if exists <abstractions/bus/session/org.freedesktop.Secret.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,19 @@
# 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>,
dbus send bus=session path=/org/freedesktop/portal/desktop
interface=org.freedesktop.portal.Settings
member=Read
peer=(name=org.freedesktop.portal.Desktop, label=xdg-desktop-portal),
dbus send bus=session path=/org/freedesktop/portal/desktop
interface=org.freedesktop.portal.Settings
member=ReadAll
peer=(name=@{busname}, label=xdg-desktop-portal),
include if exists <abstractions/bus/session/org.freedesktop.portal.Settings.d>
# vim:syntax=apparmor

View file

@ -4,21 +4,23 @@
abi <abi/4.0>,
dbus send bus=session path=/org/freedesktop/systemd1
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name=org.freedesktop.systemd1),
dbus send bus=session path=/org/freedesktop/systemd1
interface=org.freedesktop.DBus.Properties
member={Get,GetAll}
peer=(name="{@{busname},org.freedesktop.systemd1}", label="@{p_systemd_user}"),
#aa:dbus common bus=session name=org.freedesktop.systemd1 label="@{p_systemd_user}"
dbus send bus=session path=/org/freedesktop/systemd1
interface=org.freedesktop.systemd1.Manager
member=GetUnit
peer=(name="{@{busname},org.freedesktop.systemd1}", label="@{p_systemd_user}"),
include if exists <abstractions/bus/org.freedesktop.systemd1-session.d>
dbus send bus=session path=/org/freedesktop/systemd1/unit/app_*
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name=org.freedesktop.systemd1, label="@{p_systemd_user}"),
dbus send bus=session path=/org/freedesktop/systemd1
interface=org.freedesktop.systemd1.Manager
member=StartTransientUnit
peer=(name=org.freedesktop.systemd1, label="@{p_systemd_user}"),
include if exists <abstractions/bus/session/org.freedesktop.systemd1.d>
# vim:syntax=apparmor

View file

@ -4,16 +4,13 @@
abi <abi/4.0>,
dbus send bus=session path=/org/gnome/ArchiveManager1
interface=org.freedesktop.DBus.Properties
member=GetAll
peer=(name="@{busname}", label=file-roller),
#aa:dbus common bus=session name=org.gnome.ArchiveManager1 label="@{p_file_roller}"
dbus send bus=session path=/org/gnome/ArchiveManager1
interface=org.gnome.ArchiveManager1
member=GetSupportedTypes
peer=(name="@{busname}", label=file-roller),
peer=(name="@{busname}", label="@{p_file_roller}"),
include if exists <abstractions/bus/org.gnome.ArchiveManager1.d>
include if exists <abstractions/bus/session/org.gnome.ArchiveManager1.d>
# vim:syntax=apparmor

View file

@ -4,6 +4,8 @@
abi <abi/4.0>,
include if exists <abstractions/bus/org.kde.StatusNotifierItem.d>
#aa:dbus common bus=session name=org.gnome.Nautilus.FileOperations2 label=nautilus
include if exists <abstractions/bus/session/org.gnome.Nautilus.FileOperations2.d>
# vim:syntax=apparmor

View file

@ -0,0 +1,21 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
# Allow checking status, activating and locking the screensaver (GNOME version)
abi <abi/4.0>,
dbus send bus=session path=/{,org/gnome/}ScreenSaver
interface=org.gnome.ScreenSaver
member={GetActive,GetActiveTime,Lock,SetActive}
peer=(name=@{busname}, label=gjs-console),
dbus receive bus=session path=/org/gnome/ScreenSaver
interface=org.gnome.ScreenSaver
member={ActiveChanged,WakeUpScreen}
peer=(name=@{busname}, label=gjs-console),
include if exists <abstractions/bus/session/org.gnome.ScreenSaver.d>
# vim:syntax=apparmor

Some files were not shown because too many files have changed in this diff Show more