summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorДамјан Георгиевски2018-04-25 16:27:18 +0200
committerДамјан Георгиевски2018-04-25 16:27:51 +0200
commitb61d3dafcce6d66ec317cc04691e2b2a3cb621e1 (patch)
tree92a139c001fc606ccb4e6046cc1c8186006d5e0d
parent2538183f238981bd3b330ef36721ab4bc4085cf5 (diff)
downloadaur-b61d3dafcce6d66ec317cc04691e2b2a3cb621e1.tar.gz
add polkit rules to allow the virtlyst to access libvirt
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD7
-rw-r--r--virtlyst.rules9
-rw-r--r--virtlyst.service5
4 files changed, 20 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 0e8f182479f6..5397e4991c71 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -11,9 +11,11 @@ pkgbase = virtlyst
source = https://github.com/cutelyst/Virtlyst/archive/v1.0.0.tar.gz
source = virtlyst.ini
source = virtlyst.service
+ source = virtlyst.rules
sha256sums = 5f1b121a90bfe8fcb608913306478dc8d68c4132aea11ffbd57a76d12bb32ce8
sha256sums = 372cf5d94a8117b0ad167d9edd7487f81f9440376d6b485e6fbe51b417324a39
- sha256sums = b7f96b90e7e7aeae0fb0cbe4c62e63c1418439d83d587e2afb40ab28f12b704f
+ sha256sums = e2c573630bc79d92d77202c54fbcb73720f97fce5606ca7d83640f455bb7f80b
+ sha256sums = fb13f116e9b8268b642082ab8aac40fe2104dbb33e98ab925ab3633986c5fdca
pkgname = virtlyst
diff --git a/PKGBUILD b/PKGBUILD
index 79d8c7e856b0..0a9d0d219190 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -12,7 +12,8 @@ depends=('cutelyst' 'libvirt')
makedepends=()
source=("https://github.com/cutelyst/${_projectname}/archive/v${pkgver}.tar.gz"
"virtlyst.ini"
- "virtlyst.service")
+ "virtlyst.service"
+ "virtlyst.rules")
backup=("etc/uwsgi/virtlyst.ini")
@@ -31,6 +32,7 @@ package() {
install -D -m755 "${srcdir}/build/src/libVirtlyst.so" -t "${pkgdir}/usr/lib/uwsgi/"
install -D -m644 "${srcdir}/virtlyst.ini" -t "${pkgdir}/etc/uwsgi/"
install -D -m644 "${srcdir}/virtlyst.service" -t "${pkgdir}/usr/lib/systemd/system/"
+ install -D -m644 "${srcdir}/virtlyst.rules" -t "${pkgdir}/usr/share/polkit-1/rules.d/51-virtlyst.rules"
install -d "${pkgdir}/usr/share/${pkgname}/"
cp -r "${srcdir}/${_projectname}-${pkgver}/root/static/" "${pkgdir}/usr/share/${pkgname}/static"
cp -r "${srcdir}/${_projectname}-${pkgver}/root/src/" "${pkgdir}/usr/share/${pkgname}/templates"
@@ -38,4 +40,5 @@ package() {
sha256sums=('5f1b121a90bfe8fcb608913306478dc8d68c4132aea11ffbd57a76d12bb32ce8'
'372cf5d94a8117b0ad167d9edd7487f81f9440376d6b485e6fbe51b417324a39'
- 'b7f96b90e7e7aeae0fb0cbe4c62e63c1418439d83d587e2afb40ab28f12b704f')
+ 'e2c573630bc79d92d77202c54fbcb73720f97fce5606ca7d83640f455bb7f80b'
+ 'fb13f116e9b8268b642082ab8aac40fe2104dbb33e98ab925ab3633986c5fdca')
diff --git a/virtlyst.rules b/virtlyst.rules
new file mode 100644
index 000000000000..74b681ec9cfc
--- /dev/null
+++ b/virtlyst.rules
@@ -0,0 +1,9 @@
+// Allow 'virtlyst' user to connect to system libvirtd
+// without entering a password.
+
+polkit.addRule(function(action, subject) {
+ if (action.id == "org.libvirt.unix.manage" &&
+ subject.user == "virtlyst") {
+ return polkit.Result.YES;
+ }
+});
diff --git a/virtlyst.service b/virtlyst.service
index a224291f76bc..29fb53985e1c 100644
--- a/virtlyst.service
+++ b/virtlyst.service
@@ -3,9 +3,10 @@ After=network.target libvirtd.service
Description=Web interface to manage virtual machines with libvirt
[Service]
-Type=simple
+Type=notify
+NotifyAccess=all
DynamicUser=yes
-SupplementaryGroups=libvirt
+User=virtlyst
Restart=always
ExecStart=/usr/bin/cutelyst-wsgi2 --ini /etc/uwsgi/virtlyst.ini
StateDirectory=virtlyst