4

我想使用定制版本的 qemu 运行 libvirt。但是,在我安装了我的 qemu 版本并重新启动后,我在 dmesg 中收到以下消息

type=1400 审计(1338385059.381:51): apparmor="DENIED" operation="exec" parent=1700 profile="/usr/sbin/libvirtd" name="/usr/local/bin/qemu-system-x86_64" pid =1746 comm="libvirtd" requested_mask="x" denied_mask="x" fsuid=0 ouid=0

我尝试编辑 /etc/apparmor.d/abstractions/libvirt-qemu 并添加以下行并重新启动

/usr/local/bin/qemu-system-x86_64 rmix,

但是,问题仍然存在。我对 apparmor 真的很陌生,实际上在我发现这个错误之前并没有读过太多。任何帮助将不胜感激。

4

1 回答 1

8

您的日志消息表明问题出在/usr/sbin/libvirtd配置文件中;查看profile="/usr/sbin/libvirtd"消息的部分。此配置文件存储在/etc/apparmor.d/usr.sbin.libvirtd; 此配置文件包括/etc/apparmor.d/abstractions/libvirt-qemu抽象——而是通过/etc/apparmor.d/libvirt/. 请参阅配置文件中的最后几行libvirtd

  # allow changing to our UUID-based named profiles
  change_profile -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,

可能最简单的答案是将以下行添加到您的local/usr.sbin.libvirtd文件中:

/usr/local/bin/qemu-system-x86_64 rmix,

(虽然它可能需要PUx;主要/usr/sbin/libvirtd配置文件当前有/usr/bin/* PUx,,这可能是/usr/bin/qemu-system-x86_64当前执行的方式。)

另一种方法是运行aa-logprof,并让工具提示您。您可能无法使用这些工具构建最漂亮的配置文件,但它应该相当简单,并且具有与手动编写配置文件相同的安全属性。

我希望这有帮助。

于 2012-07-19T01:45:25.080 回答