So verwenden Sie Run0 unter Linux

So verwenden Sie Run0 unter Linux
Ein Foto, das eine Nahaufnahme eines Laptop-Bildschirms zeigt.

Run0 ist ein neues und innovatives Programm zur Rechteausweitung für Systemd-basierte Linux-Distributionen. Es bietet eine leichte und „konfigurationslose“ Alternative zu herkömmlichen Ausweitungs-Apps wie sudo und doas. Hier zeigen wir Ihnen die Grundlagen der Verwendung von Run0 zur Ausweitung von Befehlen für Ihr Linux-System.

Zuvor möchten Sie vielleicht herausfinden, was Run0 ist und worin es sich von sudo unterscheidet.

So führen Sie Programme als anderer Benutzer aus

Eine der häufigsten Verwendungen für Apps zur Rechteausweitung ist das Ausführen von Befehlen als Root-Benutzer. In diesem Zusammenhang erfordert das Tippen auf den Root-Benutzer in Run0 das Hinzufügen von run0 vor dem Befehl, den Sie ausführen möchten. Beispielsweise erstellt das Folgende einen neuen Ordner in einem Verzeichnis, auf das nur Root zugreifen kann:

Daraufhin wird entweder eine CLI-Passwortabfrage oder ein kleines GUI-Fenster angezeigt, in dem Sie nach dem Passwort Ihres aktuellen Benutzers gefragt werden.

Ein Screenshot, der die Kennwortabfrage für Run0 zeigt.

Ähnlich wie sudo und doas kann Run0 beim Ausführen von Befehlen auch zu einem Nicht-Root-Benutzer wechseln. Fügen Sie dazu das --userFlag gefolgt vom Namen des Benutzers hinzu, als den Sie den Befehl ausführen möchten:

Geben Sie das Kennwort für den Benutzer ein, zu dem Sie wechseln möchten, und drücken Sie dann Enter.

So wechseln Sie zur Shell eines anderen Benutzers

Ein weiterer wichtiger Aspekt einer App zur Rechteausweitung ist die Möglichkeit, den Benutzer in eine Root-Shell zu verschieben. So können Sie als Root-Benutzer mit Ihrem System interagieren und komplexere Befehle über die CLI ausführen.

In Run0 können Sie dies tun, indem Sie das Programm ohne zusätzliche Argumente ausführen.

Ein Terminal, das die Root-Shell von einer Run0-Eingabeaufforderung aus anzeigt.

Genau wie beim Ausführen von Programmen als Root ist es auch möglich, Run0 mit dem --userFlag zu verwenden, um eine Shell-Sitzung als bestimmter Benutzer zu starten:

Ein Terminal, das die Run0-Eingabeaufforderung für einen Nicht-Root-Benutzer anzeigt.

Darüber hinaus können Sie mit run0 Shell-Sitzungen mit temporären Gruppenberechtigungen für Nicht-Root-Benutzer erstellen. Dies ist nützlich, wenn Sie auf Ordner zugreifen möchten, die hinter einem bestimmten Benutzer und einer bestimmten Gruppe gesperrt sind, ohne auf Root zuzugreifen.

Beispielsweise gewährt der folgende Befehl dem Benutzer „alice“ temporären Zugriff auf die Gruppe „www-data“:

Sie können das --chdirFlag auch verwenden, um beim Wechsel zu einer neuen Shell-Sitzung einen Verzeichniswechsel zu erzwingen:

Ein Terminal, das den automatischen Verzeichniswechsel beim Wechsel in die Shell eines anderen Benutzers zeigt.

So passen Sie die aktuelle Run0-Sitzung an

Das größte Verkaufsargument von Run0 ist, dass es kein setuid (SUID) verwendet, um Superuser-Aktionen abzuwickeln. Stattdessen verlässt es sich auf systemd-run, das isolierte Pseudo-TTYs für die Ausführung von Befehlen als Root erstellt.

Eine Konsequenz dieses Ansatzes ist, dass Systemd jede Run0-Shell als eigenständige Einheit behandelt, die unter dem Service Manager ausgeführt wird. Dies ermöglicht Ihnen, Ihren Root-Shell-Prozess anzupassen, im Gegensatz zu herkömmlichen Apps zur Rechteausweitung.

Um eine Bezeichnung für Ihre Root-Shell hinzuzufügen, verwenden Sie das --unitFlag gefolgt vom gewünschten Namen:

