staging.inyokaproject.org

PolicyKit

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels PolicyKit.

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

"no news are good news" → Artikel ist wieder im Wiki.

Gruß, noisefloor

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

ist zwecks Überarbeitung in der Baustelle.

Gruß, noisefloor

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

so, fertig. Ist quasi eine komplette Re-Write geworden. pkexec ist jetzt ausführlich erklärt.

Was mir noch nicht gelungen ist, ist eine .rules-Datei anzulegen, die auch tatsächlich funktioniert. Also das z.B. Mitglieder der Gruppe sudo gedit mit Root-Rechten ohne Eingabe des Passworts starten können. Wenn also jemand ein brauchbares Beispiel für eine rules-Datei beisteuern kann - gerne.

Gruß, noisefloor

mrkramps Team-Icon

Avatar von mrkramps

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 5523

Das mit der Installation haut meines Wissens nach so nicht ganz hin.

Das Paket policykit-1 installiert nur den Daemon. Die Befehlsausführung über pkexec ist dann nur mit dem integrierten, textbasierten Authentication Agent auf der Befehlszeile möglich, weil keine grafische Passwortabfrage bereitgestellt wird. Deswegen hat xubuntu-desktop in den empfohlenen Abhängigkeiten die Pakete policykit-1-gnome oder mate-polkit. Und budgie-desktop sowie ubuntukylin-desktop ziehen ebenfalls policykit-1-gnome über network-manager-gnome bzw. prüfen auf einen anderen installierten Authentication Agent über das virtuelle Paket polkit-1-auth-agent.

Richtiger wäre also, dass man PolicyKit über das Paket policykit-1 installiert. Für eine grafische Passwortabfrage in einer Desktopumgebung aber noch einen passenden Authentication Agent braucht, der im Autostart liegt und mit der Sitzungsverwaltung gestartet wird. Normalerweise hinterlegen diese Pakete alle einen Programmstarter in /etc/xdg/autostart/ (außer mate-polkit). Verwendet man allerdings eine Desktopumgebung, die dieses Verzeichnis nicht einliest, dann muss man den Agent entsprechend selber in den Autostart eintragen.

* Allgemein
  Paket: policykit-1

* Ubuntu (Unity/Gnome), Xubuntu, Budgie, Kylin
  Paket: policykit-1-gnome
  Autostart: /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1

* Lubuntu
  Paket: lxpolkit
  Autostart: /usr/bin/lxpolkit

* MATE: mate-polkit
  Autostart (64 Bit): /usr/lib/x86_64-linux-gnu/polkit-mate/polkit-mate-authentication-agent-1
  Autostart (32 Bit): /usr/lib/i386-linux-gnu/polkit-mate/polkit-mate-authentication-agent-1

* KDE 
  Paket: polkit-kde-agent-1
  Autostart (64 Bit): /usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1
  Autostart (32 Bit): /usr/lib/i386-linux-gnu/libexec/polkit-kde-authentication-agent-1

* LXQt
  Paket: lxqt-policykit
  Autostart: /usr/bin/lxqt-policykit-agent

Wie immer sehr aufschlussreich dazu das Archwiki über Polkit.

Wegen der rules-Datei muss ich mal schauen, ob ich dir über das Wochenende noch etwas beisteuern kann.

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

thx - habe den Teil zur Installation angepasst und die Pakete richtig zugeordnet.

Zu den rules: Das Beispiel zur der rules-Datei - das in sehr ähnlicher Form auch anderswo im Netz, z.B. bei Suse - zu finden ist, habe ich unter Ubuntu nicht zum Laufen bekommen. Also in dem Sinne, dass nicht das passiert, was ich erwarte. Das Passwort wird immer abgefragt. Oder ich verstehe da was falsch... Wenn du da was beisteuern kannst wäre es schön, sonst kommt der Artikel ohne rules-Beispiel ins Wiki.

Gruß, noisefloor

mrkramps Team-Icon

Avatar von mrkramps

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 5523

noisefloor schrieb:

thx - habe den Teil zur Installation angepasst und die Pakete richtig zugeordnet.

Sehr schön. Das mit dem Autostart wäre nur interessant für die Eigene Desktopumgebung, die hier wohl kaum jemand verwendet. Deswegen reicht mir da der weiterführende Link ins Archwiki, den du ja bereits angebracht hast.

Zu den rules: Das Beispiel zur der rules-Datei - das in sehr ähnlicher Form auch anderswo im Netz, z.B. bei Suse - zu finden ist, habe ich unter Ubuntu nicht zum Laufen bekommen. Also in dem Sinne, dass nicht das passiert, was ich erwarte. Das Passwort wird immer abgefragt. Oder ich verstehe da was falsch... Wenn du da was beisteuern kannst wäre es schön, sonst kommt der Artikel ohne rules-Beispiel ins Wiki.

Das Passwort soll ja abgefragt werden. Im Prinzip wäre die Aktionsregel für gedit quasi ein Ersatz für die Verwendung von gksudo. Zumindest würde ich für eine sinnvolle Einrichtung dieser Regel voraussetzen, dass die nicht einfach ohne Passwortabfrage ausgeführt werden kann. Möchte man das dennoch, dann muss man die <defaults> entsprechend ändern:

<defaults>
  <allow_any>no</allow_any>
  <allow_inactive>no</allow_inactive>
  <allow_active>yes</allow_active>
</defaults>

