rootとして実行するたびに、virsh destroy ${KVM}
次のエラーが発生します(virsh shutdown ${KVM}
完全に応答せず、何も起こりません)。
error: Failed to destroy domain ${KVM}
error: Failed to terminate process 11956 with SIGTERM: Permission denied
KVM内で実行すると、shutdown -h now
qemu-system-x86_64プロセス(kill ${PID_OF_QEMU_PROCESS}
)が終了するまで永久に停止します。システムログに記載されているように、apparmorは呼び出しをブロックしています(virsh shutdown
およびvirsh destroy
)。
apparmor="DENIED" operation="ptrace" profile="/usr/sbin/libvirtd" pid=23212
comm="libvirtd" requested_mask="trace" denied_mask="trace" peer="unconfined"
qemu設定ファイルで/etc/libvirt/qemu.conf
Apparmor()を無効にしようとしましたが、security_driver = "none"
まだ同じエラーが発生しました。
いくつかの詳細:OS = Debian 9
、Kernel = 4.14.0-0.bpo.2-amd64
、libvirt-version = 3.0.0-4
。
衣類を無効にせずに問題を解決する方法を知っている人はいますか?
答え1
この設定は、security_driver = "none"
カーネルで衣類を無効にすることなくlibvirt
一部自体でサポートされています。
現在の安定版(debian 9 / stretch)の衣類構成ファイルと現在の不安定バージョンの衣類構成ファイルを調べて、いくつかの違いを見つけました。
次のルールを追加できると思います/etc/apparmor.d/local/usr.sbin.libvirtd
(これは2つのバージョン間の多くの違いの1つです)。
ptrace (trace) peer=unconfined,
その後、衣類サービスを再起動してください。service restart apparmor
ただし、すべてが正常に機能するには追加のルールが必要な場合があります。
別の解決策は、プロファイルを「苦情」モードに設定することです。aa-complain /usr/sbin/libvirtd
これにより、衣類は何も拒否できなくなりますが、問題の記録は維持されます。
後でこれを使用して、aa-logprof
不足しているルールを生成できます。慎重に該当)または不安定な場所から衣類設定ファイルをインポートしてください。