RUNUSER(1)

BEZEICHNUNG
runuser - einen Befehl mit ersetzter Benutzer- und Gruppenkennung ausführen

ÜBERSICHT

runuser [options] -u user [[--] command [argument...]]

runuser [options] [-] [user [argument...]]

BESCHREIBUNG

runuser can be used to run commands with a substitute user and group ID. If the option -u is not given, runuser falls back to su-compatible semantics and a shell is executed. The difference between the commands runuser and su is that runuser does not ask for a password (because it may be executed by the root user only) and it uses a different PAM configuration. The command runuser does not have to be installed with set-user-ID permissions.

Falls die PAM-Sitzung nicht »required« ist, dann ist die empfohlene Lösung die Verwendung des Befehls setpriv(1).

Wenn es ohne Argumente aufgerufen wird, dann führt runuser in der Voreinstellung eine Shell als root aus.

Aus Gründen der Abwärtskompatibilität 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 für die Sitzungsverwaltung.

Beachten Sie, dass runuser in allen Fällen PAM (pam_getenvlist()) zum endgültigen Ändern der Umgebung verwendet. Die Befehlszeilenoptionen wie --login oder --preserve-environment wirken sich auf die Umgebung aus, bevor sie von PAM verändert wird.

Seit Version 2.38 setzt runuser die Ressourcenbegrenzungen RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS und RLIMIT_NOFILE des Prozesses zurück.

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.

-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 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.

-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).

-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 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 reads the /etc/default/runuser and /etc/login.defs configuration files. The following configuration items are relevant for runuser:

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 normally returns the exit status of the command it executed. If the command was killed by a signal, runuser returns the number of the signal plus 128.

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.

SIEHE AUCH

setpriv(1), su(1), login.defs(5), shells(5), pam(8)

FEHLER MELDEN

Nutzen Sie zum Melden von Fehlern das Fehlererfassungssystem auf

VERFÜGBARKEIT

Der Befehl runuser ist Teil des Pakets util-linux, welches aus dem heruntergeladen werden kann.