SU(1)

NAME
su - ändert die Benutzer-ID oder wechselt zu Root

ÜBERSICHT

su [Optionen] [Benutzername]

BESCHREIBUNG

Der Befehl su dient dazu, während einer Sitzung ein anderer Benutzer zu werden. Wenn su ohne username aufgerufen wird, wechselt es standardmäßig zu Root. Zusätzlich kann das Argument - angegeben werden. Damit wird eine Umgebung zur Verfügung gestellt, die der entspricht, die der Benutzer nach einer direkten Anmeldung erwartet.

Zusätzliche Argumente können nach dem Benutzernamen angegeben werden. In diesem Fall werden sie an die Anmelde-Shell des Benutzers weitergereicht. Insbesondere führt das Argument -c dazu, dass das nächste Argument von den meisten Interpretatoren als Befehl behandelt wird. Dieser Befehl wird von der Shell ausgeführt, die in /etc/passwd für den Zielbenutzer angegeben ist.

Sie können das Argument -- verwenden, um Optionen für su von Argumenten für die Shell zu trennen.

Der Benutzer wird gegebenenfalls nach einem Passwort gefragt. Ungültige Passworteingaben werden eine Fehlermeldung erzeugen. Sowohl erfolgreiche als auch misslungene Versuche werden protokolliert, um Missbrauch des Systems zu entdecken.

Die aktuelle Umgebung wird an die neue Shell übergeben. Der Wert von $PATH wird für normale Benutzer auf /bin:/usr/bin gesetzt, für Root auf /sbin:/bin:/usr/sbin:/usr/bin. Dieses Verhalten kann durch die Definition von ENV_PATH und ENV_SUPATH in /etc/login.defs geändert werden.

Eine Subsystem-Anmeldung wird durch einen »*« als erstes Zeichen der Anmelde-Shell gekennzeichnet. Das angegebene Home-Verzeichnis wird als Wurzel für das Dateisystem verwendet, auf welchem der Benutzer tatsächlich angemeldet ist.

OPTIONEN

Die Optionen, die vom Befehl su unterstützt werden, sind:

-c, --command BEFEHL
    gibt einen Befehl an, der von der Shell mittels ihrer Option -c ausgeführt wird

    The executed command will have no controlling terminal. This option cannot be used to execute interactive programs which need a controlling TTY.

-, -l, --login
    Eine Umgebung wird zur Verfügung gestellt, die der entspricht, die der Benutzer nach einer direkten Anmeldung erwartet.

    When - is used, it must be specified before any username. For portability it is recommended to use it as last option, before any username. The other forms (-l and --login) do not have this restriction.

-s, --shell SHELL
    die Shell, die gestartet wird

    Die aufgerufene Shell wird bestimmt durch (höchste Priorität zuerst):

        die Shell, die mit --shell angegeben wurde

        Falls --preserve-environment verwendet wird, die Shell, die durch die Umgebungsvariable $SHELL festgelegt wird.

        die Shell, die in /etc/passwd für den Zielbenutzer angegeben ist

        /bin/sh, falls durch die obigen Methoden keine Shell gefunden werden kann

    Falls der Zielbenutzer eine beschränkte Shell hat (d.h. das Feld für die Shell im Eintrag des Benutzers in /etc/passwd ist nicht in /etc/shells) aufgeführt), werden die Option --shell und die Umgebungsvariable $SHELL nicht beachtet, sofern su nicht von Root aufgerufen wird.

-m, -p, --preserve-environment
    Erhält die aktuelle Umgebung mit Ausnahme von:

    $PATH
        auf den Ausgangswert entsprechend der Optionen ENV_PATH oder ENV_SUPATH in /etc/login.defs zurücksetzen (siehe unten);

    $IFS
        auf „<space><tab><newline>“ zurücksetzen, falls es verändert wurde

    Falls der Zielbenutzer eine beschränkte Shell besitzt, hat diese Option keinen Effekt (sofern su nicht von Root aufgerufen wird).

    Beachten Sie, dass Folgendes das Standardverhalten für die Umgebung ist:

        Die Umgebungsvariablen $HOME, $SHELL, $USER, $LOGNAME, $PATH und $IFS werden zurückgesetzt.

        Falls nicht --login verwendet wurde, wird die Umgebung mit der Ausnahme der genannten Variablen kopiert.

        Falls --login verwendet wurde, werden die Variablen $TERM, $COLORTERM, $DISPLAY und $XAUTHORITY übernommen, wenn ihnen ein Wert zugewiesen wurde.

        Falls --login verwendet wurde, werden die Umgebungsvariablen $TZ, $HZ und $MAIL auf die in /etc/login.defs definierten Optionen ENV_TZ, ENV_HZ, MAIL_DIR und MAIL_FILE (siehe unten) gesetzt.

        Wenn --login verwendet wird, können andere Umgebungsvariablen mit der Datei ENVIRON_FILE vergeben werden (siehe unten).

