Slackware, libvirt 및 qemu, vm이 루트로 실행되는 이유는 무엇입니까?

Slackware, libvirt 및 qemu, vm이 루트로 실행되는 이유는 무엇입니까?

가상 머신을 실행하기 위해 "users" 그룹을 사용하도록 libvirt를 구성했습니다.

 grep -w users /etc/libvirt/qemu.conf
# unix socket. This prevents unprivileged access from users on the
# unix socket. This prevents unprivileged access from users on the
group = "users"
# deployments. It is strongly recommended that users update their

문제 없이 사용자로부터 VM을 시작할 수 있고 실행됩니다. 하지만 ps에서는 권한이 없는 사용자 대신 루트로 실행한다고 말합니다. 이유는 무엇입니까?

ps -ef|grep qemu
root     15248     1 33 14:53 ?        00:01:05 /usr/bin/qemu-kvm -name guest=

권한이 없는 사용자로 가상 머신을 실행할 수 있습니까? 배포판은 슬랙웨어 14.2이고 물론 저는 사용자 그룹에 속해 있습니다.

답변1

해결책을 찾으세요.

먼저 libvirt SlackBuild에서 다음 줄을 추가하거나 수정하세요.

VIRTGROUP=${VIRTGROUP:-kvm}

./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --bindir=/usr/sbin \
  --sbindir=/usr/sbin \
  --disable-static \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --docdir=/usr/doc/$PRGNAM-$VERSION \
  --enable-static=no \
  --enable-shared=yes \
  --with-qemu-group=$VIRTGROUP \
  --with-qemu-user=nobody \
  --without-hal \
  --with-interface \
  --with-lxc \
  --with-udev \
  --with-storage-disk \
  --with-storage-gluster \
  --with-storage-lvm \
  --with-init-script=none

# udev rules
mkdir -p $PKG/etc/udev/rules.d/65-kvm.rules
install -D -m 0644 $CWD/65-kvm.rules $PKG/etc/udev/rules.d/65-kvm.rules

udev 규칙은 다음과 같아야합니다

cat /etc/udev/rules.d/65-kvm.rules 
KERNEL=="kvm", NAME="%k", GROUP="kvm", MODE="0660"

polkit 부분을 잊지 마십시오. 그렇지 않으면 libvirt는 루트로만 실행됩니다.

 cat /usr/share/polkit-1/rules.d/50-libvirt.rules 
// Allow any user in the 'libvirt' group to connect to system libvirtd
// without entering a password.

polkit.addRule(function(action, subject) {
    if (action.id == "org.libvirt.unix.manage" &&
        subject.isInGroup("libvirt")) {
        return polkit.Result.YES;
    }
});

libivirt ps를 다시 시작한 후 qemu 사용자에 대해 아무 것도 반환하지 않습니다.

ps  -o user,group,cmd -p 14123
USER     GROUP    CMD
nobody   kvm      /usr/bin/qemu-kvm -name guest=..

관련 정보