SU(1)

BEZEICHNUNG
su - einen Befehl unter anderer Benutzer- und Gruppenkennung ausführen

ÜBERSICHT
su [Optionen] [-] [Benutzer [Argument…]]

BESCHREIBUNG
su ermöglicht es, Befehle unter anderer Benutzer- und Gruppenkennung auszuführen.

Wenn es ohne Argumente aufgerufen wird, öffnet su standardmäßig eine interaktive Shell für root.

Aus Gründen der Abwärtskompatibilität wechselt su standardmäßig nicht das aktuelle Verzeichnis und setzt lediglich die Umgebungsvariablen HOME und SHELL (plus USER und LOGNAME, falls der Ziel-Benutzer nicht Root ist). Es wird empfohlen, stets die Option --login (statt deren Kurzform -) zu verwenden, um durch Mischen der Umgebungen verursachte Nebenwirkungen zu vermeiden.

Diese Version von su verwendet PAM zur Authentifizierung sowie für die Benutzerkonten- und Sitzungsverwaltung. Einige der in anderen su-Implementationen verfügbaren Konfigurationsoptionen, wie die Unterstützung für eine Gruppe »wheel«, müssen über PAM konfiguriert werden.

su zielt vorrangig auf nicht privilegierte Benutzer ab. Die empfohlene Lösung für privilegierte Benutzer (zum Beispiel durch Root ausgeführte Skripte) ist der Befehl runuser(1), der keine Benutzerkennung setzt, keine Authentifizierung erfordert und eine separate PAM-Konfiguration bereitstellt. Falls keine PAM-Sitzung erforderlich ist, wird empfohlen, den Befehl setpriv(1) zu verwenden.

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 Shell sinnvoll sein kann oder auch nicht.

-g, --group=Gruppe
    gibt die primäre Gruppe an. Diese Option ist nur für den Benutzer Root verfügbar.

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

    o   löscht alle Umgebungsvariablen außer 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
    erhält die gesamte Umgebung, was bedeutet, dass weder HOME noch SHELL, USER oder LOGNAME gesetzt werden. Diese Option wird ignoriert, wenn die Option --login angegeben ist.

-P, --pty
    erzeugt ein Pseudo-Terminal für die Sitzung. Das unabhängige Terminal erhöht die Sicherheit, da der Benutzer sein Terminal nicht mit der ursprünglichen Sitzung gemeinsam nutzt. Dadurch wird es möglich, TIOCSTI-Terminalinjizierung via ioctl und weitere Sicherheitsangriffe gegen Terminal-Dateideskriptoren zu verhindern. Die gesamte Sitzung kann auch in den Hintergrund verschoben werden, (zum Beispiel »su --pty - Benutzername -c Anwendung &«). Wenn das Pseudo-Terminal aktiviert ist, dann fungiert der su-Befehl als Proxy zwischen den Sitzungen (Standardein- und -ausgabe werden kopiert).

    Diese Funktion ist vorwiegend für interaktive Sitzungen gedacht. Falls die Standardeingabe kein Terminal ist, sondern beispielsweise eine Pipe (zum Beispiel echo "date" | su --pty), 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:

    o   die durch --shell angegebene Shell

    o   die durch die Umgebungsvariable SHELL angegebene Shell, sofern die Option --preserve-environment verwendet wird.

    o   die im »passwd«-Eintrag des Zielbenutzers angegebene Shell

    o   /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 in der Kommata-getrennte Liste festgelegte 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.

-V, --version
    zeigt Versionsinformationen an und beendet das Programm.

-h, --help
    zeigt einen Hilfetext an und beendet das Programm.

SIGNALE
Nach dem Empfang von SIGINT, SIGQUIT oder SIGTERM beendet su seinen Kindprozess und anschließend sich selbst mit dem empfangenen Signal. Der Kindprozess wird durch SIGTERM beendet, nach einem fehlgeschlagenen Versuch und zwei Sekunden Verzögerung wird der Kindprozess mit SIGKILL getötet.

KONFIGURATIONSDATEIEN
su liest die Konfigurationsdateien /etc/default/su und /etc/login.defs. Die folgenden Konfigurationseinträge sind für su(1) relevant:

FAIL_DELAY (Zahl)
    gibt die Verzögerung in Sekunden im Falle eines Authentifizierungsfehlers an. Die Zahl muss eine nichtnegative Ganzzahl sein.

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)
    Wenn auf yes gesetzt und --login und --preserve-environment nicht angegeben wurden, initialisiert su die Umgebungsvariable PATH.

Die Umgebungsvariable PATH kann auf Systemen, auf denen /bin und /sbin in /usr zusammengeführt sind, anders sein.

EXIT-STATUS
su gibt normalerweise den Rückgabewert des Befehls aus, den es ausgeführt hat. Wenn der Befehl von einem Signal beendet wurde, gibt su die Signalnummer plus 128 zurück.

Von su selbst erzeugte Rückgabewerte:

    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/su
    Standard-PAM-Konfigurationsdatei
/etc/pam.d/su-l
    PAM-Konfigurationsdatei, falls --login angegeben wurde
/etc/default/su
    Befehlsspezifische Logindef-Konfigurationsdatei
/etc/login.defs
    Globale Logindef-Konfigurationsdatei

ANMERKUNGEN
Aus Sicherheitsgründen protokolliert su alle fehlgeschlagenen Anmeldeversuche in der »bmtp«-Datei, schreibt jedoch nichts in die »lastlog«-Datei. Diese Lösung erlaubt die Steuerung des Verhaltens von su durch die PAM-Konfiguration. Wenn Sie das Modul »pam_lastlog« zur Ausgabe von Warnmeldungen zu fehlgeschlagenen Anmeldeversuchen verwenden wollen, dann muss »pam_lastlog« so konfiguriert werden, dass es ebenfalls die »lastlog«-Datei aktualisiert. Zum Beispiel durch:
    session required pam_lastlog.so nowtmp

SIEHE AUCH
setpriv(1), login.defs(5), shells(5), pam(8), runuser(8)

GESCHICHTE
Der Befehl su wurde aus dem su der GNU Coreutils abgeleitet, das auf einer Implementation von David MacKenzie basiert. Die Version für Util-linux wurde von Karel Zak restrukturiert.

VERFÜGBARKEIT
Der Befehl su ist Teil des Pakets util-linux, welches aus dem Linux Kernel-Archiv (https://www.kernel.org/pub/linux/utils/util-linux/). heruntergeladen werden kann.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.