So verwenden Sie Run0 unter Linux

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:

run0 mkdir /etc/maketecheasier

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

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

[enlazatom_show_links]
run0 --user=alice /home/alice/alice-program.sh

Geben Sie das Kennwort für den Benutzer ein, zu dem Sie wechseln, und drücken Sie dann die Eingabetaste.

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. Dadurch 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.

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

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“:

run0 --user=alice --group=www-data

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

run0 --user=alice --chdir=/home/alice/Dokumente

Gut zu wissen: Erfahren Sie mehr über Ihren Linux-Computer, indem Sie erkunden, wie Sie die Dateiberechtigungen in Ihrem Dateisystem rekursiv ändern.

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 Flag --unit, gefolgt vom gewünschten Namen:

run0 --unit=maketecheasier

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

run0 --unit=maketecheasier --description="Hallo Welt!"

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

systemctl list-units maketecheasier.service

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 das Flag --background, gefolgt von einem Wert zwischen 40 und 49:

run0 --unit=maketecheasier --background=42

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 Flag --nice mit dem Wert „-20“:

Notiz: Das Flag --nice funktioniert auch für einzelne Run0-Befehle. Sie können beispielsweise run0 --nice=-20 vim verwenden, um Vim mit einer höheren CPU-Priorität auszuführen.

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 Flag --slice gefolgt vom Namen des Slice aus, in das Sie wechseln möchten:

run0 --slice=maketecheasier

Notiz: Sie können dem Flag --slice einen neuen Namen zuweisen, um ein neues Systemd-Slice zu erstellen.

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

systemctl status maketecheasier.slice

Sie können auch das Flag --slice-inherit verwenden, um Ihr neues 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:

run0 --slice=mache einfacher --slice-inherit

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:

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

run0 run0 --machine=maketecheasier --user=root mkdir /hallo-welt

Notiz: Derzeit gibt es einen Fehler in Run0, bei dem die Rechteerhöhung fehlschlägt, wenn es mit dem Flag --machine ausgeführt wird. Sie können dies beheben, indem Sie einen zweiten Run0-Befehl hinzufügen, um eine Rechteerhöhung zu erzwingen.

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

run0 run0 --machine=maketecheasier --user=root

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

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.

Xavier Cee über Unsplash. Alle Änderungen und Screenshots von Ramces Red.

Index
  1. So führen Sie Programme als anderer Benutzer aus
  2. So wechseln Sie zur Shell eines anderen Benutzers
  3. So passen Sie die aktuelle Run0-Sitzung an
  4. So gruppieren Sie Run0-Sitzungen
  5. So führen Sie Befehle auf Systemd-Containern mit Run0 aus

Schreibe einen Kommentar

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

Go up