RUNUSER(1) Dienstprogramme fur Benutzer RUNUSER(1) BEZEICHNUNG runuser - einen Befehl mit ersetzter Benutzer- und Gruppenkennung ausfuhren UBERSICHT runuser [Optionen] -u Benutzer [[--] Befehl [Argument...]] runuser [Optionen] [-] [Benutzer [Argument...]] BESCHREIBUNG runuser fuhrt Befehle aus, wobei die Benutzer- und Gruppenkennung ersetzt werden. Wenn die Option -u nicht verwendet wird, dann weicht runuser auf eine su-kompatible Semantik aus und fuhrt eine Shell aus. Der Unterschied zwischen den Befehlen runuser und su besteht darin, dass runuser nicht nach einem Passwort fragt (da es nur vom Benutzer Root ausgefuhrt werden darf) und eine andere PAM-Konfiguration verwendet. Der Befehl runuser muss nicht mit >>set-user-ID<<-Zugriffsrechten installiert werden. Falls die PAM-Sitzung nicht >>required<< ist, dann ist die empfohlene Losung die Verwendung des Befehls setpriv(1). Wenn es ohne Argumente aufgerufen wird, dann fuhrt runuser in der Voreinstellung eine Shell als root aus. Aus Grunden der Abwartskompatibilitat wechselt runuser das aktuelle Verzeichnis in der Voreinstellung nicht und setzt nur die Umgebungsvariablen HOME und SHELL (plus USER und LOGNAME, falls der Ziel-Benutzer nicht Root ist). Diese Version von runuser verwendet PAM fur die Sitzungsverwaltung. Beachten Sie, dass runuser in allen Fallen PAM (pam_getenvlist()) zum endgultigen Andern der Umgebung verwendet. Die Befehlszeilenoptionen wie --login oder --preserve-environment wirken sich auf die Umgebung aus, bevor sie von PAM verandert wird. Seit Version 2.38 setzt runuser die Ressourcenbegrenzungen RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS und RLIMIT_NOFILE des Prozesses zuruck. OPTIONEN -c, --command=Befehl ubergibt den Befehl mit der Option -c an die Shell. -f, --fast ubergibt -f an die Shell, was abhangig von der jeweiligen Shell nutzlich sein kann oder nicht. -g, --group=Gruppe legt die primare Gruppe fest. Diese Option ist dem Benutzer Root vorbehalten. -G, --supp-group=Gruppe gibt eine erganzende Gruppe an. Diese Option ist nur fur den Benutzer Root verfugbar. Die erste angegebene erganzende Gruppe wir auch als primare Gruppe verwendet, falls die Option --group nicht angegeben ist. -, -l, --login startet die Shell als Anmelde-Shell mit einer Umgebung ahnlich zu einer realen Anmeldung: o loscht alle Umgebungsvariablen ausser TERM und jene, die durch --whitelist-environment angegeben wurden. o initialisiert die Umgebungsvariablen HOME, SHELL, USER, LOGNAME und PATH. o wechselt in das Home-Verzeichnis des Zielbenutzers. o setzt argv[0] der Shell auf >>-<<, um die Shell zur Anmelde-Shell zu machen. -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. -P, --pty 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., runuser --pty -u user -- command &). If the pseudo-terminal is enabled, then runuser works as a proxy between the sessions (sync stdin and stdout). Diese Funktion ist vorwiegend fur 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 fur das Pseudo-Terminal deaktiviert, um unordentliche Ausgaben zu vermeiden. -s, --shell=Shell fuhrt die angegebene Shell anstelle der Vorgabe aus. Die auszufuhrende Shell wird nach den folgenden Regeln in dieser Reihenfolge ausgewahlt: o die durch --shell angegebene Shell o die in der Umgebungsvariable SHELL angegebene Shell, wenn die Option --preserve-environment nicht verwendet wird o die im >>passwd<<-Eintrag des Zielbenutzers angegebene Shell o /bin/sh Falls der Zielbenutzer eine eingeschrankte Shell hat (d.h. die nicht in /etc/shells aufgelistet ist), werden die Option --shell und die Umgebungsvariable SHELL ignoriert, ausser wenn der aufrufende Benutzer Root ist. --session-command=Befehl ist gleichbedeutend mit -c, erzeugt aber keine neue Sitzung (davon wird abgeraten). -T, --no-pty Do not create a pseudo-terminal, opposite of --pty and -P. Note that running without a pseudo-terminal opens the security risk of privilege escalation through TIOCSTI/TIOCLINUX ioctl command injection. -u, --user=user Run command with the effective user ID and group ID of the user name user. -w, --whitelist-environment=Liste setzt die in der Kommata-getrennten Liste angegebenen Umgebungsvariablen nicht zuruck, wenn die Umgebung fur --login bereinigt wird. Die Positivliste wird fur die Umgebungsvariablen HOME, SHELL, USER, LOGNAME und PATH ignoriert. -h, --help zeigt einen Hilfetext an und beendet das Programm. -V, --version Display version and exit. KONFIGURATIONSDATEIEN runuser liest die Konfigurationsdateien /etc/default/runuser und /etc/login.defs. Die folgenden Konfigurationseintrage sind fur runuser von Bedeutung: ENV_PATH (Zeichenkette) definiert die Umgebungsvariable PATH fur einen normalen Benutzer. Der Vorgabewert ist /usr/local/bin:/bin:/usr/bin. ENV_ROOTPATH (Zeichenkette), ENV_SUPATH (Zeichenkette) definiert die Umgebungsvariable PATH fur 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 zusammengefuhrt 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 zuruck, den es ausgefuhrt hat. Wenn der Befehl durch ein Signal abgewurgt wurde, gibt runuser die Nummer des Signals plus 128 zuruck. Von runuser erzeugter Exit-Status: 1 Allgemeiner Fehler vor dem Ausfuhren des angeforderten Befehls 126 Der angeforderte Befehl konnte nicht ausgefuhrt 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. SIEHE AUCH setpriv(1), su(1), login.defs(5), shells(5), pam(8) FEHLER MELDEN For bug reports, use the issue tracker . VERFUGBARKEIT Der Befehl runuser ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv heruntergeladen werden kann. util-linux 2.41 2025-03-29 RUNUSER(1)