Как использовать virt-manager как пользователь без полномочий root в Linux
Всем привет. KVM пользуюсь уже давно. Каждый раз, когда я пытаюсь использовать virt-manager как пользователь без полномочий root, мне приходится вводить пароль sudo. Это не проблема, но если вы часто используете virt-manager, это может быть скучно и раздражать.
Я покажу вам простой способ использования virt-manager в качестве пользователя без полномочий root, просто создав группу libvirt и добавив к ней стандартную учетную запись пользователя. Не теряя много времени, приступим.
Чтобы использовать virt-manager как пользователь без полномочий root, выполните следующие действия:
Шаг 1 — Создайте группу unix для использования
Сначала проверьте, существует ли уже группа, если не создайте ее
sudo getent group | grep libvirt
В некоторых дистрибутивах может использоваться libvirtd.
sudo getent group | grep libvirtd
Если его нет, добавьте его как системную группу.
sudo groupadd --system libvirt
Шаг 2 — Добавьте учетную запись пользователя в группу libvirt
Теперь, когда группа доступна, добавьте в нее свою учетную запись.
sudo usermod -a -G libvirt $(whoami) newgrp libvirt
Убедитесь, что пользователь добавлен в группу libvirt.
$ id $(whoami) uid=1000(jmutai) gid=1000(jmutai) groups=1000(jmutai),998(wheel),992(kvm),988(storage),968(libvirt),108(vboxusers)
Шаг 3 — Отредактируйте файл конфигурации libvirtd, чтобы добавить группу
Откройте файл /etc/libvirt/libvirtd.conf для редактирования.
sudo vim /etc/libvirt/libvirtd.conf
Установите для группы сокетов домена UNIX значение libvirt (около строки 85 )
unix_sock_group = "libvirt"
Установите разрешения сокета UNIX для сокета R / W (около строки 102 )
unix_sock_rw_perms = "0770"
После внесения изменений перезапустите демон libvirt.
sudo systemctl restart libvirtd.service
Проверить статус службы.
$ systemctl status libvirtd.service ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2019-04-19 08:48:13 EAT; 1h 16min ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 31709 (libvirtd) Tasks: 26 (limit: 32768) Memory: 64.7M CGroup: /system.slice/libvirtd.service ├─ 754 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leases> ├─ 755 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leases> ├─ 777 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/docker-machines.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvir> ├─ 778 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/docker-machines.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvir> ├─25924 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/vagrant-libvirt.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvir> ├─25925 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/vagrant-libvirt.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvir> ├─25959 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/fed290.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leasesh> ├─25960 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/fed290.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leasesh> └─31709 /usr/bin/libvirtd
Шаг 4 — Запустите virt-manager
Запустите Virtual Machine Manager из командной строки или из меню «Пуск».
$ virt-manager
Вы должны иметь возможность создать виртуальную машину без получения ошибки разрешения.
Вы должны иметь возможность использовать virt-manager как пользователь без полномочий root. Если нет, попробуйте прочитать файл libvirtd.conf, чтобы увидеть соответствующие разделы, которые нужно изменить.
Вывод
Мы рассмотрели, как использовать virt-manager как пользователь без полномочий root, выполнив простые шаги. Возможно, вам придется установить группу пакетов виртуализации KVM, чтобы получить инструменты, включая virt-manager.