WARNUNGEN

Diese Version von su hat viele Kompilierungsoptionen. Deren Nützlichkeit hängt von den Anforderungen der jeweiligen Umgebung ab.

KONFIGURATION

Die folgenden Konfigurationsvariablen in /etc/login.defs beeinflussen das Verhalten dieses Werkzeugs:

CONSOLE (Zeichenkette)
    Die Konfiguration erfolgt entweder über die Angabe des vollen Pfadnamens einer Datei, welche die Namen der Geräte enthält (eines pro Zeile), oder mit einer Liste der Gerätenamen, die mit »:« getrennt sind. Root kann sich nur auf diesen Geräten anmelden.

    Wenn es unkonfiguriert gelassen wird, kann sich Root auf jedem Gerät anmelden.

    Das Gerät soll ohne vorangestelltes /dev/ angegeben werden.

CONSOLE_GROUPS (Zeichenkette)
    Liste von Gruppen, deren Mitglied der Benutzer wird, wenn der sich auf der Konsole anmeldet, die mit dem Parameter CONSOLE festgelegt wird. Standardmäßig ist die Liste leer. Seien Sie vorsichtig. Benutzer können dauerhaft Zugang zu den Gruppen erlangen, auch wenn sie nicht auf der Konsole angemeldet sind.

DEFAULT_HOME (boolesch)
    Legt fest, ob ein Login erlaubt wird, wenn mit cd nicht in das Home-Verzeichnis gewechselt werden kann. Standardmäßig wird dies nicht zugelassen.

    Falls auf yes gesetzt, wird der Benutzer mit dem Wurzelverzeichnis (/) angemeldet, wenn mit cd nicht in sein Home-Verzeichnis gewechselt werden kann.

ENV_HZ (Zeichenkette)
    Wenn vergeben, wird damit die Umgebungsvariable HZ definiert, wenn sich ein Benutzer anmeldet. Dem Wert muss ein HZ= vorangestellt werden. Ein üblicher Wert bei Linux ist HZ=100.

ENVIRON_FILE (Zeichenkette)
    Wenn diese Datei vorhanden ist, wird die Anmeldeumgebung aus ihr gelesen. Jede Zeile sollte die Form Name=Wert haben.

    Zeilen, die mit einem # beginnen, werden als Kommentare behandelt und daher ignoriert.

ENV_PATH (Zeichenkette)
    Wenn gesetzt, wird damit die Umgebungsvariable PATH definiert, wenn sich ein normaler Benutzer anmeldet. Der Wert ist eine Liste, deren Einträge durch Doppelpunkte getrennt sind (zum Beispiel /bin:/usr/bin). Ihr kann ein PATH= vorangestellt werden. Der Standardwert ist PATH=/bin:/usr/bin.

ENV_SUPATH (Zeichenkette)
    Wenn gesetzt, wird damit die Umgebungsvariable PATH definiert, wenn sich der Superuser anmeldet. Der Wert ist eine Liste, deren Einträge durch Doppelpunkte getrennt sind (zum Beispiel /sbin:/bin:/usr/sbin:/usr/bin). Ihr kann ein PATH= vorangestellt werden. Der Standardwert ist PATH=/sbin:/bin:/usr/sbin:/usr/bin.

ENV_TZ (Zeichenkette)
    Wenn gesetzt, wird damit die Umgebungsvariable TZ definiert, wenn sich ein Benutzer anmeldet. Der Wert kann der Name der Zeitzone sein, dem TZ= vorausgeht (zum Beispiel TZ=CST6CDT), oder der vollständige Pfad der Datei, welche die Konfiguration der Zeitzone enthält (zum Beispiel /etc/tzname).

    Wenn ein vollständiger Pfadname angegeben wird, die Datei aber nicht existiert oder nicht lesbar ist, wird TZ=CST6CDT verwendet.

