ubuntuusers.de

grafisches Programm in einem anderen Benutzerkontext starten

Status: Gelöst | Ubuntu-Version: Ubuntu MATE 18.04 (Bionic Beaver)
Antworten |

fleet_street

Top-Wikiautor
Avatar von fleet_street

Anmeldungsdatum:
30. August 2016

Beiträge: 2400

Wohnort: Hunsrück (dunkle Seite)

Seit Jahren praktiziere ich das, was im Artikel Programme abschotten beschrieben steht. Der Browser läuft unter einem anderen Benutzer. Andere Umsetzungen mit firejail oder apparmor erfordern mehr Einlesen und dafür fehlt mir irgendwie die Energie, die ich lieber in andere Dinge stecke. Da es in der beschriebenen Form unter 18.04 nicht umgesetzt werden kann (fehlendes gksudo) und mit

pkexec --user feuerfuchs firefox --display=:0

werde ich (fleet) aber nach dem Passwort von admin gefragt. Das ist für mich absolut keine Option. Dieses Passwort darf ausschließlich admin für die Systemadministration verwenden. Diese Trennung halte ich strikt ein.

Deshalb habe ich nun ein etwas umständlicheres Konstrukt. Zunächst einmal einen eingerichteten Benutzer feuerfuchs und der reguläre Benutzer ist Mitglied der Gruppe feuerfuchs.

uid=1000(admin) gid=1000(admin) Gruppen=1000(admin),4(adm),27(sudo),115(lpadmin)
uid=1001(fleet) gid=1001(fleet) Gruppen=1001(fleet),1002(feuerfuchs)
uid=1002(feuerfuchs) gid=1002(feuerfuchs) Gruppen=1002(feuerfuchs)

Dann ein Skript unter /opt/local/bin/feuerfuchs folgenden Inhalts:

#!/bin/bash
/usr/bin/xhost +si:localuser:feuerfuchs && /bin/su feuerfuchs --login -c "/usr/bin/firefox &"

Das würde schon reichen, dass das fleet mit dem Passwort von feuerfuchs den Browser starten kann, aber dazu muss das Passwort im Terminal abgefragt werden. Daher dann doch einen Eintrag in /etc/sudoers.d/benutzerdefiniert

# Mitgliedern der Gruppe feuerfuchs erlauben als Benutzer feuerfuchs firefox zu starten (ohne Passwort)
Cmnd_Alias FEUERFUCHS = /opt/local/bin/feuerfuchs
%feuerfuchs ALL = NOPASSWD:FEUERFUCHS

damit der Aufruf auch per Starter erfolgt kann

sudo /opt/local/bin/feuerfuchs

Es startet Firefox mit dem gewünschten Zusatz in der Titelleiste "Mozilla Firefox (als feuerfuchs)".

Jetzt meine Frage: Habe ich damit im Sinne des Artikels Programme abschotten gehandelt oder habe ich mir unbeabsichtigt ein unbekanntes Loch gerissen?

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 10374

Wohnort: Münster

fleet_street schrieb:

[…] (fehlendes gksudo) und mit

pkexec --user feuerfuchs firefox --display=:0

werde ich (fleet) aber nach dem Passwort von admin gefragt.

pkexec ist kein Ersatz für sudo bzw su, sondern macht etwas ganz Anderes, auch wenn es für den naiven Benutzer in der häufigsten Anwendung – root-Rechte erlangen – als Alternative erscheint. Die Benutzung von pkexec in Zusammenhang mit einem Anwenderprogramm (z.B. Browser) ist ein Sicherheitsrisiko. Mach das bitte nicht!

[…] Deshalb habe ich nun ein etwas umständlicheres Konstrukt. Zunächst einmal einen eingerichteten Benutzer feuerfuchs und der reguläre Benutzer ist Mitglied der Gruppe feuerfuchs.

Mir ist unklar, was Du eigentlich erreichen möchtest. Die einfachste Möglichkeit, firefox unter einem bestimmten Benutzer laufen zu lassen, ist, sich als dieser Benutzer anzumelden und das Programm zu starten. Das geht mit den Standard-Einstellungen des Systems und auch ohne Veränderung an Rechten und Gruppenzugehörigkeiten. Du musst lediglich den weiteren Benutzer (der vermutlich nicht das Recht haben soll, sich zu root zu verwandeln?) anlegen.

chilidude

Avatar von chilidude

Anmeldungsdatum:
18. Februar 2010

Beiträge: 867

fleet_street schrieb:

