Definition

sudo

Sudo ist ein Kommandozeilenprogramm für Unix und Unix-basierte Betriebssysteme wie Linux und macOS. Das Dienstprogramm bietet eine effiziente Möglichkeit, Benutzern oder Benutzergruppen vorübergehend privilegierten Zugriff auf Systemressourcen zu gewähren, damit sie Befehle ausführen können, die sie unter ihren normalen Konten nicht ausführen können. Benutzern kann sogar die Berechtigung erteilt werden, Befehle unter dem root-Konto auszuführen - dem mächtigsten Konto auf Unix-ähnlichen Systemen. Sudo protokolliert auch alle Befehle und Argumente, so dass Administratoren das Verhalten der sudo-Benutzer verfolgen können.

In vielen Quellen heißt es, dass sudo für Superuser do steht, was früher auch zutraf. Die Gruppe, die sudo entwickelt, hat jedoch vor mehr als zehn Jahren aufgehört, diese Bezeichnung zu verwenden. Laut der Website der Gruppe bedeutet sudo jetzt su "do", was auf ein Tool hinweist, das su-ähnliche Funktionen bietet.

Su ist ein Kommandozeilenprogramm und steht für switch user oder substitute user. Wie sudo ermöglicht das Dienstprogramm einem Benutzer, Befehle unter einem anderen Konto auszuführen. Allerdings hat sudo einige wichtige Vorteile gegenüber su.

Wie funktioniert der Befehl sudo?

Mit sudo wird ein Benutzer beim Ausführen eines Befehls nach dem Kennwort seines eigenen Kontos gefragt, nicht nach dem des privilegierten Kontos. Der Benutzer kann dann andere Befehle ausführen, ohne jedes Mal ein Kennwort eingeben zu müssen, aber die Dauer ist begrenzt.

Standardmäßig wird eine Sitzung nach fünf Minuten Inaktivität beendet, und der Benutzer muss erneut ein Passwort eingeben. Administratoren können jedoch bei der Konfiguration von sudo eine andere Zeit als fünf Minuten festlegen.

Mit su kann der Benutzer manuell zu root oder einem anderen privilegierten Konto wechseln, indem er den Namen und das Passwort für dieses Konto verwendet. Das Konto bleibt so lange aktiv, bis der Benutzer ausdrücklich wieder zum ursprünglichen Konto wechselt. Dieser Ansatz funktioniert gut, kann aber riskant sein.

Der Befehl sudo ermöglicht es einem Standardbenutzer, ein anderes Benutzerkonto zu erstellen.
Abbildung 1: Der Befehl sudo ermöglicht es einem Standardbenutzer, ein anderes Benutzerkonto zu erstellen.

Ein Administrator könnte beispielsweise mit su zum Root-Konto wechseln, ein paar Systembefehle ausführen und dann etwas anderes tun und dabei die privilegierte Verbindung vergessen. Wenn der Administrator dann zur Konsole zurückkehrt und versehentlich einen falschen Befehl ausführt, könnte dies zu einem enormen Schaden führen, ganz zu schweigen von dem erhöhten Sicherheitsrisiko.

Sudo hilft, solche Risiken zu minimieren, und gibt Systemadministratoren mehr Kontrolle. Ein Administrator kann Folgendes tun:

  • Die Datei sudoers konfigurieren, um bestimmten Benutzern oder Gruppen die Möglichkeit zu geben, einige oder alle Befehle unter dem Konto root oder einem anderen privilegierten Konto auszuführen.
  • Genaue Kontrolle darüber erhalten, welche Befehle ein Benutzer auf jedem Host ausführen kann, basierend auf Befehlsnamen und ihren Verzeichnissen.
  • Die protokollierten Aktivitäten anzeigen, aus denen hervorgeht, welche sudo-Benutzer welche Befehle zu welchem Zeitpunkt ausgeführt haben.
  • Kontrollieren, wie lange Benutzer Befehle auf einer privilegierten Ebene ausführen können, nachdem sie ihre Passwörter eingegeben haben.
  • Die Einstellungen in Bezug auf sudo-Plugins, Dateipfade, Debugging und die Frontend-Schnittstelle konfigurieren.
  • Eine einzige sudoers-Datei verwenden, die den Zugriff für mehrere Benutzer über mehrere Systeme hinweg steuert.

Wie man sudo auf der privilegierten Ebene ausführt

Um mit sudo einen Befehl auf einer privilegierten Ebene auszuführen, stellt der Benutzer dem Befehl einfach das Schlüsselwort sudo voran, vorausgesetzt, ein Administrator hat ihm in der Datei sudoers die erforderlichen Rechte erteilt. Ein Benutzer könnte zum Beispiel den folgenden Befehl ausführen, um die Host-Datei eines Systems zu bearbeiten.

sudo vi /etc/hosts

Wenn der Benutzer versucht, diesen Befehl ohne Einbindung von sudo auszuführen und nicht über die erforderlichen Berechtigungen verfügt, gibt das Hostsystem eine Meldung aus, dass der Zugriff verweigert wird. Durch die Einbindung von sudo kann der Benutzer nun den Inhalt der Datei auf privilegierter Ebene abrufen und bearbeiten.

Diese Definition wurde zuletzt im Mai 2023 aktualisiert

Erfahren Sie mehr über Anwendungs- und Plattformsicherheit

ComputerWeekly.de
Close