Startseite » wie man » Was ist der Unterschied zwischen Sudo und Su in Linux?

    Was ist der Unterschied zwischen Sudo und Su in Linux?

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

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

    Der Root-Benutzer

    Sowohl su als auch sudo werden zum Ausführen von Befehlen mit Root-Berechtigungen verwendet. Der Root-Benutzer entspricht im Wesentlichen dem Administrator-Benutzer unter Windows. Der Root-Benutzer verfügt über maximale Berechtigungen und kann alles für das System tun. Normale Benutzer unter Linux werden mit eingeschränkten 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 vs. Sudo

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

    Nachdem Sie die Befehle in der Root-Shell ausgeführt haben, sollten Sie den Befehl eingeben Ausfahrt um die Root-Shell zu verlassen und in den Modus mit eingeschränkten Privilegien zurückzukehren.

    Sudo führt einen einzelnen Befehl mit Root-Berechtigungen aus. Wenn Sie ausführen Sudo-Befehl, Das System fordert Sie vor der Ausführung zur Eingabe des Kennworts Ihres aktuellen Benutzerkontos auf Befehl als Rootbenutzer. Standardmäßig speichert Ubuntu das Passwort fünfzehn Minuten lang und fragt nicht nach einem Passwort, bis die fünfzehn Minuten abgelaufen sind.

    Dies ist ein wesentlicher Unterschied zwischen su und sudo. Su wechselt zum Root-Benutzerkonto und erfordert das Kennwort des Root-Kontos. Sudo führt einen einzigen Befehl mit Root-Berechtigungen aus - er wechselt nicht zum Root-Benutzer und erfordert kein separates Root-Benutzerpasswort.

    Ubuntu vs. andere Linux-Distributionen

    Der Befehl su ist der traditionelle Weg, um Stammberechtigungen unter Linux zu erhalten. Der Sudo-Befehl existiert schon lange, aber Ubuntu war die erste beliebte Linux-Distribution, die standardmäßig nur Sudo nutzte. Bei der Installation von Ubuntu wird das Standard-Root-Konto erstellt, ihm jedoch kein Kennwort zugewiesen. Sie können sich nicht als root anmelden, bis Sie dem root-Konto ein Kennwort zugewiesen haben.

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

    Ein weiterer Vorteil ist, dass Benutzer davon abgehalten werden, sich als Root-Benutzer anzumelden - oder mit su eine Root-Shell zu erhalten - und die Root-Shell für ihre normale Arbeit offen zu halten. Die Ausführung von weniger Befehlen 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 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 ähnelt dem Ausführen eines Befehls mit sudo. Sie benötigen jedoch das Kennwort des Root-Kontos anstelle des Kennworts Ihres aktuellen Benutzerkontos.

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

    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, legen Sie mit dem folgenden Befehl ein Kennwort fest. Denken Sie daran, dass Ubuntu dies dagegen empfiehlt.

    sudo passwd root

    Sudo fragt Sie nach dem Kennwort Ihres aktuellen Benutzerkontos, bevor Sie ein neues Kennwort festlegen können. Verwenden Sie Ihr neues Kennwort, um sich als root an einer Terminalanmeldeaufforderung oder mit dem Befehl su anzumelden. Sie sollten niemals eine vollständige grafische Umgebung als Rootbenutzer ausführen. Dies ist eine sehr schlechte Sicherheitspraxis, und viele Programme werden nicht 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 bestimmt das bei der Installation erstellte Benutzerkonto automatisch als Administratorkonto.

    Wenn Sie eine andere Linux-Distribution verwenden, können Sie einem Benutzer die Berechtigung erteilen, sudo zu verwenden, indem Sie die Visudo Befehl mit root-Berechtigungen (so ausführen su zuerst oder verwenden su -c).

    Fügen Sie der Datei die folgende Zeile hinzu und ersetzen Sie sie Nutzer mit dem Namen des Benutzerkontos:

    user ALL = (ALL: ALL) ALL

    Drücken Sie Strg-X und dann Y um die Datei zu speichern. Sie können möglicherweise 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 Kennwort fragen. Sie können beispielsweise den folgenden Befehl ausführen, um eine grafische Kennwortaufforderung abzurufen und den Nautilus-Dateibrowser mit Stammberechtigungen auszuführen. Drücken Sie Alt-F2 um den Befehl über ein grafisches Dialogfeld 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, sodass grafische Programme beim Starten als anderer Benutzer nicht fehl am Platz erscheinen. Programme wie gksu sind die bevorzugte Art, grafische Anwendungen mit Root-Berechtigungen zu starten.

    Gksu verwendet je nach verwendeter Linux-Distribution entweder ein Su- oder Sudo-basiertes Backend.


    Sie sollten nun darauf vorbereitet sein, sowohl Su als auch Sudo zu treffen! Beides trifft zu, wenn Sie unterschiedliche Linux-Distributionen verwenden.