루트로 실행할 때마다 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
(이는 두 버전 간의 많은 차이점 중 하나입니다).
ptrace (trace) peer=unconfined,
그런 다음 의류 서비스를 다시 시작하세요.service restart apparmor
그러나 모든 것이 제대로 작동하려면 추가 규칙이 필요할 수 있습니다.
또 다른 해결책은 프로필을 "불만" 모드로 설정하는 것입니다. aa-complain /usr/sbin/libvirtd
이렇게 하면 의류가 어떤 것도 거부하지 못하게 되지만 문제에 대한 기록은 유지됩니다.
나중에 이를 사용하여 aa-logprof
누락된 규칙을 생성할 수 있습니다.유심히 보다해당) 또는 불안정한 장소에서 의류 구성 파일을 가져오십시오.