Runuser

Aus Foxwiki

runuser - Befehle mit ersetzter Benutzer- und Gruppenkennung ausführen

Beschreibung

Installation

runuser ist Teil des Pakets util-linux, das auf allen Linux-Systemen installiert sein sollte

Anwendung

Fehlerbehebung

Syntax

runuser [Optionen] -u ''Benutzer'' [[--] ''Befehl'' [''Argument''...]]
runuser [Optionen] [-] [''Benutzer'' [''Argument''...]]

Optionen

Parameter

Umgebungsvariablen

Exit-Status

Konfiguration

Dateien

Anhang

Siehe auch


Dokumentation

Man-Pages
Info-Pages

Links

Projekt
Weblinks
  1. https://manpages.debian.org/testing/util-linux-locales/runuser.1.de.html

TMP

OPTIONEN

-c, --command=Befehl übergibt den Befehl mit der Option -c an die Shell. -f, --fast übergibt -f an die Shell, was abhängig von der jeweiligen Shell nützlich sein kann oder nicht. -g, --group=Gruppe legt die primäre Gruppe fest. Diese Option ist dem Benutzer Root vorbehalten. -G, --supp-group=Gruppe gibt eine ergänzende Gruppe an. Diese Option ist nur für den Benutzer Root verfügbar. Die erste angegebene ergänzende Gruppe wir auch als primäre Gruppe verwendet, falls die Option --group nicht angegeben ist. -, -l, --login startet die Shell als Anmelde-Shell mit einer Umgebung ähnlich zu einer realen Anmeldung:

  • löscht alle Umgebungsvariablen außer TERM und jene, die durch --whitelist-environment angegeben wurden.
  • initialisiert die Umgebungsvariablen HOME, SHELL, USER, LOGNAME und PATH.
  • wechselt in das Home-Verzeichnis des Zielbenutzers.
  • setzt argv[0] der Shell auf »-«, um die Shell zur Anmelde-Shell zu machen.

-P, --pty erstellt ein Pseudo-Terminal für die Sitzung. Das unabhängige Terminal gewährleistet bessere Sicherheit, da der Benutzer das Terminal nicht mit der Originalsitzung teilt. Dadurch können Sie durch TIOCSTI vorgetäuschte Ioctl-Terminaleinschleusung und andere Sicherheitsangriffe gegen Terminal-Dateideskriptoren vermeiden. Die gesamte Sitzung kann auch in den Hintergrund verschoben werden (zum Beispiel mit runuser --pty -u Benutzername -- Befehl &). Falls das Pseudo-Terminal aktiviert ist, dann funktioniert der Befehl runuser als Proxy zwischen den Sitzungen (synchronisiert die Standardeingabe und -ausgabe). Diese Funktion ist vorwiegend für interaktive Sitzungen gedacht. Falls die Standardeingabe kein Terminal ist, sondern beispielsweise eine Pipe (zum Beispiel echo "date" | runuser --pty -u Benutzer), dann wird der ECHO-Schalter für das Pseudo-Terminal deaktiviert, um unordentliche Ausgaben zu vermeiden. -m, -p, --preserve-environment bewahrt die gesamte Umgebung, das bedeutet, es setzt die Umgebungsvariablen HOME, SHELL, USER oder LOGNAME nicht. Die Option wird ignoriert, wenn --login verwendet wird. -s, --shell=Shell führt die angegebene Shell anstelle der Vorgabe aus. Die auszuführende Shell wird nach den folgenden Regeln in dieser Reihenfolge ausgewählt:

  • die durch --shell angegebene Shell
  • die in der Umgebungsvariable SHELL angegebene Shell, wenn die Option --preserve-environment nicht verwendet wird
  • die im »passwd«-Eintrag des Zielbenutzers angegebene Shell
  • /bin/sh

Falls der Zielbenutzer eine eingeschränkte Shell hat (d.h. die nicht in /etc/shells aufgelistet ist), werden die Option --shell und die Umgebungsvariable SHELL ignoriert, außer wenn der aufrufende Benutzer Root ist. --session-command=Befehl ist gleichbedeutend mit -c, erzeugt aber keine neue Sitzung (davon wird abgeraten). -w, --whitelist-environment=Liste setzt die in der Kommata-getrennten Liste angegebenen Umgebungsvariablen nicht zurück, wenn die Umgebung für --login bereinigt wird. Die Positivliste wird für die Umgebungsvariablen HOME, SHELL, USER, LOGNAME und PATH ignoriert. -h, --help zeigt einen Hilfetext an und beendet das Programm. -V, --version zeigt Versionsinformationen an und beendet das Programm.

KONFIGURATIONSDATEIEN

runuser liest die Konfigurationsdateien /etc/default/runuser und /etc/login.defs. Die folgenden Konfigurationseinträge sind für runuser von Bedeutung: ENV_PATH (Zeichenkette) definiert die Umgebungsvariable PATH für einen normalen Benutzer. Der Vorgabewert ist /usr/local/bin:/bin:/usr/bin. ENV_ROOTPATH (Zeichenkette), ENV_SUPATH (Zeichenkette) definiert die Umgebungsvariable PATH für root. ENV_SUPATH hat Vorrang. Der Vorgabewert ist /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin. ALWAYS_SET_PATH (boolescher Wert) Falls dies auf yes gesetzt ist und --login sowie --preserve-environment nicht angegeben wurden, initialisiert *runuser die Umgebungsvariable PATH. Die Umgebungsvariable PATH kann auf Systemen, auf denen /bin und /sbin in /usr zusammengeführt sind, anders sein. Diese Variable wird auch von der Befehlszeilenoption --login und den PAM-Systemeinstellungen (z.B. pam_env(8)) beeinflusst.

EXIT-STATUS

runuser gibt normalerweise den Exit-Status des Befehls zurück, den es ausgeführt hat. Wenn der Befehl durch ein Signal abgewürgt wurde, gibt runuser die Nummer des Signals plus 128 zurück. Von runuser erzeugter Exit-Status: 1 Allgemeiner Fehler vor dem Ausführen des angeforderten Befehls 126 Der angeforderte Befehl konnte nicht ausgeführt werden 127 Der angeforderte Befehl wurde nicht gefunden

DATEIEN

/etc/pam.d/runuser Standard-PAM-Konfigurationsdatei /etc/pam.d/runuser-l PAM-Konfigurationsdatei, falls --login angegeben wurde /etc/default/runuser runuser-spezifische logindef-Konfigurationsdatei /etc/login.defs Globale Logindef-Konfigurationsdatei

GESCHICHTE

Dieser runuser-Befehl wurde von su aus den GNU Coreutils abgeleitet, welches auf einer Implementierung von David MacKenzie basiert, und dem Befehl runuser in Fedora von Dan Walsh.

Quelle

2023-07-24 util-linux 2.39.1
Source file: runuser.1.de.gz (from util-linux-locales 2.40.1-2)
Source last updated: 2024-05-26T13:52:22Z
Converted to HTML: 2024-05-30T03:43:06Z