Was ist der Unterschied zwischen Sudo und Su unter Linux?

Wenn Sie ein Linux-Benutzer sind, haben Sie wahrscheinlich Verweise auf sudo und su gesehen. Artikel hier auf How-To Geek und anderswo weisen Ubuntu-Benutzer an, sudo und die Benutzer anderer Linux-Distributionen zu verwenden, um su zu verwenden, aber was ist der Unterschied?

Sudo und su sind zwei verschiedene Möglichkeiten, um Root-Rechte zu erlangen. Jede Funktion funktioniert anders, und verschiedene Linux-Distributionen verwenden standardmäßig unterschiedliche Konfigurationen.

Der Root-Benutzer

Sowohl su als auch sudo werden verwendet, um Befehle mit Root-Berechtigungen auszuführen. Der Root-Benutzer entspricht im Wesentlichen dem Administrator-Benutzer unter Windows. Der Root-Benutzer verfügt über maximale Berechtigungen und kann alles mit dem System tun. Normale Benutzer unter Linux werden mit reduzierten Berechtigungen ausgeführt. Sie können beispielsweise keine Software installieren oder in Systemverzeichnisse schreiben.

Um etwas zu tun, für das diese Berechtigungen erforderlich sind, müssen Sie sie mit su oder sudo erwerben.

Su gegen Sudo

Der Befehl su wechselt zum Superuser - oder Root-Benutzer -, wenn Sie ihn ohne zusätzliche Optionen ausführen. Sie müssen das Passwort des Root-Kontos eingeben. Dies ist jedoch nicht alles, was der Befehl su tut - Sie können damit zu einem beliebigen Benutzerkonto wechseln. Wenn Sie den Befehl su bob ausführen , werden Sie aufgefordert, das Kennwort von Bob einzugeben, und die Shell wechselt zu Bobs Benutzerkonto.

Sobald Sie die Befehle in der Root-Shell ausgeführt haben, sollten Sie exit eingeben, um die Root-Shell zu verlassen und zum Modus mit eingeschränkten Berechtigungen zurückzukehren.

Sudo führt einen einzelnen Befehl mit Root-Rechten aus. Wenn Sie den Befehl sudo ausführen , werden Sie vom System zur Eingabe des Kennworts Ihres aktuellen Benutzerkontos aufgefordert, bevor Sie den Befehl als Root-Benutzer ausführen . Standardmäßig merkt sich Ubuntu das Passwort fünfzehn Minuten lang und fragt erst nach Ablauf der fünfzehn Minuten erneut nach einem Passwort.

Dies ist ein wesentlicher Unterschied zwischen su und sudo. Su wechselt zum Root-Benutzerkonto und benötigt das Passwort des Root-Kontos. Sudo führt einen einzelnen Befehl mit Root-Rechten aus - es wechselt nicht zum Root-Benutzer oder erfordert ein separates Root-Benutzer-Passwort.

Ubuntu gegen andere Linux-Distributionen

Der Befehl su ist die traditionelle Methode zum Abrufen von Root-Berechtigungen unter Linux. Der Befehl sudo existiert schon seit langer Zeit, aber Ubuntu war die erste beliebte Linux-Distribution, die standardmäßig nur sudo verwendet. Wenn Sie Ubuntu installieren, wird das Standard-Root-Konto erstellt, ihm wird jedoch kein Kennwort zugewiesen. Sie können sich erst als Root anmelden, wenn Sie dem Root-Konto ein Kennwort zugewiesen haben.

Die Verwendung von sudo anstelle von su bietet standardmäßig mehrere Vorteile. Ubuntu-Benutzer müssen nur ein einziges Kennwort angeben und sich daran erinnern, während Fedora und andere Distributionen erfordern, dass Sie während der Installation separate Kennwörter für Root- und Benutzerkonten erstellen.

Ein weiterer Vorteil besteht darin, dass Benutzer davon abgehalten werden, sich als Root-Benutzer anzumelden - oder su verwenden, um eine Root-Shell zu erhalten - und die Root-Shell offen zu halten, um ihre normale Arbeit zu erledigen. Das Ausführen weniger Befehle als Root erhöht die Sicherheit und verhindert versehentliche systemweite Änderungen.

