Su (Unix)
Das Kommando su (substitute user identity) dient auf Unix-Betriebssystemen wie AIX, BSD, Linux und Solaris dazu, den Benutzer zu wechseln und Programme unter einer anderen Benutzer-ID auszuführen. Es gehört zu den essentiellen Systemverwaltungswerkzeugen.
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 und Linux mit su ausgeliefert.
Um Missbrauch zu verhindern, zeichnen die meisten Systeme alle geglückten und missglückten Login-Versuche mit su in den System-Logfiles auf.
Mit dem Befehl exit
gelangt man zu dem ursprünglichen Benutzer und seinen Rechten zurück.
Unter Mac OS X und Ubuntu ist der root-Account 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.