'\" t .\" Title: runuser .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.23 .\" Date: 2025-03-29 .\" Manual: Dienstprogramme für Benutzer .\" Source: util-linux 2.41 .\" Language: English .\" .TH "RUNUSER" "1" "2025-03-29" "util\-linux 2.41" "Dienstprogramme für Benutzer" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "BEZEICHNUNG" runuser \- einen Befehl mit ersetzter Benutzer\- und Gruppenkennung ausführen .SH "ÜBERSICHT" .sp \fBrunuser\fP [Optionen] \fB\-u\fP \fIBenutzer\fP [[\-\-] \fIBefehl\fP [\fIArgument\fP...]] .sp \fBrunuser\fP [Optionen] [\fB\-\fP] [\fIBenutzer\fP [\fIArgument\fP...]] .SH "BESCHREIBUNG" .sp \fBrunuser\fP führt Befehle aus, wobei die Benutzer\- und Gruppenkennung ersetzt werden. Wenn die Option \fB\-u\fP nicht verwendet wird, dann weicht \fBrunuser\fP auf eine \fBsu\fP\-kompatible Semantik aus und führt eine Shell aus. Der Unterschied zwischen den Befehlen \fBrunuser\fP und \fBsu\fP besteht darin, dass \fBrunuser\fP nicht nach einem Passwort fragt (da es nur vom Benutzer Root ausgeführt werden darf) und eine andere PAM\-Konfiguration verwendet. Der Befehl \fBrunuser\fP muss nicht mit »set\-user\-ID«\-Zugriffsrechten installiert werden. .sp Falls die PAM\-Sitzung nicht »required« ist, dann ist die empfohlene Lösung die Verwendung des Befehls \fBsetpriv\fP(1). .sp Wenn es ohne Argumente aufgerufen wird, dann führt \fBrunuser\fP in der Voreinstellung eine Shell als \fIroot\fP aus. .sp Aus Gründen der Abwärtskompatibilität wechselt \fBrunuser\fP das aktuelle Verzeichnis in der Voreinstellung nicht und setzt nur die Umgebungsvariablen \fBHOME\fP und \fBSHELL\fP (plus \fBUSER\fP und \fBLOGNAME\fP, falls der Ziel\-Benutzer nicht Root ist). Diese Version von \fBrunuser\fP verwendet PAM für die Sitzungsverwaltung. .sp Beachten Sie, dass \fBrunuser\fP in allen Fällen PAM (pam_getenvlist()) zum endgültigen Ändern der Umgebung verwendet. Die Befehlszeilenoptionen wie \fB\-\-login\fP oder \fB\-\-preserve\-environment\fP wirken sich auf die Umgebung aus, bevor sie von PAM verändert wird. .sp Seit Version 2.38 setzt \fBrunuser\fP die Ressourcenbegrenzungen RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS und RLIMIT_NOFILE des Prozesses zurück. .SH "OPTIONEN" .sp \fB\-c\fP, \fB\-\-command\fP=\fIBefehl\fP .RS 4 übergibt den \fIBefehl\fP mit der Option \fB\-c\fP an die Shell. .RE .sp \fB\-f\fP, \fB\-\-fast\fP .RS 4 übergibt \fB\-f\fP an die Shell, was abhängig von der jeweiligen Shell nützlich sein kann oder nicht. .RE .sp \fB\-g\fP, \fB\-\-group\fP=\fIGruppe\fP .RS 4 legt die primäre Gruppe fest. Diese Option ist dem Benutzer Root vorbehalten. .RE .sp \fB\-G\fP, \fB\-\-supp\-group\fP=\fIGruppe\fP .RS 4 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 \fB\-\-group\fP nicht angegeben ist. .RE .sp \fB\-\fP, \fB\-l\fP, \fB\-\-login\fP .RS 4 startet die Shell als Anmelde\-Shell mit einer Umgebung ähnlich zu einer realen Anmeldung: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} löscht alle Umgebungsvariablen außer \fBTERM\fP und jene, die durch \fB\-\-whitelist\-environment\fP angegeben wurden. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} initialisiert die Umgebungsvariablen \fBHOME\fP, \fBSHELL\fP, \fBUSER\fP, \fBLOGNAME\fP und \fBPATH\fP. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} wechselt in das Home\-Verzeichnis des Zielbenutzers. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} setzt argv[0] der Shell auf »\fB\-\fP«, um die Shell zur Anmelde\-Shell zu machen. .RE .RE .sp \fB\-m\fP, \fB\-p\fP, \fB\-\-preserve\-environment\fP .RS 4 bewahrt die gesamte Umgebung, das bedeutet, es setzt die Umgebungsvariablen \fBHOME\fP, \fBSHELL\fP, \fBUSER\fP oder \fBLOGNAME\fP nicht. Die Option wird ignoriert, wenn \fB\-\-login\fP verwendet wird. .RE .sp \fB\-P\fP, \fB\-\-pty\fP .RS 4 Create a pseudo\-terminal for the session. The independent terminal provides better security as the user does not share a terminal with the original session. This can be used to avoid TIOCSTI ioctl terminal injection and other security attacks against terminal file descriptors. The entire session can also be moved to the background (e.g., \fBrunuser \-\-pty\fP \fB\-u\fP \fIuser\fP \fB\-\-\fP \fIcommand\fP \fB&\fP). If the pseudo\-terminal is enabled, then \fBrunuser\fP works as a proxy between the sessions (sync stdin and stdout). .sp Diese Funktion ist vorwiegend für interaktive Sitzungen gedacht. Falls die Standardeingabe kein Terminal ist, sondern beispielsweise eine Pipe (zum Beispiel \fBecho "date" | runuser \-\-pty \-u\fP \fIBenutzer\fP), dann wird der \fBECHO\fP\-Schalter für das Pseudo\-Terminal deaktiviert, um unordentliche Ausgaben zu vermeiden. .RE .sp \fB\-s\fP, \fB\-\-shell\fP=\fIShell\fP .RS 4 führt die angegebene \fIShell\fP anstelle der Vorgabe aus. Die auszuführende Shell wird nach den folgenden Regeln in dieser Reihenfolge ausgewählt: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} die durch \fB\-\-shell\fP angegebene Shell .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} die in der Umgebungsvariable \fBSHELL\fP angegebene Shell, wenn die Option \fB\-\-preserve\-environment\fP nicht verwendet wird .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} die im »passwd«\-Eintrag des Zielbenutzers angegebene Shell .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} /bin/sh .sp Falls der Zielbenutzer eine eingeschränkte Shell hat (d.h. die nicht in \fI/etc/shells\fP aufgelistet ist), werden die Option \fB\-\-shell\fP und die Umgebungsvariable \fBSHELL\fP ignoriert, außer wenn der aufrufende Benutzer Root ist. .RE .RE .sp \fB\-\-session\-command=\fP\fIBefehl\fP .RS 4 ist gleichbedeutend mit \fB\-c\fP, erzeugt aber keine neue Sitzung (davon wird abgeraten). .RE .sp \fB\-T\fP, \fB\-\-no\-pty\fP .RS 4 Do not create a pseudo\-terminal, opposite of \fB\-\-pty\fP and \fB\-P\fP. Note that running without a pseudo\-terminal opens the security risk of privilege escalation through TIOCSTI/TIOCLINUX ioctl command injection. .RE .sp \fB\-u\fP, \fB\-\-user\fP=\fIuser\fP .RS 4 Run \fIcommand\fP with the effective user ID and group ID of the user name \fIuser\fP. .RE .sp \fB\-w\fP, \fB\-\-whitelist\-environment\fP=\fIListe\fP .RS 4 setzt die in der Kommata\-getrennten Liste angegebenen Umgebungsvariablen nicht zurück, wenn die Umgebung für \fB\-\-login\fP bereinigt wird. Die Positivliste wird für die Umgebungsvariablen \fBHOME\fP, \fBSHELL\fP, \fBUSER\fP, \fBLOGNAME\fP und \fBPATH\fP ignoriert. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 zeigt einen Hilfetext an und beendet das Programm. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 Display version and exit. .RE .SH "KONFIGURATIONSDATEIEN" .sp \fBrunuser\fP liest die Konfigurationsdateien \fI/etc/default/runuser\fP und \fI/etc/login.defs\fP. Die folgenden Konfigurationseinträge sind für \fBrunuser\fP von Bedeutung: .sp \fBENV_PATH\fP (Zeichenkette) .RS 4 definiert die Umgebungsvariable \fBPATH\fP für einen normalen Benutzer. Der Vorgabewert ist \fI/usr/local/bin:/bin:/usr/bin\fP. .RE .sp \fBENV_ROOTPATH\fP (Zeichenkette), \fBENV_SUPATH\fP (Zeichenkette) .RS 4 definiert die Umgebungsvariable \fBPATH\fP für root. \fBENV_SUPATH\fP hat Vorrang. Der Vorgabewert ist \fI/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\fP. .RE .sp \fBALWAYS_SET_PATH\fP (boolescher Wert) .RS 4 Falls dies auf \fIyes\fP gesetzt ist und \fB\-\-login\fP sowie \fB\-\-preserve\-environment\fP nicht angegeben wurden, \fBinitialisiert *runuser\fP die Umgebungsvariable \fBPATH\fP. .RE .sp Die Umgebungsvariable \fBPATH\fP kann auf Systemen, auf denen \fI/bin\fP und \fI/sbin\fP in \fI/usr\fP zusammengeführt sind, anders sein. Diese Variable wird auch von der Befehlszeilenoption \fB\-\-login\fP und den PAM\-Systemeinstellungen (z.B. \fBpam_env\fP(8)) beeinflusst. .SH "EXIT\-STATUS" .sp \fBrunuser\fP gibt normalerweise den Exit\-Status des Befehls zurück, den es ausgeführt hat. Wenn der Befehl durch ein Signal abgewürgt wurde, gibt \fBrunuser\fP die Nummer des Signals plus 128 zurück. .sp Von \fBrunuser\fP erzeugter Exit\-Status: .sp 1 .RS 4 Allgemeiner Fehler vor dem Ausführen des angeforderten Befehls .RE .sp 126 .RS 4 Der angeforderte Befehl konnte nicht ausgeführt werden .RE .sp 127 .RS 4 Der angeforderte Befehl wurde nicht gefunden .RE .SH "DATEIEN" .sp \fI/etc/pam.d/runuser\fP .RS 4 Standard\-PAM\-Konfigurationsdatei .RE .sp \fI/etc/pam.d/runuser\-l\fP .RS 4 PAM\-Konfigurationsdatei, falls \fB\-\-login\fP angegeben wurde .RE .sp \fI/etc/default/runuser\fP .RS 4 runuser\-spezifische logindef\-Konfigurationsdatei .RE .sp \fI/etc/login.defs\fP .RS 4 Globale Logindef\-Konfigurationsdatei .RE .SH "GESCHICHTE" .sp Dieser \fBrunuser\fP\-Befehl wurde von \fBsu\fP aus den GNU Coreutils abgeleitet, welches auf einer Implementierung von David MacKenzie basiert, und dem Befehl \fBrunuser\fP in Fedora von Dan Walsh. .SH "SIEHE AUCH" .sp \fBsetpriv\fP(1), \fBsu\fP(1), \fBlogin.defs\fP(5), \fBshells\fP(5), \fBpam\fP(8) .SH "FEHLER MELDEN" .sp For bug reports, use the \c .URL "https://github.com/util\-linux/util\-linux/issues" "issue tracker" "." .SH "VERFÜGBARKEIT" .sp Der Befehl \fBrunuser\fP ist Teil des Pakets util\-linux, welches aus dem \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Linux\-Kernel\-Archiv" "" heruntergeladen werden kann.