Alles wichtige über run0

Was ist run0?

Run0 ist eine moderne Alternative zum altbekannten "sudo" (superuser do) Befehl.
Wie auch bei sudo können mit "run0" Programme mit priviligierten Rechten(root) ausgefürt werden.

Warum braucht es run0?

Anders als "sudo" nutzt run0 zur Ausführung als root Benutzer nicht den "Set User ID" (SUID) Mechanismus von Linux im bestehenden Kontext des Benutzers.
Dieser bringt eine erhöte Angriffsoberfläche zur Übernahme des Systems durch unauthorisierte Berechtigungseskalation mit sich (siehe z.B. CVE-2021-3156).
Run0 führt das entsprechende Programm stattdessen als Prozess in einem tempoär erstellten systemd service ohne Benutzerkontext aus, was die möglichen Angriffsvektoren reduzuiert und so zur Sicherheit des Systems beiträgt.

Wie nutze ich run0?

Run0 basiert auf systemd. Genauer gesagt handelt es sich dabei lediglich um einen mit der Version 256 eingeführten Link, auf das schon lange existierende "systemd-run" Programm.
Um zu prüfen ob das eigene System run0 unterstützt, kann das Kommando "systemctl --version" genutzt werden.
Ist die Version größergleich 256, ist run0 nativ verfügbar.

Die Ausführung eines Programms kann dann analog des sudo Kommandos erfolgen.

run0 <Programm>

Nach Eingabe des Nutzerpassworts wird das jeweilige Progamm als root Benuter ausgeführt.
Um dies visuell hervorzuheben wird der Hintergrund des Terminals rot eingefärbt.

> run0 whoami
root

Wie erfahre ich mehr über run0?

Die vermutlich beste Quelle für mehr Infos zu den Hintergründen und Verwendung von run0 ist wie so oft die zugehörige Manpage des Progamms :-) ...aufrufbar mit "man run0" oder hier.