su - einen Befehl unter anderer Benutzer- und Gruppenkennung
ausführen
ÜBERSICHT
su [Optionen] [-] [Benutzer
[Argument…]]
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.
- -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 Funktionalität ist momentan EXPERIMENTELL und
könnte in zukünftigen Veröffentlichungen nicht mehr
zur Verfügung stehen.
- -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 diese Hilfe an und beendet das Programm.
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.
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. 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.
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
- /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
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
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.
Der Befehl su ist Teil des Pakets util-linux, welches aus dem
Linux
Kernel-Archiv. 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>.