LINUX.ORG.RU
ФорумAdmin

Virtual Machine Manager не видит виртуальные машины под юзером

 


0

1

Подготовил виртуальные машины в KVM.
Если залогиниться в в Иксах под рутом и запустить графический «Virtual Machine Manager» - все в порядке, машины видны, работают и управляются.
Однако если зайти в Иксы под юзером, то машины не видны и недоступны, хотя я этого юзера добавил в группу sudoer:

sudo adduser user sudo


Как бы поправить это консерваторию?

★★★★★

Ответ на: комментарий от Samamy

Да, он самый, libvirt.
И у меня из ваших указаний почти все было сделано:

sudo addgroup "$(whoami)" libvirt
sudo addgroup "$(whoami)" kvm

Значит, не хватает только добавления юзера в группу libvirt-qemu ?

Upd. Ok, добавил:
sudo addgroup "$(whoami)" libvirt-qemu
- увы, эта фича не помогла :-(

chukcha ★★★★★
() автор топика
Последнее исправление: chukcha (всего исправлений: 1)
Ответ на: комментарий от Samamy

Спасибо, но видео очень нерезкое и слишком быстро, ничего разобрать нельзя.
Может лучше словами?


А пока расскажу, как в поисках решения сабжа ликвидировал одну неожиданную ошибку.
Оказалось, что статус libvirtd содержит ошибку, показанную красным цветом (последние 2 строки):

~# systemctl status libvirtd
● libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-07-23 21:53:52 EEST; 16min ago
TriggeredBy: ● libvirtd.socket
             ● libvirtd-admin.socket
             ● libvirtd-ro.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 368 (libvirtd)
      Tasks: 25 (limit: 32768)
     Memory: 37.7M
        CPU: 3.206s
     CGroup: /system.slice/libvirtd.service
             ├─368 /usr/sbin/libvirtd
             ├─518 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/Whonix-External.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leas>
             ├─572 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             └─573 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper

Jul 23 21:53:53 debian dnsmasq[572]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
Jul 23 21:53:53 debian dnsmasq-dhcp[572]: read /var/lib/libvirt/dnsmasq/default.hostsfile
Jul 23 21:54:00 debian dnsmasq[518]: reading /etc/resolv.conf
Jul 23 21:54:00 debian dnsmasq[572]: reading /etc/resolv.conf
Jul 23 21:54:00 debian dnsmasq[572]: using nameserver 192.168.1.1#53
Jul 23 21:54:00 debian dnsmasq[518]: using nameserver 192.168.1.1#53
Jul 23 21:54:14 debian libvirtd[368]: libvirt version: 7.0.0, package: 3 (Andrea Bolognani <eof@kiyuko.org> Fri, 26 Feb 2021 16:46:34 +0100)
Jul 23 21:54:14 debian libvirtd[368]: hostname: debian

Jul 23 21:54:14 debian libvirtd[368]: authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage'
Jul 23 21:54:14 debian libvirtd[368]: End of file while reading data: Input/output error
lines 1-28/28 (END)

Значит, не хватает «агента» polkit. Установил его с помощью пакета 'policykit-1-gnome 0.105-7'
Однако это не помогло, ошибка осталась. Тогда по этой статье

_https://blog.wikichoon.com/2016/01/polkit-password-less-access-for-libvirt.html

выполнил команду от юзера -

sudo usermod --append --groups libvirt $(whoami)
Ура - ошибка исчезла!
Но доступа к виртуалкам от юзера по прежнему нет, значит дело не в этой ошибке.......

chukcha ★★★★★
() автор топика
Последнее исправление: chukcha (всего исправлений: 1)
Ответ на: комментарий от Samamy

Удалось кое-как разобрать ваш Ютубовский пример.
Повторил его, но вместо появления машин сходу получил ошибки, например:

Unable to connect to libvrt qemu:///-system

auhentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage'

chukcha ★★★★★
() автор топика

УМВР, AlmaLinux 9: https://wampi.ru/image/RrjnZLx

И да, для правки того, в каких группах пользователь обычно используется usermod команда, а не adduser и addgroup.

Нужно добавить пользователя в группы libvirt и kvm, а подключение, что тебе нужно, называется qemu:///system.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

УМВР

Это замечательно, что у вас все работает, но у меня нет, иначе зачем бы я спрашивал

И да, для правки того, в каких группах пользователь обычно используется usermod

Ну так это для правки. usermod я использовал только для устранения непонятной ошибки, которая связана с polkit

Нужно добавить пользователя в группы libvirt и kvm,

Это я сделал изначально, еще до того, как создавать эту тему, ну прочтите же, если не заметили:

sudo addgroup "$(whoami)" libvirt
sudo addgroup "$(whoami)" kvm
но оно, как видите, не помогло.

подключение, что тебе нужно, называется qemu:///system.

Как бы оно там не называлось, я перебрал все варианты в менеджере в меню File > Add connection, но в списке нет ни одной машины, вместо них выскакивает вышеупомянутая ошибка.
Это если я захожу в Иксы юзером.
А вот если захожу в них рутом - тут же, без всякого шаманства, открывается список машин.
Почему такое не происходит под юзером?

Понимаете, о чем я спрашиваю?

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

Это я сделал изначально, еще до того, как создавать эту тему, ну >прочтите же, если не заметили:

sudo addgroup «$(whoami)» libvirt sudo addgroup «$(whoami)» kvm

Это какое то тралирование? addgroup добавляет группу в систему, а не пользователя в группу же.

groups от текущего пользователя что показывает?

SpaceRanger ★★
()
Последнее исправление: SpaceRanger (всего исправлений: 1)
Ответ на: комментарий от SpaceRanger

Сорри, похоже я окончательно запутался с этими группами и юзерами, и нагородил в системе столько всего самому непонятного, что снес ее.
Буду ставить заново...

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

прочтите же, если не заметили

Мы заметили. Мы заметили, что вместо нормальной команды sudo usermod -aG kvm,libvirt username ты использовал совершенно не те команды.

Понимаете, о чем я спрашиваю?

Понимаю. Я другого не понимаю — как ты умудрился совершить столько глупых ошибок.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Как, как... дали мне готовую якобы проверенную инструкцию по установке kvm, вот я ее и применил. Не вникая и не задумываясь :=) Самому стыдно...

