4Aug

Was ist der Unterschied zwischen Sudo und Su in Linux?

click fraud protection

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

Sudo und su sind zwei verschiedene Möglichkeiten, Root-Rechte zu erhalten. Jede 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-Rechten auszuführen. Der root-Benutzer entspricht im Prinzip dem Administrator-Benutzer unter Windows - der root-Benutzer hat maximale Berechtigungen und kann alles für das System tun. Normale Benutzer unter Linux laufen mit eingeschränkten Berechtigungen - sie können beispielsweise keine Software installieren oder in Systemverzeichnisse schreiben.

Um etwas zu tun, das diese Berechtigungen erfordert, müssen Sie sie mit su oder sudo erwerben.

Su vs. Sudo

instagram viewer

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-Accounts eingeben. Dies ist jedoch nicht alles, was der su-Befehl tut - Sie können damit zu jedem Benutzerkonto wechseln. Wenn Sie den Befehl su bob ausführen, werden Sie aufgefordert, Bobs Kennwort einzugeben, und die Shell wechselt zu Bobs Benutzerkonto.

Sobald Sie mit der Ausführung von Befehlen in der Root-Shell fertig sind, sollten Sie exit eingeben, um die root-Shell zu verlassen und in den Modus mit eingeschränkten Rechten zurückzukehren.

Sudo führt einen einzelnen Befehl mit root-Rechten aus. Wenn Sie den -Sudo-Befehl ausführen, werden Sie vom System aufgefordert, das Kennwort Ihres aktuellen Benutzerkontos einzugeben, bevor Sie den -Befehl als Root-Benutzer ausführen. Standardmäßig speichert Ubuntu das Passwort fünfzehn Minuten lang und fragt erst nach Ablauf der Viertelstunde erneut nach einem Passwort.

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

Ubuntu vs. Andere Linux-Distributionen

Der Befehl su ist der traditionelle Weg, Root-Rechte unter Linux zu erwerben. Der Sudo-Befehl existiert schon lange, aber Ubuntu war die erste verbreitete Linux-Distribution, die standardmäßig sudo-only war. Wenn Sie Ubuntu installieren, wird das Standard-Root-Konto erstellt, aber ihm wird kein Passwort zugewiesen. Sie können sich nicht als root anmelden, bis Sie dem root-Konto ein Passwort zugewiesen haben.

Die Verwendung von sudo anstelle von su hat mehrere Vorteile. Ubuntu-Benutzer müssen nur ein einziges Passwort angeben und sich merken, während Fedora und andere Distributionen erfordern, dass Sie während der Installation ein separates Kennwort für das Stamm- und das Benutzerkonto erstellen.

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

-Distributionen, die auf Ubuntu basieren, einschließlich Linux Mint, verwenden standardmäßig auch sudo anstelle von su.

Ein paar Tricks

Linux ist flexibel, daher braucht es nicht viel Arbeit, um su ähnlich wie sudo zu arbeiten - oder umgekehrt.

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

su -c 'Befehl'

Dies ist vergleichbar mit dem Ausführen eines Befehls mit sudo, aber Sie benötigen das Kennwort des root-Kontos anstelle Ihres aktuellen BenutzersPasswort des Kontos.

Um eine vollständige, interaktive Root-Shell mit sudo zu erhalten, führen Sie sudo -i aus.

Sie müssen das Kennwort Ihres aktuellen Benutzerkontos anstelle des Kennworts des root-Kontos angeben.

Aktivieren des Root-Benutzers in Ubuntu

Um das Root-Benutzerkonto unter Ubuntu zu aktivieren, verwenden Sie den folgenden Befehl, um ein Kennwort für dieses Benutzerkonto festzulegen. Bedenken Sie, dass Ubuntu dagegen empfiehlt.

sudo passwd root

Sudo fragt Sie nach dem Kennwort Ihres aktuellen Benutzerkontos, bevor Sie ein neues Passwort festlegen können. Verwenden Sie Ihr neues Passwort, um sich als root an einer Terminal-Login-Eingabeaufforderung oder mit dem Befehl su anzumelden. Sie sollten nie eine vollständige grafische Umgebung als root-Benutzer ausführen - dies ist eine sehr schlechte Sicherheitsvorkehrung, und viele Programme werden nicht funktionieren.

Hinzufügen von Benutzern zur Sudoers-Datei

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

Ubuntu bezeichnet automatisch das Benutzerkonto, das während der Installation als Administratorkonto erstellt wurde.

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 zuerst su oder su -c aus).

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

user ALL =( ALL: ALL) ALLE

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. Beispielsweise können Sie den folgenden Befehl ausführen, um eine grafische Kennworteingabeaufforderung zu erhalten und den Nautilus-Dateibrowser mit Stammberechtigungen auszuführen. Drücken Sie Alt-F2 , um den Befehl aus einem grafischen Ausführungsdialog auszuführen, ohne ein Terminal zu starten.

gksu nautilus

Der Befehl gksu hat auch ein paar andere Tricks im Ärmel - er behält Ihre aktuellen Desktop-Einstellungen bei, so dass grafische Programme nicht fehl am Platz erscheinen, wenn Sie sie als ein anderer Benutzer starten. Programme wie gksu sind die bevorzugte Methode zum Starten von grafischen Anwendungen mit Root-Rechten.

Gksu verwendet je nach der von Ihnen verwendeten Linux-Distribution entweder ein su- oder ein sudo-basiertes Backend.

Du solltest jetzt darauf vorbereitet sein, sowohl su als auch sudo zu treffen! Sie werden beide finden, wenn Sie verschiedene Linux-Distributionen verwenden.