Auf Ubuntu basierende Distributionen, einschließlich Linux Mint, verwenden standardmäßig auch sudo anstelle von su.

Ein paar Tricks

Linux ist flexibel, daher ist nicht viel Arbeit erforderlich, damit su ähnlich wie sudo funktioniert - oder umgekehrt.

Führen Sie den folgenden Befehl aus, um einen einzelnen Befehl als Root-Benutzer mit su auszuführen:

su -c 'Befehl'

Dies ähnelt dem Ausführen eines Befehls mit sudo, Sie benötigen jedoch das Kennwort des Root-Kontos anstelle des Kennworts Ihres aktuellen Benutzerkontos.

Führen Sie sudo –i aus, um eine vollständige, interaktive Root-Shell mit sudo zu erhalten .

Sie müssen das Kennwort Ihres aktuellen Benutzerkontos anstelle des Kennworts des Stammkontos angeben.

Aktivieren des Root-Benutzers in Ubuntu

Verwenden Sie den folgenden Befehl, um ein Root-Benutzerkonto unter Ubuntu zu aktivieren und ein Kennwort dafür festzulegen. Denken Sie daran, dass Ubuntu davon abrät.

sudo passwd root

Sudo fordert Sie zur Eingabe des Kennworts Ihres aktuellen Benutzerkontos auf, bevor Sie ein neues Kennwort festlegen können. Verwenden Sie Ihr neues Kennwort, um sich an einer Terminal-Anmeldeaufforderung oder mit dem Befehl su als root anzumelden. Sie sollten als Root-Benutzer niemals eine vollständige grafische Umgebung ausführen - dies ist eine sehr schlechte Sicherheitspraxis, und viele Programme werden sich weigern, zu funktionieren.

Hinzufügen von Benutzern zur Sudoers-Datei

Nur Administratorkonten in Ubuntu können Befehle mit sudo ausführen. Sie können den Typ eines Benutzerkontos im Konfigurationsfenster Benutzerkonten ändern.

Ubuntu bezeichnet das während der Installation erstellte Benutzerkonto automatisch als Administratorkonto.

Wenn Sie eine andere Linux-Distribution verwenden, können Sie einem Benutzer die Berechtigung zur Verwendung von sudo erteilen, indem Sie den Befehl visudo mit Root-Rechten ausführen (führen Sie also zuerst su aus oder verwenden Sie su -c ).

Fügen Sie der Datei die folgende Zeile hinzu und ersetzen Sie den Benutzer durch den Namen des Benutzerkontos:

Benutzer ALL = (ALL: ALL) ALL

Drücken Sie Strg-X und dann Y , um die Datei zu speichern. Möglicherweise können Sie auch einen Benutzer zu einer in der Datei angegebenen Gruppe hinzufügen. Benutzer in den in der Datei angegebenen Gruppen haben automatisch Sudo-Berechtigungen.

Grafische Versionen von Su

Linux unterstützt auch grafische Versionen von su, die in einer grafischen Umgebung nach Ihrem Passwort fragen. Sie können beispielsweise den folgenden Befehl ausführen, um eine grafische Kennwortabfrage zu erhalten, und den Nautilus-Dateibrowser mit Root-Berechtigungen ausführen. Drücken Sie Alt-F2 , um den Befehl in einem grafischen Ausführungsdialog auszuführen, ohne ein Terminal zu starten.

gksu nautilus

Der Befehl gksu hat noch einige andere Tricks auf Lager - er behält Ihre aktuellen Desktop-Einstellungen bei, sodass grafische Programme nicht fehl am Platz aussehen, wenn Sie sie als anderer Benutzer starten. Programme wie gksu sind die bevorzugte Methode zum Starten von grafischen Anwendungen mit Root-Rechten.

Gksu verwendet je nach verwendeter Linux-Distribution entweder ein su- oder ein sudo-basiertes Backend.

Sie sollten jetzt bereit sein, sowohl su als auch sudo zu begegnen! Sie werden auf beides stoßen, wenn Sie unterschiedliche Linux-Distributionen verwenden.