Звезды дают «не читателям, а писателям» :)

Вы правы. Зато я обожаю Linux и гиперактивный по его использованию, и всем свои друзьям навязываю :=)

chukcha ★★★★★
() автор топика
Последнее исправление: chukcha (всего исправлений: 1)
Ответ на: комментарий от chukcha

Вот в этом сообщении: Virtual Machine Manager не видит виртуальные машины под юзером (комментарий)

Да, он самый, libvirt.

И у меня из ваших указаний почти все было сделано:

sudo addgroup «$(whoami)» libvirt

sudo addgroup «$(whoami)» kvm

Значит, не хватает только добавления юзера в группу libvirt-qemu ?

Upd. Ok, добавил:

sudo addgroup «$(whoami)» libvirt-qemu

  • увы, эта фича не помогла :-(
kostik87 ★★★★★
()
Ответ на: комментарий от chukcha

дали мне готовую якобы проверенную инструкцию по установке kvm, вот я ее и применил

Мда… нет, ну что готовые инструкции в интернете содержат кучу идиотских ошибок я привык, но как я понял, ты говоришь об инструкции на работе, что писали твои коллеги.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Переустановил систему, чистехонькая.
Добавил незамысловатое имя юзера: user

Команда groups от текущего пользователя что показывает?

Показывает: user

Далее описываю свои заклинания подробно, а то вдруг где-то лопухнусь:

1. Добавляю утилиту sudo

apt install  --no-install-recommends   sudo

2. visudo пока изображает следующее:
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:>

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "@include" directives:

@includedir /etc/sudoers.d
3. Теперь надо впихнуть user в группу sudoer's - как правильнее?
sudo adduser user sudo
или
# adduser user sudo

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

От root выполнить usermod -aG sudo user. Пора бы знать такие базовые вещи на 12 году использования Linux. Команды с add в имени нужны для создания совершенно новых пользователей и групп, а у тебя модификация уже существующего.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 3)
Ответ на: комментарий от Vsevolod-linuxoid

А разве две предыдущих команды не подходят?
Цитирую опеннет:

Добавление существующего пользователя в существующую группу. При запуске с двумя аргументами, adduser добавляет существующего пользователя в существующую группу.

Но будь по-вашему, выполнил 'usermod -aG sudo user'
Однако visudo показывает, что /etc/sudoers ничуть не изменилось - почему?

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

При запуске с двумя аргументами, adduser добавляет существующего пользователя в существующую группу.

Хм, может и может. Но я обычно делал через usermod, так точно правильно.

Однако visudo показывает, что /etc/sudoers ничуть не изменилось - почему?

А с чего он должен меняться? В нём уже прописано, что члены группы sudo имеют право на запуск любых команд с правами root.

А ты внес изменения в файл в /etc/group, где теперь среди членов группы sudo значиться user.

Чтобы изменения применились, нужно перелогиниться user.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 2)
Ответ на: комментарий от Vsevolod-linuxoid

Хорошо, даже ребутнусь :=), а затем приступлю к установке компонент виртуализации -

sudo apt update
sudo apt install --no-install-recommends qemu-kvm libvirt-daemon-system libvirt-clients virt-manager gir1.2-spiceclientgtk-3.0 dnsmasq qemu-utils
- тут не видите крамолы?

chukcha ★★★★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Повторил заново свои заклинания - и теперь в вирт-менеджере виртуалки нормально видны даже под юзером!
И без всяких дополнительных телодвижений. Хотя все действия повторил один-в-один!
Ну вот ничего не понимаю.........

Надо повторить еще раза 3 всё заново, тогда может наберется какие-то статистика, почему они иногда видны, а иногда нет.

PS. Единственное отличие в заклинаниях все же было - заменил эти хитроумные строки:

sudo addgroup "$(whoami)" libvirt
sudo addgroup "$(whoami)" kvm
на совсем простые и тупые:
sudo addgroup user libvirt
sudo addgroup user kvm
хотя это никак ни на что не должно повлиять, имхо.

И еще. Если раньше вышеприведенный статус libvirtd давал такие ошибки в виде 2-х строк -
systemctl status libvirtd

Jul 23 21:54:14 debian libvirtd[368]: authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage'
Jul 23 21:54:14 debian libvirtd[368]: End of file while reading data: Input/output error
lines 1-28/28 (END)
то теперь они трансформировались в такую:
Jul 24 19:58:53 debian libvirtd[368]: internal error: End of file from qemu monitor

И хотя виртуалки работают вроде нормально, в любом случае это непорядок.
Что означает эта ошибка и как ее правильно устранить?

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

2-я часть марлезонского балета:
- виртуалки в вирт-менеджере видны и работают под юзером
- ошибка

Jul 24 19:58:53 debian libvirtd[368]: internal error: End of file from qemu monitor
чудесным образом исчезла.
И это плохо, потому что система живет своей какой-то непонятной жизнью :-(

chukcha ★★★★★
() автор топика