su(1) su(1)
NAME
su - Benutzerkennung vorübergehend wechseln (become superuser or anot-
her user)
SYNTAX
su [-] [benutzerkennung [arg ...]]
BESCHREIBUNG
Mit su können Sie vorübergehend unter einer anderen Benutzerkennung
arbeiten.
Alle Benutzer außer dem Systemverwalter müssen nach dem Aufruf von su
das Kennwort der Benutzerkennung angeben, unter der sie arbeiten wol-
len. Der Systemverwalter (Benutzername root) kann ohne Kennwort in
alle Benutzerkennungen wechseln. Durch den Aufruf von su wird eine
Sub-Shell gestartet, wenn für die angegebene Benutzerkennung in der
Datei /etc/passwd als Startprogramm eine Shell eingetragen ist. Ohne
einen solchen Eintrag wird standardmäßig /usr/bin/sh gestartet. Die
Benutzernummer der angegebenen Benutzerkennung wird zur effektiven und
realen Benutzernummer dieses neuen Shell-Prozesses. Die Variable PATH
[siehe sh(1)] behält den in der Arbeitsumgebung definierten Wert.
Wechselt man in die Benutzerkennung des Systemverwalters, so erhält
PATH den Wert der Variablen SUPATH aus /etc/default/su. Die übrige
Arbeitsumgebung des Benutzers, der su aufruft, z. B. $USER und $HOME,
bleibt erhalten. Möchten Sie auch die Arbeitsumgebung verändern, so
als würden Sie sich unter benutzerkennung mit login am System anmel-
den, verwenden Sie beim Aufruf von su die Option -.
Alle systemweit (auch über ferne Rechner) unternommenen Versuche, mit
su unter einer anderen Benutzerkennung zu arbeiten, werden in der
Datei /var/adm/sulog mitprotokolliert, wenn die Variable SULOG in
/etc/default/su definiert ist. Alle systemweit (auch über ferne Rech-
ner) unternommenen Versuche, mit su in die Benutzerkennung des System-
verwalters zu wechseln, auf der Konsole ausgegeben, wenn die Variable
CONSOLE in /etc/default/su definiert ist.
Mit <CTRL-D> beenden Sie die aufgerufene Subshell und arbeiten wieder
unter der vorher gültigen Benutzerkennung. Es gilt dann wieder voll-
ständig die vorherige Arbeitsumgebung.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
su(1) su(1)
Aktuelle Benutzerkennung abfragen
Wollen Sie überprüfen, unter welcher Benutzerkennung Sie gerade arbei-
ten, geben Sie das Kommando id(1) ein.
Login - Benutzerkennung abfragen
Wollen Sie überprüfen, unter welcher Benutzerkennung Sie sich mit dem
letzten login am System angemeldet haben, geben Sie das Kommando
logname(1) oder das Kommando who(1) ein.
OPTIONEN
- Wenn Sie - angeben und in der Datei /etc/passwd für benutzerken-
nung als Startprogramm sh eingetragen ist, dann wird die Arbeits-
umgebung so abgeändert, als würden Sie sich unter benutzerkennung
mit login am System anmelden. Es wird eine Login-Shell aufgerufen
[siehe login(1)] und zuerst /etc/profile und dann das benutzer-
spezifische $HOME/.profile ausgeführt. In .profile können Sie
arg0 abfragen, ob es den Wert -sh oder den Wert -su hat. Im
ersten Fall erfolgte der Aufruf vom Kommando login, im zweiten
Fall vom Kommando su aus.
Ist als Startprogramm nicht /usr/bin/sh sondern ein anderes pro-
gramm eingetragen, dann wird -programm als arg0 an .profile über-
geben. Dabei ist es egal, ob der Aufruf von login oder su aus
erfolgte.
benutzerkennung
Benutzerkennung, unter der Sie vorübergehend arbeiten möchten.
Sie benötigen hierfür das Kennwort von benutzerkennung, das Sie
nach der Eingabe von su benutzerkennung eingeben müssen.
Nur der Systemverwalter kann ohne Kennwort unter fremden Benut-
zerkennungen arbeiten.
benutzerkennung nicht angegeben:
Sie arbeiten als Systemverwalter unter der Benutzerkennung root
weiter, vorausgesetzt, Sie wissen das Kennwort.
arg Ein oder mehrere Argumente, die Sie an das in /etc/passwd einge-
tragene Startprogramm, standardmäßig /bin/sh, übergeben. Sie kön-
nen dieselben Argumente angeben wie beim direkten Aufruf dieses
Programms.
Ist das Startprogramm eine Shell, dann ist als einziges Argument
auch -c kommando oder -r möglich.
-c kommando
kommando wird in der Startshell mit der Arbeitsumgebung der
angegebenen Benutzerkennung ausgeführt.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
su(1) su(1)
-r Eine eingeschränkte Subshell (restricted shell) wird aufge-
rufen.
FEHLERMELDUNGEN
su: Sorry
Sie haben eine ungültige Benutzerkennung oder ein ungültiges
Kennwort eingegeben.
INTERNATIONALE UMGEBUNG
Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
LANG nicht oder als leere Zeichenkette definiert, verhält sich das
System so, als wäre es nicht internationalisiert.
Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
Bereich der Internationalisierung.
BEISPIELE
Die folgenden Beispiele zeigen den Unterschied zwischen den Kommandos
login und su.
Beispiel 1
Sie melden sich am System (login) unter der Benutzerkennung gast an
und fragen die aktuelle Benutzerkennung (id), die Login-Benutzer-
kennung (who am i) sowie die Umgebungsvariable LOGNAME (echo $LOGNAME)
ab.
$ login gast
Password: blinde Eingabe des Kennworts von gast
$ id
uid=100(gast) gid=10(other)
$ who am i
gast grtty MAR 17 15:13
$ echo $LOGNAME
gast
Beispiel 2
Sie wechseln mit su ohne die Option Bindestrich - in die Benutzerken-
nung fritz. In dieser Arbeitsumgebung ist die Variable PS1 (Bereitzei-
chen der Shell) auf den Wert FR gesetzt, wird aber nicht ausgewertet.
Sie fragen nach der aktuellen Benutzerkennung (id), der Login-Benut-
zerkennung (who am i) und der Umgebungsvariablen LOGNAME (echo
$LOGNAME) und kehren in die Benutzerkennung gast zurück (<CTRL-D>).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
su(1) su(1)
$ su fritz
Password: blinde Eingabe des Kennworts von fritz
$ id
uid=103(fritz) gid=10(other)
$ who am i
gast grtty MAR 17 15:13
$ echo $LOGNAME
gast
$ <CTRL-D>
$ id
uid=100(gast) gid=10(other)
Beispiel 3
Sie wechseln mit su - in die Benutzerkennung fritz, in deren Arbeits-
umgebung die Variable PS1 (Bereitzeichen der Shell) auf den Wert FR
gesetzt ist und jetzt wegen der Option - auch ausgewertet wird. Sie
fragen die aktuelle Benutzerkennung (id), die Login-Benutzerkennung
(who am i) sowie die Umgebungsvariable LOGNAME (echo $LOGNAME) ab und
rufen anschließend das Kommando logname auf. Dann kehren Sie in die
Benutzerkennung gast zurück (<CTRL-D>).
$ su - fritz
Password: blinde Eingabe des Kennworts von fritz
FR id
uid=103(fritz) gid=10(other)
FR who am i
gast grtty MAR 17 15:13
FR echo $LOGNAME
fritz
FR logname
gast
FR <CTRL-D>
$
Beispiel 4
Sie arbeiten mit su - -c unter der Benutzerkennung fritz in dessen
Arbeitsumgebung und mit dessen Erlaubnis. Sie fragen die aktuelle
Benutzerkennung (id) ab.
$ su - fritz -c "id"
Password: blinde Eingabe des Kennworts von fritz
uid=103(fritz) gid=10(other)
$
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
su(1) su(1)
UMGEBUNGSVARIABLEN
SULOG
Wenn dieser Variablen in /etc/default/su ein Dateiname dateiname
zugewiesen wird, werden alle Versuche, mit su eine andere Benut-
zerkennung zu erlangen, in der Datei dateiname mitprotokolliert.
Der Standardwert für SULOG ist /var/adm/sulog.
CONSOLE
Wenn dieser Variablen in /etc/default/su der Name eines Terminals
zugewiesen wird, werden alle unternommenen Versuche, mit su root
zu arbeiten, auf diesem Terminal mitprotokolliert. Der Standard-
wert für CONSOLE ist /dev/console.
PATH Der Wert dieser Variablen in /etc/default/su wird der Umgebungs-
variablen PATH zugewiesen, wenn Sie mit su - in eine andere
Benutzerkennung wechseln.
SUPATH
Wenn Sie in die Systemverwalterkennung wechseln, erhält die Umge-
bungsvariable PATH den Wert der SUPATH-Variablen aus
/etc/default/su.
DATEIEN
/etc/passwd
Systemweite Benutzer- und Kennwortdatei
/etc/profile
Systemweite Shell-Prozedur, die für jede Benutzerkennung von der
Login-Shell ausgeführt wird.
$HOME/.profile
Benutzerspezifische Shell-Prozedur, die jeder Benutzer in seinem
Home-Verzeichnis einrichten kann. Sie wird von der Login-Shell
nach /etc/profile ausgeführt.
/var/adm/sulog
Datei, in der systemweit alle Versuche, mit su unter einem ande-
ren Benutzernamen zu arbeiten, mitprotokolliert werden, wenn die
Variable SULOG auf /var/adm/sulog gesetzt ist.
/etc/default/su
Diese Datei enthält Werte für die Variablen SULOG, CONSOLE, PATH
und SUPATH.
Z. B. ist SULOG auf /var/adm/sulog gesetzt und CONSOLE auf
/dev/console
SIEHE AUCH
env(1), login(1), sh(1), passwd(4), profile(4), su(4), environ(5).
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98