Das Kommando su (substitute user identity) dient auf Unix-Derivaten (z. B. AIX, BSD, Linux und Solaris) dazu, den Benutzerkontext zu wechseln und damit Programme unter einer anderen Benutzer-ID auszuführen. Es gehört zu den essentiellen Systemverwaltungswerkzeugen von Unix.
Die Syntax ist su benutzername
. Ohne Benutzernamen aufgerufen wechselt su
nach einer Passwortabfrage zum Benutzer root. su -
oder su -l
simulieren einen kompletten Login-Vorgang, d. h. es wird das komplette Profil des neuen Benutzers eingelesen und die Umgebungsvariablen neu gesetzt.
Das Kommando taucht bereits in den ältesten Unix-Versionen von AT&T auf, in Version 7 allerdings noch völlig ohne dokumentierte Optionen. Heute wird jedes Unix mit su ausgeliefert.
Um Missbrauch zu verhindern, zeichnen die meisten Systeme alle geglückten und missglückten Login-Versuche mit su in den System-Logdateien auf.
Mit dem Befehl exit
gelangt man zu dem ursprünglichen Benutzer und seinen Rechten zurück.
Unter Mac OS X ist das root-Konto standardmäßig deaktiviert, statt su
wird das Kommando sudo
empfohlen, das keine eigene Subshell startet, sondern lediglich den mitangegebenen Befehl unter Administratorrechten ausführt.
Die meisten BSD-Varianten und Mac OS X beschränken den Gebrauch von su
auf Mitglieder der Gruppen wheel und admin.
Aufgrund einer Entscheidung von Richard Stallman wurde diese Eigenschaft nicht in die GNU-Version des Kommandos, die David MacKenzie programmierte, übernommen: Stallman argumentierte, dass eine derartige Beschränkung die Macht einiger weniger Sysadmins zementiere:
“Under the usual su mechanism, once someone learns the root password who sympathizes with the ordinary users, he or she can tell the rest. The ‘wheel group’ feature would make this impossible, and thus cement the power of the rulers.
I'm on the side of the masses, not that of the rulers. If you are used to supporting the bosses and sysadmins in whatever they do, you might find this idea strange at first.”
Weblinks
su(1)
– Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseite