On Tue, Mar 07, 2023 at 01:28:41PM -0800, Andrea Bolognani wrote:
On Tue, Mar 07, 2023 at 07:04:25PM +0000, Daniel P. Berrangé wrote:
> On Tue, Mar 07, 2023 at 08:02:37PM +0100, Andrea Bolognani wrote:
> > + # support for passt network back-end
> > + /usr/bin/passt Cx -> passt,
> > +
> > + profile passt {
> > + /usr/bin/passt r,
> > +
> > + signal (receive) set=("term") peer=/usr/sbin/libvirtd,
> > + signal (receive) set=("term") peer=libvirtd,
>
> What's the rationale for having both qualified & unqualified
> here, but not below ?
Cargo cult. That's what the top-level profile does, so I figured it
would be good enough for the subprofile too.
I've seen stuff like peer=(label=libvirtd) as well, but I haven't
investigated the various notations and how exactly they differ.
It looks like using the label= version is only needed when additional
information is passed, for example in
unix (send, receive) type=stream addr=none peer=(label=unconfined addr=none),
Each profile has its own name attached as a label, so
peer=libvirtd
and
peer=(label=libvirtd)
are effectively equivalent. Similarly, the binary running under a
profile also becomes a label, making
peer=libvirtd
and
peer=/usr/sbin/libvirtd
also equivalent, which means that having both in the profile is
redundant.
There's plenty of room for improvement in the AppArmor profile
in
general, but that's a task for another day :)
Based on the above, I'm working on a patch that cleans up the
situation by sticking with the simpler form. Plus some other stuff.
I don't want to make such a cleanup patch a requirement for this
functionally relevant one though, especially in the not entirely
remote chance that I have completely misunderstood how this stuff
work O:-)
So I'd prefer to keep the cargo cult line for now, and clean
everything up at once later.
--
Andrea Bolognani / Red Hat / Virtualization