Systemd v256 bringt mit run0 eine neue Alternative zu sudo: Lennart Poettering hat wieder zugeschlagen!

Lennart Poettering, der prominente Linux-Entwickler, hat uns eine neue Spielerei mitgebracht: Systemd-Version 256 enthält ein neues Tool namens run0. Damit können jetzt auch normale Benutzer Befehle mit Root-Rechten ausführen. Poettering behauptet sogar, dass run0 eine sicherere Alternative zu sudo ist. Na, da sind wir mal gespannt!

Der Hauptgrund für diese modernere sudo-Alternative ist laut Poettering die Sicherheit. Im Gegensatz zu sudo handelt es sich bei run0 um ein sogenanntes SUID-Binary. Das bedeutet, dass es im Kontext eines Benutzers gestartet wird und dann mit Root-Rechten läuft. Anschließend wird das Passwort des Benutzers angefordert und anhand der Regeln in der Datei /etc/sudoers überprüft, ob der Benutzer das gewünschte Programm mit Administratorrechten ausführen darf.

Poettering behauptet, dass die Syntax dieser Regeln bei sudo komplex und anfällig für Fehler ist. Sowohl sudo als auch der von sudo gestartete Prozess übernehmen standardmäßig viele Aspekte des Nutzerprozess-Kontextes, wie offene Dateien, Umgebungsvariablen, Sicherheitskontexte und cgroup-Zuordnungen. Aber Poettering ist skeptisch, ob sudo selbst wirklich für die Bereinigung der Umgebung verantwortlich ist. Deshalb verwendet das Betriebssystem OpenBSD anstelle von sudo das eigene, weniger anfällige doas.

Aber Poettering geht noch weiter und betrachtet das Starten privilegierter Prozesse aus dem Kontext eines regulären Benutzers als generell schlechte Idee. Er hält das gesamte Konzept von SUID für veraltet und betrachtet es als eine der schlechten Ideen aus der Unix-Welt. Es gibt zahlreiche CVEs (Common Vulnerabilities and Exposures), die Schwachstellen in sudo oder aufgrund fehlerhaft gesetzter SUID-Bits aufdecken. Oops!

Um dieses Problem zu umgehen, schlägt Poettering vor, run0 ohne SUID-Bit zu verwenden. Stattdessen greift run0 auf Polkit (früher bekannt als PolicyKit) zurück, einen etablierten Linux-Dienst zur Steuerung der Software-Berechtigungen, um Root-Rechte zu erlangen. Zusätzlich wird der neue privilegierte Prozess direkt vom Init-Prozess (PID 1) gestartet, wodurch er keinerlei Benutzerkontext übernimmt. Klingt schon vielversprechend, oder?

Poettering betont, dass run0 eher mit einem SSH-Zugang zur lokalen Maschine vergleichbar ist als mit sudo oder su. Tatsächlich handelt es sich bei run0 um systemd-run, einen Mechanismus von Systemd zum Starten von vorübergehenden Prozessen, der schon seit einiger Zeit existiert. Ab Systemd-Version 256 verhält sich das Programm, wenn es über einen symbolischen Link als run0 aufgerufen wird, ähnlich wie sudo, jedoch mit einigen zusätzlichen Funktionen. Eine dieser Funktionen ist, dass das Terminal rot eingefärbt wird, solange der Prozess mit Root-Rechten ausgeführt wird. Na, das ist doch mal stylisch!

Ob run0 tatsächlich eine sichere Alternative zu sudo ist, muss sich noch zeigen. Es ist immer gut, wenn Entwickler neue Wege gehen und nach besseren Lösungen suchen. Aber bis run0 sich bewährt hat und von der Community akzeptiert wird, sollten wir vielleicht noch ein bisschen skeptisch bleiben. In der Zwischenzeit können wir uns ja schon mal auf das rote Terminal freuen, das uns daran erinnert, dass wir gerade mit Root-Rechten jonglieren.

Schlagwörter: Lennart Poettering + run0 Polkit + sudo

Wie bewerten Sie den Schreibstil des Artikels?
1 Star2 Stars3 Stars4 Stars5 Stars
  • 2. Mai 2024