Package: apparmor
Version: 3.0.1-3

Hi,
a few packages have their own abstractions which in turn are reused in
other profiles.
An example is libvirt which has :
  /etc/apparmor.d/abstractions/libvirt-qemu

This abstraction is then used in the per VM-guest rules like:
$ cat /etc/apparmor.d/libvirt/libvirt-01d4cdfe-259c-4748-abcf-fd1fa96e52e1
...
  #include <abstractions/libvirt-qemu>
...

It turns out profiles for VMs are rather hard as there are so many
very different use cases.
It is always a balance between too open or too restrictive.
Therefore it is rather common for users to want to add local overrides
on their system.

Those can be done "per guest" in the files like
"/etc/apparmor.d/libvirt/libvirt-01d4cdfe-259c-4748-abcf-fd1fa96e52e1"
mentioned above. But chances are quite high you have some things you
want to allow in general for all your guests.

To do so one can edit "/etc/apparmor.d/abstractions/libvirt-qemu", but
as we all know that means either conffile prompts or being clobbered
on package upgrades.

The usual way out of this are local includes and dh-apparmor is
helpful in deploying them and writing the empty skeleton file as
needed.

But in the case above what one needs is not a local include for a
profile like /etc/apparmor.d/<profile> but instead a local include for
an abstraction.

In apparmor itself all is fine, if
/etc/apparmor.d/abstractions/libvirt-qemu does "#include
<local/abstractions/libvirt-qemu>" and you have a file in
/etc/apparmor.d/local/abstractions/libvirt-qemu that works.

But dh-apparmor as of today does break if you pass it
"abstractions/libvirt-qemu" to take care for. Therefore - up to now -
we've handled that in libvirt maintainer scripts (in Ubuntu) and are
starting to do so in Debian as well. But it would be nice and useful
if we could at some point use dh-apparmor for these just the same as
one would do with any other local include.

-- 
Christian Ehrhardt
Staff Engineer, Ubuntu Server
Canonical Ltd

Reply via email to