Su (Unix)

Das Programm su (Abkürzung für englisch substitute user ‚wechsle Benutzer‘) dient auf Unix- und unixoiden Betriebssystemen dazu, den Benutzerkontext zu wechseln und damit Programme unter einer anderen Benutzer-ID auszuführen. Es gehört zu den essentiellen Systemverwaltungswerkzeugen von Unix-Systemen.

Die Syntax ist su benutzername. Ohne Angabe eines Benutzernamens wechselt su nach einer Passwortabfrage zum Benutzer root. Die Befehle su - oder su -l simulieren einen kompletten Login-Vorgang, d. h., es werden das komplette Profil des neuen Benutzers eingelesen und die Umgebungsvariablen neu gesetzt. 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 oder durch Senden des End of File-Signals/​-Zeichens (EOF) durch Drücken der Tastenkombination Strg+D gelangt man zum ursprünglichen Benutzer und seinen Rechten zurück.

Bei einigen Systemen ist das root-Konto standardmäßig deaktiviert; statt su wird sudo empfohlen, das keine eigene Subshell startet, sondern lediglich den mitangegebenen Befehl unter Administratorrechten ausführt.

Die meisten BSD-Varianten einschließlich macOS beschränken den Gebrauch von su auf Mitglieder der Gruppen wheel und admin. Aufgrund einer Entscheidung von GNU-Projekt-Gründer Richard Stallman wurde diese Eigenschaft nicht in die GNU-Implementierung des Programms, die David MacKenzie programmierte, übernommen. Stallman argumentierte, dass eine derartige Beschränkung die Macht einiger weniger Systemadministratoren zementiere.