KVM을 사용하여 Fedora 17을 실행하고 있으며 가상 머신이 제대로 실행되고 있습니다. 나는 따라가려고 노력한다이것호스트 시스템의 파일에 액세스하지만 SELinux가 VM 액세스를 차단합니다 /var/lib/libvirt/images
. 이는 ls
공유 경로의 가상 머신 내에서 실행될 때 호스트에서 발행되는 메시지입니다.
SELinux is preventing /usr/bin/qemu-kvm from read access on the
directory share.
이 문제를 어떻게 해결할 수 있나요? 내 가상 머신의 목적은 여러 Linux 배포판에서 바이너리를 테스트하는 것이므로 공유 경로가 가장 쉽습니다. 모든 사람에게 /tmp/share에 대한 전체 액세스 권한을 부여하는 방법이 있습니까?
답변1
qemu에 액세스를 시도할 경로를 제공하지 않은 대상 공유에는 svirt_image_t
보안 컨텍스트가 있어야 합니다(를 실행하여 확인할 수 있음 ls -ldZ <pathToDestination>
). 이것이 다른 것으로 표시되면 SELinux는 kvm이 해당 디렉토리에서 읽기/쓰기를 허용하지 않습니다.
해결 방법은 다음을 수행하는 것입니다(<pathToDestination>을 실제 경로로 대체).
semanage fcontext -a -t svirt_image_t "/<pathToDestination>(/.*)?"
restorecon -vR <pathToDestination>
위의 명령은 pathToDestination 아래의 모든 항목(pathToDestination 포함)에 대한 기본 파일 컨텍스트를 설정하고, 두 번째 명령은 SELinux에게 해당 디렉터리 아래의 모든 항목의 파일 컨텍스트를 기본값(즉, 의미상 변경된 콘텐츠)으로 복원하도록 지시합니다.
/var/log/audit/audit.log
AVC 거부 사유 도 확인할 수 있습니다.
오늘의 AVC 거부 검색
/sbin/ausearch -m avc -ts today
또는 /var/log/messages
이를 확인하면 인수로 실행되어야 하는 AVC에서 거부된 고유 식별자를 알 수 있습니다.sealert -l
예: sealert -l 84e0b04d-d0ad-4347-8317-22e74f6cd020
이 정보를 주의 깊게 읽어야 합니다. AVC 거부를 극복하기 위해 실행해야 하는 명령을 알려줍니다.