Das Dienstprogramm su
(kurz für Stellvertreter oder Benutzer wechseln) ermöglicht es Ihnen, Befehle mit den Rechten eines anderen Benutzers auszuführen, standardmäßig des Root-Benutzers.
Die Verwendung von su
ist die einfachste Möglichkeit, in der aktuellen Anmeldesitzung auf das administrative Konto zu wechseln. Dies ist besonders praktisch, wenn sich der Root-Benutzer nicht über sshor am System anmelden darf.
In diesem Tutorial erklären wir, wie Sie den Befehl su
verwenden.
Wie Sie den Befehl su verwenden
Die allgemeine Syntax für den Befehl su
lautet wie folgt:
su ]
Wenn er ohne Option aufgerufen wird, ist das Standardverhalten von su
, eine interaktive Shell als root auszuführen:
su
Sie werden aufgefordert, das Root-Passwort einzugeben, und wenn sie authentifiziert sind, wird der Benutzer, der den Befehl ausführt, vorübergehend zu root.
Die Umgebungsvariablen für die Sitzungs-Shell (SHELL
) und home (HOME
) werden vom stellvertretenden Benutzer /etc/passwd
gesetzt, und das aktuelle Verzeichnis wird nicht geändert.
Um zu bestätigen, dass der Benutzer gewechselt wird, verwenden Sie den whoami
-Befehl:
whoami
Der Befehl gibt den Namen des Benutzers aus, der die aktuelle Shell-Sitzung ausführt:
root
Die am häufigsten verwendete Option beim Aufruf von su
ist -
-l
--login
). Dies macht die Shell zu einer Login-Shell mit einer Umgebung, die einer echten Anmeldung sehr ähnlich ist, und ändert das aktuelle Verzeichnis:
su -
Wenn Sie statt der in der Datei passwd
definierten eine andere Shell ausführen wollen, verwenden Sie die Option -s
--shell
. Um zum Beispiel zu root zu wechseln und die zsh
-Shell auszuführen, würden Sie Folgendes eingeben:
su -s /usr/bin/zsh
Um die gesamte Umgebung zu erhalten (HOME
SHELL
USER
, und LOGNAME
) des aufrufenden Benutzers, rufen Sie den Befehl mit der Option -p
--preserve-environment
auf.
su -p
Wenn die Option -
verwendet wird, wird -p
ignoriert.
Wenn Sie einen Befehl als Ersatzbenutzer ausführen möchten, ohne eine interaktive Shell zu starten, verwenden Sie die Option -c
--command
. Um zum Beispiel den ps
Befehl als root aufzurufen, würden Sie Folgendes eingeben:
su -c ps
Um zu einem anderen Benutzerkonto zu wechseln, übergeben Sie den Benutzernamen als Argument an su
. Um zum Beispiel zum Benutzer tyrion
zu wechseln, würden Sie Folgendes eingeben:
su tyrion
Sudo vs. Su
Bei einigen Linux-Distributionen wie Ubuntu ist das root-Benutzerkonto aus Sicherheitsgründen standardmäßig deaktiviert. Das bedeutet, dass kein Passwort für root gesetzt ist und Sie nicht mit su
zu root wechseln können.
Eine Möglichkeit, zu root zu wechseln, wäre, dem Befehl su
ein sudo
voranzustellen und das Passwort des aktuell angemeldeten Benutzers einzugeben:
sudo su -
Mit dem sudo
-Befehl können Sie Programme als ein anderer Benutzer ausführen, standardmäßig als der Benutzer root.
Wenn der Benutzer mit sudo
bewertet wird, wird der su
-Befehl als root aufgerufen. Das Ausführen von sudo su -
und die anschließende Eingabe des Benutzerpassworts hat den gleichen Effekt wie das Ausführen von su -
und die Eingabe des Root-Passworts.
Wenn Sie die Option -i
verwenden, führt sudo
eine interaktive Login-Shell mit der Umgebung des Root-Benutzers aus:
sudo -i
sudo -i
ist im Grunde dasselbe wie die Ausführung von su -
.
Der Vorteil der Verwendung von sudo
gegenüber su
ist, dass das Root-Passwort nicht auf mehrere administrative Benutzerkonten aufgeteilt werden muss.
Mit sudo
können Sie Benutzern auch erlauben, nur bestimmte Programme mit Root-Rechten auszuführen.
Abschluss #
su
ist ein Kommandozeilenprogramm, mit dem Sie vorübergehend ein anderer Benutzer werden und Befehle mit dem Ersatzbenutzer ausführen können.