Jetzt meine Frage: Habe ich damit im Sinne des Artikels Programme abschotten gehandelt

Ja.

oder habe ich mir unbeabsichtigt ein unbekanntes Loch gerissen?

Nein.

Du müsstes natürlich noch sicherstellen, dass der User Feuerfuchs nicht lesend auf das Hauptverzeichnis zugreifen kann, also z.B so:

chmod o-rwx /home/admin /home/fleet

fleet_street

Top-Wikiautor
(Themenstarter)
Avatar von fleet_street

Anmeldungsdatum:
30. August 2016

Beiträge: 2400

Wohnort: Hunsrück (dunkle Seite)

Danke euch beiden für die Rückmeldung.

kB schrieb:

… Die Benutzung von pkexec in Zusammenhang mit einem Anwenderprogramm (z.B. Browser) ist ein Sicherheitsrisiko. Mach das bitte nicht!

Das ist schon mal ein klares Wort.

Mir ist unklar, was Du eigentlich erreichen möchtest.

Das ist so eine minimale Art, den Browser vom Rest des Systems ab zu schotten. Der Browser kann nicht auf das Mailverzeichnis oder die Bildersammlung zugreifen. Der reguläre Benutzer muss sich aber nicht erst abmelden, um mal eben eine Info aus dem Netz zu bekommen. Natürlich ist per Drag'n'drop, die Zwischenablage oder den X-Server als solches dies kein perfekter Schutz.

chilidude schrieb:

Du müsstes natürlich noch sicherstellen, dass der User Feuerfuchs nicht lesend auf das Hauptverzeichnis zugreifen kann, also z.B so:

chmod o-rwx /home/admin /home/fleet

Ja habe ich gemacht, auch wenn das im Artikel nur kurz angesprochen, dann verlinkt wurde und ich habe es im Themenstart genauso beiläufig vergessen.

fleet_street

Top-Wikiautor
(Themenstarter)
Avatar von fleet_street

Anmeldungsdatum:
30. August 2016

Beiträge: 2400

Wohnort: Hunsrück (dunkle Seite)

Ich habe mir PolicyKit noch mal durchgelesen. Dort steht doch auch, dass es eine Möglichkeit gäbe, mit pkexec ein Programm als anderer Benutzer zu starten. Gut nicht im Zusammenhang mit einem Browser, aber immerhin. In einem anderen Forum wird gerade an dieser Umsetzung gebastelt. https://www.linuxmintusers.de/index.php?topic=49282.msg688840#msg688840

kB, kannst du noch mit ein paar Worten umreißen, inwiefern das ein Sicherheitsrisiko darstellt?

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 10374

Wohnort: Münster

fleet_street schrieb:

[…] PolicyKit:] […] Dort steht doch auch, dass es eine Möglichkeit gäbe, mit pkexec ein Programm als anderer Benutzer zu starten.

Aus der Tatsache, dass es technisch möglich ist, folgt nicht, dass es eine sichere Methode ist.

Der Unterschied zwischen sudo/su und PolicyKit ist in vereinfacht in etwa der Unterschied zwischen Opt-in und Opt-out:

  • sudo/su erlauben es einem Benutzer, seine Identität zu ändern. Seine Rechte zum Zugriff auf eine Datei (oder ein Verzeichnis, welches auch eine Datei ist) entsprechen aber immer den Vorgaben dieser Datei bezüglich Benutzeridentität und Gruppenzughörigkeit, sofern der Benutzer nicht root ist. Der Benutzer darf also immer das machen, was ihm explizit erlaubt wurde.

  • Ein Programm welches PolicyKit verwendet, läuft dagegen mit den Rechten von root und kann daher grundsätzlich alles im Dateisystem machen. Dem konkreten Benutzer wird per PolicyKit verweigert, was er nicht tun soll. Dabei benutzt PolicyKit für diese Entscheidung seinen eigenen Regelsatz, welcher unabhängig von den Vorgaben für sudo/su ist und die Vorgaben der Datei für Zugriffsbeschränkungen nicht beachtet.

PolicyKit ist also eigentlich ein Hack zur Umgehung des systemeigenen sudo/su-Mechanismus und des Berechtigungskonzepts von unixoiden Betriebssystemen für Programme, die speziell für die Benutzung dieses Dienstes programmiert wurden.

pkexec ist ein Hack, um den Hack PolicyKit auch für Programme zu nutzen, die selbst nicht auf PolicyKit vorbereitet wurden.

Antworten |