在Linux上将virt-manager用作非root用户
时间:2020-02-23 14:31:29 来源:igfitidea点击:
大家好。我已经使用KVM很久了。每次我尝试将virt-manager用作非root用户时,都必须输入sudo密码。这不是一个问题,但是如果我们大多数时候使用virt-manager,可能会很无聊和烦人。
我将展示了一种简单的方法,通过仅创建libvirt组并向其中添加标准用户帐户,即可将virt-manager用作非root用户。不要浪费太多时间,让我们潜入。
要将virt-manager用作非root用户,请执行以下步骤:
创建要使用的unix组
首先检查组是否已经存在,如果不存在则创建它
sudo getent group | grep libvirt
一些发行版可能正在使用libvirtd。
sudo getent group | grep libvirtd
如果不存在,请将其添加为系统组。
sudo groupadd --system libvirt
将用户帐户添加到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)
编辑libvirtd配置文件以添加组
打开文件/etc/libvirt/libvirtd.conf进行编辑。
sudo vim /etc/libvirt/libvirtd.conf
将UNIX域套接字组所有权设置为libvirt(在line85附近)
unix_sock_group = "libvirt"
设置R/W套接字的UNIX套接字权限(在第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
启动virt-manager
从命令行或者"开始"菜单中启动Virtual Machine Manager。
$virt-manager
我们应该能够创建VM,而不会出现权限错误。
我们应该能够以非root用户身份使用virt-manager。如果不是,请尝试阅读yourlibvirtd.conf文件以查看相关部分以进行修改。