Mit dem no für <allow_any> und <allow_inactive> werden Fernverbindungen ausgenommen und nur für aktiv am System angemeldete Sitzungen (tty und X) die notwendigen Rechte bereitgestellt. Passworteingabe entfällt mit yes. Siehe auch PolKit - Actions.

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

das meine ich nicht... Im ArchWiki (und auch bei Suse) steht folgende .rules-Datei als Beispiel:

1
2
3
4
5
6
7
/* Allow users in admin group to run GParted without authentication */
polkit.addRule(function(action, subject) {
    if (action.id == "org.archlinux.pkexec.gparted" &&
        subject.isInGroup("admin")) {
        return polkit.Result.YES;
    }
});

der Kommentar in der ersten Zeile sagt ja, was hier passieren soll. Und das tut's (bei mir) nicht unter Ubuntu, wenn ich das Beispiel auf den Ubuntu Namespace und die Gruppe "sudo" umstricke.

Gruß, noisefloor

coram

Anmeldungsdatum:
17. Januar 2015

Beiträge: 643

Die .rules-Dateien wurden erst mit PolicyKit-Version 0.106 eingeführt, siehe: https://lists.freedesktop.org/archives/polkit-devel/2012-June/000368.html.

The big thing here is the switch from .pkla to .rules files. I hope you like it.

Bionic stellt jedoch bloß die Vorläufer-Version 0.105-20 zur Verfügung, die statt der .rules-Dateien nur das ältere .pkla-Format kennt! (Siehe in verlinkter Seite Beispiele für .pkla-Dateien etwas weiter unten im Abschnitt DIRECTORY STRUCTURE.)

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

den Versionshinweis hatte ich auch gesehen. Aber: unter Ubuntu 16.04, Verzeichnis /usr/share/polkit-1/rules.d, gibt es eine Reihe von .rules Dateien, u.a. diese:

polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.NetworkManager.settings.modify.system" &&
        subject.local && subject.active && 
        (subject.isInGroup ("sudo") || subject.isInGroup ("netdev"))) {
    return polkit.Result.YES;
  }
});

Das ist genau die Syntax der .rules-Datei. Ich gehe auch einfach mal davon aus, dass Canonical die nicht zum Spaß da rein gepackt hat, sondern dass das wirklich auch greift...

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

das gute ist immerhin, dass pkla-Dateien funktionieren. Habe den Artikel entsprechend erweitert.

Kennt eigentlich jemand den Grund, warum Canonical schon seit Ewigkeiten auf PolKit 0.105 hängt? Die Version ist von 2012, aktuell ist 0.113 (von 2015).

Gruß, noisefloor

mrkramps Team-Icon

Avatar von mrkramps

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 5523

noisefloor schrieb:

Kennt eigentlich jemand den Grund, warum Canonical schon seit Ewigkeiten auf PolKit 0.105 hängt? Die Version ist von 2012, aktuell ist 0.113 (von 2015).

Ein Blick in die offizielle Dokumentation zeigt, dass Policykit mit Version 0.106 in Polkit umbenannt wurde. Zumindest wird der Name PolicyKit mit Version >= 0.106 nicht verwendet. Ein weiterer Blick ins Changelog, in diesem Fall die NEWS-Datei, verrät uns, dass der Wechsel von *.pkla auf *.rules quasi ein Wechsel auf JavaScript für diese Regeldateien bedeutet und SpiderMonkey (mozjs) dafür benötigt wird. Und das Paket für mozjs hätte jetzt für den Wechsel auf Polkit >= 0.106 in main bez. security landen müssen.

Tatsächlich ist mozjs Version 52 inzwischen als Abhängigkeit von GNOME (gnome-shell) auch genau dort aufgeschlagen, aber Polkit unterstützt diese Version erst seit Version 0.114, die im April 2018 veröffentlich wurde. Alle Versionen < 0.114 und > 0.105 setzen auf mozjs 185 oder 17.0, die GNOME Shell dato aber auf Version 24.0.

In diesem Blogpost 🇬🇧 rechtfertigt sich der Entwickler übrigens nochmal für seinen JavaScript-Ansatz … Sorry, das nicht cool 😕

Die vorhandenen Regeln in /usr/share/polkit-1/rules.d werden voraussichtlich nicht verwendet. Die stammen aus den Paketen einer jeweiligen Anwendung (in deinem Beispiel network-manager) und werde nicht zwangszweise auch geladen, nur weil mit dem Paket installiert. Liegen ggf. nur einer aktuelleren Programmversion schon bei? Das gleiche Paket enthielte nämlich auch eine pkla-Datei.

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

Danke für die Erklärung. Schon alles sehr strange... aber egal, so isses nun mal.

Der Artikel wäre dann fertig.

Gruß, noisefloor

mrkramps Team-Icon

Avatar von mrkramps

Anmeldungsdatum:
10. Oktober 2006

Beiträge: 5523

In deinem Policy-Beispiel für gedit muss die gettext-domain für gpArted in <message> noch raus und 3 Absätze darunter ist ein fehlformatierter Link zu man.

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

es ist ein Wiki... hättest du auch direkt erledigen können. Done, Danke für den Hinweis.

Gruß, noisefloor

noisefloor Team-Icon

Ehemaliger
(Themenstarter)
Avatar von noisefloor

Anmeldungsdatum:
6. Juni 2006

Beiträge: 28316

Hallo,

Artikel ist wieder im Wiki. Besonderen Dank an mrkramps für den Input und die Hintergrundinfos hier im Thread.

Gruß, noisefloor

Antworten |