RUN0(1) run0 RUN0(1)

run0 - Privilegien erhöhen

ÜBERSICHT

run0 [OPTIONEN…] [BEFEHL…]

run0 kann dazu verwandt werden, temporär und interaktiv erhöhte oder andere Privilegien zu erhalten. Es dient einem ähnlichen Zweck wie sudo(8), arbeitet aber in einer Reihe von zentralen Bereichen anders:

•Es werden keine Ausführungs- oder Sicherheits-Zugangsberechtigungen von dem Aufrufenden in die aufgerufenen Befehle übernommen, da diese in frischen, isolierten Diensten aufgerufen werden, die vom Diensteverwalter abgetrennt werden.
•Die Authentifizierung findet mittels Polkit[1] statt, damit wird (falls möglich) die Authentifizierungs-Eingabeaufforderung vom Terminal getrennt.
•Es wird ein unabhängiges Pseudo-TTY für den aufgerufenen Befehl reserviert, dessen Lebenszyklus abgetrennt und das aus Sicherheitsgründen isoliert ist.
•Für die Implementierung wird keine SetUID/SetGID-Dateizugriffsfunktionalität verwandt.

Insgesamt sollte dies eine sichere und robustere Alternative zum Mechanismus sudo bereitstellen, insbesondere in Betriebssystemumgebungen, bei denen SetUID/SetGID-Unterstützung nicht verfügbar ist (beispielsweise durch Setzen der Variablen NoNewPrivileges= in systemd-system.conf(5)).

Jede mittels run0 aufgerufene Sitzung durchläuft den PAM-Stapel »systemd-run0«.

Beachten Sie, dass run0 als eine alternative Aufrufmöglichkeit von systemd-run(1) implementiert ist.

Die folgenden Optionen werden verstanden:

--no-ask-password

Befragt den Benutzer nicht für Authentifizierung für privilegierte Aktionen.

Hinzugefügt in Version 256.

--unit=

Verwendet diesen Unit-Namen statt eines automatisch erstellten.

Hinzugefügt in Version 256.

--property=

Setzt eine Eigenschaft der erstellten Dienste-Unit. Diese Option akzeptiert eine Zuweisung im gleichen Format wie der Befehl set-property von systemctl(1).

Hinzugefügt in Version 256.

--description=

Stellt eine Beschreibung für die aufgrufene Dienste-Unit bereit. Falls nicht angegeben, wird der Befehl selbst als Beschreibung verwandt. Siehe Description= in systemd.unit(5).

Hinzugefügt in Version 256.

--slice=

Fügt die neue Unit .service zu der angegebenen Scheibe hinzu, anstatt user.slice zu verwenden.

Hinzugefügt in Version 256.

--slice-inherit

Fügt die neue Unit .service zu der Scheibe hinzu, in der auch run0 selbst aufgerufen wurde. Diese Option kann mit --slice= kombiniert werden, dann wird die mittels --slice= angegebene Scheibe innerhalb der Scheibe abgelegt, in der der Befehl run0 aufgerufen wird.

Beispiel: Wenn run0 in der Scheibe foo.slice aufgerufen wird und das Argument --slice= bar lautet, dann wird die Unit unter foo-bar.slice platziert.

Hinzugefügt in Version 256.

--user=, -u, --group=, -g

Schaltet zu dem angegebenen Benutzer/der angegebenen Gruppe (anstelle von root) um.

Hinzugefügt in Version 256.

--nice=

Führt die aufgerufene Sitzung mit der angegebenen Nice-Stufe aus.

Hinzugefügt in Version 256.

--chdir=, -D

Führt die aufgerufene Sitzung mit dem angegebenen Arbeitsverzeichnis aus. Falls nicht angegeben ist die Vorgabe das aktuelle Arbeitsverzeichnis beim Wechsel zum Benutzer root, oder andernfalls das Home-Verzeichnis des Zielbenutzers.

Hinzugefügt in Version 256.

--setenv=NAME[=WERT]

Führt die aufgerufene Sitzung mit der angegebenen Umgebungsvariablen gesetzt aus. Dieser Parameter kann mehrfach verwandt werden, um mehrere Variablen zu setzen. Fehlen »=« und Wert, dann wird der Wert der Variablen mit dem gleichen Namen in der aufrufenden Umgebung verwandt.

Hinzugefügt in Version 256.

--background=FARBE

Ändert die Terminal-Hintergrundfarbe zu der angegebenen ANSI-Farbe solange die Sitzung läuft. Falls nicht angegeben, wird der Hintergrund in einem rötlichen Ton gefärbt, wenn als root gearbeitet wird, und in einem gelblichen Ton, wenn unter einer anderen UID gearbeitet wird, um an geänderte Privilegien zu erinnern. Die angegebene Farbe sollte eine ANSI-X3.64-SGR-Hintergrundfarbe sein, d.h. Zeichenketten wie »40«, »41«, …, »47«, »48;2;…«, »48;5;…«. Siehe ANSI-Maskier-Code (Wikipedia)[2] zu Details. Setzen Sie dies auf eine leere Zeichenkette, um es zu deaktivieren.

Beispiel: »--background=44« für einen blauen Hintergrund.

Hinzugefügt in Version 256.

--machine=

Führt die Aktion in einem lokalen Container aus. Geben Sie einen Containernamen an, zu dem verbunden werden soll.

Hinzugefügt in Version 256.

-h, --help

Zeigt einen kurzen Hilfetext an und beendet das Programm.

--version

Zeigt eine kurze Versionszeichenkette an und beendet das Programm.

Alle Befehlszeilenargumente nach dem ersten nicht optionalen Argument werden Teil der Befehlszeile des gestarteten Prozesses. Falls keine Befehlszeile angegeben wurde, wird eine interaktive Shell aufgerufen. Die aufzurufende Shell kann mittels --setenv=SHELL=… gesteuert werden und die Vorgabe ist derzeit die ursprüngliche Shell des Benutzers (d.h. nicht die des Zielbenutzers), falls lokal gearbeitet wird, oder /bin/sh bei der Verwendung mit --machine=.

Im Erfolgsfall wird 0 zurückgeliefert. Falls run0 die Sitzung nicht starten konnte oder der angegebene Befehl fehlschlägt, wird ein von Null verschiedener Wert zurückgeliefert.

Wie bei systemd-run(1) wird die Sitzung die Systemumgebung aus dem Diensteverwalter erben. Zusätzlich werden die folgenden Variablen gesetzt:

$TERM

Vom $TERM des Aufrufenden kopiert. Kann mit --setenv= außer Kraft gesetzt werden.

Hinzugefügt in Version 256.

$SUDO_USER

Auf den Benutzernamen des ursprünglichen Benutzers gesetzt.

Hinzugefügt in Version 256.

$SUDO_UID

Auf die numerische UNIX-Benutzerkennung des ursprünglichen Benutzers gesetzt.

Hinzugefügt in Version 256.

$SUDO_GID

Auf die primäre numerische UNIX-Gruppenkennung der ursprünglichen Sitzung gesetzt.

Hinzugefügt in Version 256.

systemd(1), systemd-run(1), sudo(8), machinectl(1)

1.
Polkit
2.
ANSI-Maskier-Code (Wikipedia)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

systemd 256.5