Sie können Ihrer Root-Shell auch eine benutzerdefinierte Beschreibung hinzufügen, indem Sie das --descriptionFlag hinzufügen:

Überprüfen Sie, ob Sie Ihre Angaben richtig angewendet haben, indem Sie den benutzerdefinierten Namen Ihrer Root-Shell mit folgendem Befehl auflisten systemctl:

Ein Terminal, das die Details der benutzerdefinierten Systemd-Einheit anzeigt.

Standardmäßig ändert Run0 die Farbe Ihres Root-Shell-Hintergrunds in Rot. Dies ist zwar ein hilfreicher visueller Indikator, kann jedoch störend sein, wenn Sie auf Ihrem System ein helles Design verwenden.

Um dies zu ändern, verwenden Sie die --backgroundFlagge gefolgt von einem Wert zwischen 40 und 49:

Ein Terminal, das die unterschiedliche Hintergrundfarbe in Run0 anzeigt.

Zuletzt können Sie auch den „Niceness-Level“ Ihrer Root-Shell anpassen. Dies ist ein Wert zwischen -20 und 19, der bestimmt, ob Ihr Kernel Ihrem Prozess gegenüber anderen Vorrang einräumt.

Um Ihrer Root-Shell die höchste Priorität zu geben, verwenden Sie das --niceFlag mit dem Wert „-20“:

Ein Terminal, das die Root-Shell mit einer geänderten Nice-Ebene hervorhebt.

So gruppieren Sie Run0-Sitzungen

Abgesehen davon, dass Sie jede Linux-Root-Shell anpassen können, können Sie Run0 auch verwenden, um sie in einem Systemd-Slice zusammenzufassen. Dies ist eine spezielle Konstruktion, mit der Ihr Computer den Ressourcenbedarf für Prozesse anpassen kann, ohne den Rest Ihres Systems zu beeinträchtigen.

Um eine Root-Shell auf einem anderen Slice zu erstellen, führen Sie das --sliceFlag gefolgt vom Namen des Slice aus, zu dem Sie wechseln möchten:

Bestätigen Sie, dass Ihre neue Sitzung unter Ihrem neuen Slice ausgeführt wird, indem Sie die darin enthaltenen Prozesse auflisten:

Ein Terminal, das die Details des benutzerdefinierten Systemd-Slices anzeigt.

Sie können das Flag auch verwenden, --slice-inheritum Ihren neuen Slice zusammen mit dem Slice zu gruppieren, aus dem Run0 stammt. Dies ist nützlich, wenn Sie Ihre Shells bereits in den entsprechenden Slices gruppiert haben und nur eine neue Shell hinzufügen möchten:

So führen Sie Befehle auf Systemd-Containern mit Run0 aus

Systemd-nspawn ist ein spezielles Programm, das leichtgewichtige Linux-Container ähnlich wie Docker erstellen und verwalten kann. Da es Teil der Systemd-Suite ist, können Sie Run0 auch verwenden, um Befehle in Ihren nspawn-Containern von Ihrem Hostcomputer aus auszuführen.

Beginnen Sie mit der Auflistung der verfügbaren Systemd-nspawn-Container in Ihrem System:

Ein Terminal, das eine Liste der verfügbaren Systemd-nspawn-Container anzeigt.

Führen Sie den folgenden Befehl aus, um einen Ordner im Stammverzeichnis Ihres Containers zu erstellen:

Es ist auch möglich, mit Run0 zur Root-Shell Ihres Containers zu wechseln:

Ein Terminal, das den Befehl zum Wechseln der Shell-Eingabeaufforderung des Containers anzeigt.

Bestätigen Sie, dass Sie jetzt in Ihrem Container arbeiten, indem Sie den Hostnamen Ihrer Terminalsitzung ausdrucken:

Ein Terminal, das den Vorgang des Wechsels vom lokalen System zum Systemd-nspawn-Container zeigt.

Zu lernen, wie man Run0 zum Ausführen und Verwalten von Root-Befehlen in Linux verwendet, ist nur die Spitze des Eisbergs, wenn es um Apps zur Rechteausweitung geht. Tauchen Sie tief in die komplexe Welt ein, indem Sie sich die Unterschiede zwischen su, sudo und sudo -s ansehen.

Bildnachweis: Xavier Cee via Unsplash . Alle Änderungen und Screenshots von Ramces Red.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert