0

我使用 apparmor 作为 libvirt-qemu 的加固层,一切正常,但有一点我无法系统地解决,让我解释一下:

当创建一个新的 qemu 实例时,配置文件会从 /etc/apparmor.d/libvirt/TEMPLATE.qemu 生成到一个路径为 /etc/apparmor.d/libvirt/libvirt-81303229-df4c-4b18-b33b-277bcda81b0f 的文件中.

当实例关闭时,apparmor 会从内核中卸载配置文件,并且可以按预期进行。但是,如果我明确删除该实例,我希望该配置文件也会从文件系统中删除,但它不会并且仍然存在于文件系统中。一段时间后,我的 libvirt 实例配置文件非常混乱

是的..我可以写一个cron作业,删除不必要的libvirt配置文件......但是..有没有更清晰的解决方案,也许是apparmor的内置功能?

谢谢

4

1 回答 1

0

你是libvirt undefine用来删除停止的客人吗?看来 virt-aa-helper 应该删除一个未定义的域,但我认为这是一个错误,你应该提交一张票。

您可以直接使用 virt-aa-helper 命令删除文件,这可能是最安全的,因为它应该为您处理依赖项。

一个示例命令是:

$ sudo /usr/lib/libvirt/virt-aa-helper -D -u libvirt-3c3d5aa2-f581-457d-b5ab-efbf9fdd4a6e

但这可能是他们需要考虑的一些边缘情况,您可以在其中取消定义正在运行的实例以将其转换为短暂的。你需要照顾那个边缘情况。

注意:由于 virt-aa-helper 旨在由 libvirt 运行,因此您必须在命令中使用sudo。如果您不这样做,它将默默地失败并且不会删除配置文件。

于 2017-09-17T00:57:17.487 回答