LOGIN_STRING (Zeichenkette)
    Diese Zeichenkette wird bei der Eingabeaufforderung des Passworts (Prompt) verwendet. Standardmäßig wird »Password: « oder eine Übersetzung davon benutzt. Wenn Sie diese Variable definieren, wird die Eingabeaufforderung nicht übersetzt.

    Wenn die Zeichenkette ein %s enthält, wird dies durch den Benutzernamen ersetzt.

MAIL_CHECK_ENAB (boolesch)
    aktiviert die Prüfung und Anzeige des Status der Mailbox bei der Anmeldung

    Sie sollten dies abschalten, wenn schon die Startdateien der Shell die Mails prüfen (»mailx -e« oder ähnliches).

MAIL_DIR (Zeichenkette)
    Das Verzeichnis des Mail-Spools. Diese Angabe wird benötigt, um die Mailbox zu bearbeiten, nachdem das entsprechende Benutzerkonto verändert oder gelöscht wurde. Falls nicht angegeben, wird ein Standard verwendet, der beim Kompilieren festgelegt wurde.

MAIL_FILE (Zeichenkette)
    Legt den Ort der Mail-Spool-Dateien eines Benutzers relativ zu seinem Home-Verzeichnis fest.

Die Variablen MAIL_DIR und MAIL_FILE werden von useradd, usermod und userdel verwendet, um den Mail-Spool eines Benutzers zu erstellen, zu verschieben oder zu löschen.

Falls MAIL_CHECK_ENAB auf yes gesetzt ist, werden sie auch verwendet, um die Umgebungsvariable MAIL festzulegen.

QUOTAS_ENAB (boolesch)
    aktiviert das Setzen von Resourcenbeschränkungen aus /etc/limits und von ulimit, umask und niceness aus dem gecos-Feld des Benutzers von passwd

SULOG_FILE (Zeichenkette)
    Wenn angegeben, wird jeder Aufruf von su in dieser Datei protokolliert.

SU_NAME (Zeichenkette)
    Damit kann die Anzeige des Namens des Befehls festgelegt werden, wenn »su -« ausgeführt wird. Wenn beispielsweise dies auf »su« gesetzt wurde, zeigt »ps« den Befehl als »-su« an. Wenn es dagegen nicht vergeben wurde, wird »ps« den Namen der Shell anzeigen, die ausgeführt wird, also etwa »-sh«.

SU_WHEEL_ONLY (boolesch)
    Falls yes, muss der Benutzer Mitglied der ersten Gruppe mit der GID 0 in /etc/group sein (auf den meisten Linux-Systemen heißt die root), um mit su zu einem Konto mit der UID 0 wechseln zu können. Falls die Gruppe nicht existiert oder keine Mitglieder hat, kann niemand mittels su zur UID 0 wechseln.

SYSLOG_SU_ENAB (boolesch)
    aktiviert das Protokollieren der Aktivitäten von su in »syslog« neben der Protokollierung in der sulog-Datei

USERGROUPS_ENAB (boolesch)
    Erlaubt Benutzern, die nicht Root sind, die Umask-Gruppen-Bits auf ihre Umask-Bits zu setzen (Beispiel: 022 -> 002, 077 -> 007), falls die UID mit der GID identisch ist sowie der Benutzername mit dem Gruppennamen übereinstimmt.

    Wenn der Wert yes ist, wird userdel die Gruppe des Benutzers entfernen, falls sie keine Mitglieder mehr hat, und useradd wird standardmäßig eine Gruppe mit dem Namen des Benutzers erstellen.

DATEIEN

/etc/passwd
    Informationen zu den Benutzerkonten

/etc/shadow
    verschlüsselte Informationen zu den Benutzerkonten

/etc/login.defs
    Konfiguration der Shadow-Passwort-Werkzeugsammlung

RÜCKGABEWERTE

Wenn su erfolgreich ausgeführt wird, gibt es den Rückgabewert des mit ihm ausgeführten Befehls zurück.

Wenn dieser Befehl mit einem Signal beendet wurde, gibt su die Nummer des Signals plus 128 zurück.

Wenn su den Befehl mit kill beenden musste (weil er der Aufforderung, sich zu beenden, nicht rechtzeitig nachgekommen ist), gibt es 255 zurück.

Einige Rückgabewerte von su sind unabhängig von dem ausgeführten Befehl:

0
    Erfolg (nur bei --help)

1
    System- oder Anmeldefehler

126
    Der angegebene Befehl konnte nicht gefunden werden.

127
    Der angegebene Befehl konnte nicht ausgeführt werden.

SIEHE AUCH

login(1), login.defs(5), sg(1), sh(1).