andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 9.078
Es soll hier darum gehen, so verschiedene Möglichkeiten der Privilege Elevation zu diskutieren.
Hin und wieder benötigt man ja mehr System-Rechte, als man gewöhnlich als Useraccount hat. Wenns z.B. darum geht, Software zu installieren usw.
Und da gibts ja mehrere Möglichkeiten.
Das einfachste ist sicher das SUID-Bit. Allerdings ist das nicht sehr granular. Es wirkt nur auf ein Programm als Gesamtes und dann auch für alle User-Accounts auf dem System.
Etwas mehr kann man mit dem Programm su machen. Was einem aber auch zu viel Rechte einräumt. Außerdem nötigt einem das noch das Passwort des Zielaccounts (z.B.: root) einzugeben, was man ja auch nicht immer möchte.
Eine feinere Konfiguration ermöglicht das allseits bekannte sudo. Da lässt sich ja genau festlegen, welcher Benutzer (oder Benutzergruppe) welchen Befehl unter welchem effektiven User mit welchen Parametern ausgeführt werden kann.
In eine ähnliche Richtung gehen ja auch sudo-rs (quasi eine sudo-Implementierung in Rust) und doas, welches schlanker ist und ich von der Konfigurationssyntax (doas.conf(5)) her angenehmer finde.
systemd bietet ja mit run0 etwas, was so ähnlich ist.
Das Problem: Es wirkt auf Programme und nicht auf Rechte als solches.
In die Richtung geht dann eher so was wie Capapbilities oder auch PolKit, welches dann aber schon wieder recht komplex ist.
Und dann gibts natürlich noch die richtig fetten Lösungen wie SELinux, die aber oft Overkill sein dürften.
Wie macht ihr das, wenn ihr Privilege Elevation benötigt? Und gibts vielleicht noch andere praktikable Ansätze?
Hin und wieder benötigt man ja mehr System-Rechte, als man gewöhnlich als Useraccount hat. Wenns z.B. darum geht, Software zu installieren usw.
Und da gibts ja mehrere Möglichkeiten.
Das einfachste ist sicher das SUID-Bit. Allerdings ist das nicht sehr granular. Es wirkt nur auf ein Programm als Gesamtes und dann auch für alle User-Accounts auf dem System.
Etwas mehr kann man mit dem Programm su machen. Was einem aber auch zu viel Rechte einräumt. Außerdem nötigt einem das noch das Passwort des Zielaccounts (z.B.: root) einzugeben, was man ja auch nicht immer möchte.
Eine feinere Konfiguration ermöglicht das allseits bekannte sudo. Da lässt sich ja genau festlegen, welcher Benutzer (oder Benutzergruppe) welchen Befehl unter welchem effektiven User mit welchen Parametern ausgeführt werden kann.
In eine ähnliche Richtung gehen ja auch sudo-rs (quasi eine sudo-Implementierung in Rust) und doas, welches schlanker ist und ich von der Konfigurationssyntax (doas.conf(5)) her angenehmer finde.
systemd bietet ja mit run0 etwas, was so ähnlich ist.
Das Problem: Es wirkt auf Programme und nicht auf Rechte als solches.
In die Richtung geht dann eher so was wie Capapbilities oder auch PolKit, welches dann aber schon wieder recht komplex ist.
Und dann gibts natürlich noch die richtig fetten Lösungen wie SELinux, die aber oft Overkill sein dürften.
Wie macht ihr das, wenn ihr Privilege Elevation benötigt? Und gibts vielleicht noch andere praktikable Ansätze?