Runuser
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
- setpriv(1)
- su(1)
- login.defs(5)
- shells(5)
- pam(8)
Dokumentation
Man-Pages
Info-Pages
Links
Projekt
Weblinks
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 |