summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarti Raudsepp2021-03-12 20:55:20 +0200
committerMarti Raudsepp2021-03-12 20:55:52 +0200
commit7ef273903bfb35ba9f9eb6b6601d793809e8df5d (patch)
treed7a7c84ef3aa5baf26c50fa42c498606d07648cd
parent92baa9aa5833d362ad66afeef42573197d5a7cdf (diff)
downloadaur-7ef273903bfb35ba9f9eb6b6601d793809e8df5d.tar.gz
Automatically set up users, sudoers & polkit rules
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD18
-rw-r--r--ego.rules8
-rw-r--r--ego.sudoers2
-rw-r--r--ego.sysusers3
5 files changed, 35 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 3b1ddf2db24c..8e81a1d8dbbd 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = ego
pkgdesc = Alter Ego: run Linux desktop applications under a different local user
pkgver = 1.1.0
- pkgrel = 1
+ pkgrel = 2
url = https://github.com/intgr/ego
arch = x86_64
license = MIT
@@ -9,7 +9,13 @@ pkgbase = ego
depends = acl
optdepends = xdg-desktop-portal-gtk: improved desktop integration
source = ego-1.1.0.tar.gz::https://crates.io/api/v1/crates/ego/1.1.0/download
+ source = ego.sysusers
+ source = ego.sudoers
+ source = ego.rules
sha512sums = 19fcec3766382a62b35d07590da513955dbbb85678b56d85e932addd47f9ae433054bd61f77f594cfbcf5d541b51c50e6becdda6088f5ecd6c68d6fe9d8eac28
+ sha512sums = c481937c92d94b29526ed86d3719107c85a8ffad8210a5e707564d5f53bcddbc48b39937a1f9b181da15830fe8bf34798339709d3e2c8119930f565168f67815
+ sha512sums = e89f7f63c680be625fa8b138de3bd9307536173e9690c00c086a1e3cc2948764137c2ea22e29b37d33ae13bcdf4e67190462a5942d913521652ff3b33a9f49c3
+ sha512sums = ed8df913a45f0e5029fdd9370fc6124eb5b7a617ef62fb616b9f13aecb47a54f92751de6ccac03034afbdd1e3f33ad11847a34e1f78b9481b8225f881ad5d69b
pkgname = ego
diff --git a/PKGBUILD b/PKGBUILD
index fbef3a8aaa25..e534a2d102a7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Marti Raudsepp <marti@juffo.org>
pkgname=ego
pkgver=1.1.0
-pkgrel=1
+pkgrel=2
pkgdesc="Alter Ego: run Linux desktop applications under a different local user"
arch=('x86_64')
url="https://github.com/intgr/ego"
@@ -10,8 +10,14 @@ depends=('acl')
makedepends=('cargo')
optdepends=('xdg-desktop-portal-gtk: improved desktop integration')
#source=("$pkgname-$pkgver.tar.gz::https://github.com/intgr/$pkgname/archive/$pkgver.tar.gz")
-source=("$pkgname-$pkgver.tar.gz::https://crates.io/api/v1/crates/$pkgname/$pkgver/download")
-sha512sums=('19fcec3766382a62b35d07590da513955dbbb85678b56d85e932addd47f9ae433054bd61f77f594cfbcf5d541b51c50e6becdda6088f5ecd6c68d6fe9d8eac28')
+source=("$pkgname-$pkgver.tar.gz::https://crates.io/api/v1/crates/$pkgname/$pkgver/download"
+ "ego.sysusers"
+ "ego.sudoers"
+ "ego.rules")
+sha512sums=('19fcec3766382a62b35d07590da513955dbbb85678b56d85e932addd47f9ae433054bd61f77f594cfbcf5d541b51c50e6becdda6088f5ecd6c68d6fe9d8eac28'
+ 'c481937c92d94b29526ed86d3719107c85a8ffad8210a5e707564d5f53bcddbc48b39937a1f9b181da15830fe8bf34798339709d3e2c8119930f565168f67815'
+ 'e89f7f63c680be625fa8b138de3bd9307536173e9690c00c086a1e3cc2948764137c2ea22e29b37d33ae13bcdf4e67190462a5942d913521652ff3b33a9f49c3'
+ 'ed8df913a45f0e5029fdd9370fc6124eb5b7a617ef62fb616b9f13aecb47a54f92751de6ccac03034afbdd1e3f33ad11847a34e1f78b9481b8225f881ad5d69b')
build() {
cd "$pkgname-$pkgver"
@@ -29,6 +35,12 @@ package() {
install -Dm644 "README.md" "$pkgdir/usr/share/doc/${pkgname}/README.md"
install -Dm644 "LICENSE" "$pkgdir/usr/share/doc/${pkgname}/LICENSE"
+ install -Dm644 "$srcdir/ego.sysusers" "$pkgdir/usr/lib/sysusers.d/ego.conf"
+ install -dm750 "$pkgdir/etc/sudoers.d"
+ install -Dm644 "$srcdir/ego.sudoers" "$pkgdir/etc/sudoers.d/50-ego.conf"
+ install -dm750 "$pkgdir/etc/polkit-1/rules.d"
+ install -Dm644 "$srcdir/ego.rules" "$pkgdir/etc/polkit-1/rules.d/50-ego.rules"
+
install -Dm644 "varia/ego-completion.zsh" "$pkgdir/usr/share/zsh/site-functions/_ego"
install -Dm644 "varia/ego-completion.bash" "$pkgdir/usr/share/bash-completion/completions/ego"
install -Dm644 "varia/ego-completion.fish" "$pkgdir/usr/share/fish/vendor_completions.d/ego.fish"
diff --git a/ego.rules b/ego.rules
new file mode 100644
index 000000000000..19a44fa87d05
--- /dev/null
+++ b/ego.rules
@@ -0,0 +1,8 @@
+/* Allow users in 'ego-users' group to invoke commands as 'ego' */
+polkit.addRule(function(action, subject) {
+ if (action.id == "org.freedesktop.machine1.host-shell" &&
+ action.lookup("user") == "ego" &&
+ subject.isInGroup("ego-users")) {
+ return polkit.Result.YES;
+ }
+});
diff --git a/ego.sudoers b/ego.sudoers
new file mode 100644
index 000000000000..5a4f9ece7e87
--- /dev/null
+++ b/ego.sudoers
@@ -0,0 +1,2 @@
+# Allow users in 'ego-users' group to invoke commands as 'ego'
+%ego-users ALL=(ego) NOPASSWD:ALL
diff --git a/ego.sysusers b/ego.sysusers
new file mode 100644
index 000000000000..5e539ca186e5
--- /dev/null
+++ b/ego.sysusers
@@ -0,0 +1,3 @@
+#Type Name ID GECOS Home directory Shell
+u ego 155 "Alter Ego" /home/ego
+g ego-users -