summaryrefslogtreecommitdiffstats
path: root/core/modules/libvirt/data/addon-init
blob: 49c9b7b0f5db7e3d2b364f877691f7cdaae477f3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/ash

#
# allocated UID and GID for libvirt-qemu
#
LIBVIRT_QEMU_UID=64055
LIBVIRT_QEMU_GID=64055

#
# add groups to run libvirt
#
if ! getent group libvirt >/dev/null; then
	addgroup --quiet --system libvirt
fi

if ! getent group kvm >/dev/null; then
	addgroup --quiet --system kvm
fi

#
# add user and group libvirt runs qemu/kvm instances with
#
if ! getent passwd libvirt-qemu >/dev/null; then

	# set uid if available (expected); don't fail otherwise.
	PARAMETER_UID=''
	if ! getent passwd $LIBVIRT_QEMU_UID >/dev/null; then
		PARAMETER_UID="--uid $LIBVIRT_QEMU_UID"
	fi

	adduser --quiet \
			--system \
			--ingroup kvm \
			--quiet \
			--disabled-login \
			--disabled-password \
			--home /var/lib/libvirt \
			--no-create-home \
			--gecos "Libvirt Qemu" \
			$PARAMETER_UID \
			libvirt-qemu
fi

if ! getent group libvirt-qemu >/dev/null; then

	# set gid if available (expected); don't fail otherwise.
	PARAMETER_GID=''
	if ! getent group $LIBVIRT_QEMU_GID >/dev/null; then
		PARAMETER_GID="--gid $LIBVIRT_QEMU_GID"
	fi

	addgroup --quiet --system $PARAMETER_GID libvirt-qemu
	adduser --quiet libvirt-qemu libvirt-qemu
fi

#
# add each sudo user to the libvirt group
#
for u in $(getent group sudo | sed -e "s/^.*://" -e "s/,/ /g"); do
	adduser "$u" libvirt >/dev/null || true
done

if ! getent group libvirt-dnsmasq >/dev/null; then
	addgroup --quiet --system libvirt-dnsmasq
fi
if ! getent passwd libvirt-dnsmasq >/dev/null; then
	adduser --quiet \
			--system \
			--ingroup libvirt-dnsmasq \
			--disabled-login \
			--disabled-password \
			--home /var/lib/libvirt/dnsmasq \
			--no-create-home \
			--gecos "Libvirt Dnsmasq" \
			libvirt-dnsmasq
fi

#
# register and start libvirt services
#
systemctl daemon-reload
systemctl start libvirtd.service
systemctl start libvirt-guests.service