Slackware и libvirt с Qemu, почему ВМ работает как root?

Попробуйте так:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart

0
02.08.2018, 15:56
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 будет работать только от имени root

 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=..
0
28.01.2020, 04:15

Теги

Похожие вопросы