• Allgemein
  • Linux su-Befehl: Benutzer wechseln und Berechtigungen erhöhen

Linux su-Befehl: Benutzer wechseln und Berechtigungen erhöhen

Was ist der Linux su-Befehl?

Der Linux su-Befehl ist ein leistungsstarkes Tool, mit dem du deinen Benutzer ändern und erhöhte Berechtigungen erlangen kannst. Er ist ein unverzichtbares Kommandozeilen-Tool für Systemadministratoren und Benutzer, die erweiterte Aufgaben auf einem Linux-System ausführen müssen.

Wofür wird der su-Befehl verwendet?

Der su-Befehl hat zwei Hauptfunktionen:

Benutzer wechseln:

Der Befehl su ermöglicht es dir, von deinem aktuellen Benutzer zu einem anderen Benutzer zu wechseln. Dies ist nützlich, wenn du auf Dateien oder Verzeichnisse zugreifen musst, die einem anderen Benutzer gehören, oder wenn du Aufgaben als anderer Benutzer ausführen musst.

Erhöhen von Berechtigungen:

Mit su kannst du auch Berechtigungen erhöhen, indem du dich als der Superuser oder "root"-Benutzer anmeldest. Root verfügt über administrative Rechte und kann auf alle Dateien und Verzeichnisse auf dem System zugreifen und Änderungen vornehmen.

Der su-Befehl ist ein mächtiges Werkzeug, das mit Vorsicht verwendet werden sollte. Wenn du dich als root anmeldest, musst du besonders darauf achten, Änderungen vorzunehmen, die das System beschädigen oder gefährden könnten.

Wie verwende ich den su-Befehl?

Der Linux su-Befehl bietet dir eine komfortable Möglichkeit, unter einem anderen Benutzerkonto zu arbeiten oder Berechtigungen als Root zu erlangen. Befolge diese Schritte, um den su-Befehl effektiv zu nutzen:

Verwendung des su-Befehls

Um zu einem anderen Benutzer zu wechseln, gibst du Folgendes ein:

su - [Benutzername]

Wobei [Benutzername] der Name des Kontos ist, zu dem du wechseln möchtest.

Berechtigungen als Root erlangen

Zum Erlangen von Root-Berechtigungen kannst du einfach Folgendes eingeben:

su

Du wirst dann aufgefordert, das Root-Kennwort einzugeben.

Optionen des su-Befehls

Der su-Befehl bietet verschiedene Optionen, die du anpassen kannst:

  • -c, –command: Führe den angegebenen Befehl als anderer Benutzer aus.
  • -m, –preserve-environment: Erhalte die Umgebungsvariablen des aufrufenden Benutzers.
  • -s, –shell: Lege die zu verwendende Shell für den neuen Benutzer fest.
  • -l, –login: Melde dich als der angegebene Benutzer an.

Sicherheitsmaßnahmen

Denke daran, den su-Befehl mit Vorsicht zu verwenden, da er sensible Berechtigungen erteilen kann. Überprüfe immer den zu wechselnden Benutzer und gebe dein Passwort nicht an unbekannte Personen weiter.

Berechtigungen und Sicherheitsmaßnahmen

Der su-Befehl ist ein mächtiges Werkzeug, das mit Vorsicht verwendet werden sollte. Die unsachgemäße Verwendung von su kann zu schwerwiegenden Sicherheitsverletzungen führen.

Benutzerberechtigungen

Jeder Benutzer in einem Linux-System hat bestimmte Berechtigungen, die festlegen, auf welche Ressourcen er zugreifen und welche Aktionen er ausführen kann. Berechtigungen können in drei Kategorien unterteilt werden:

  • Leseberechtigung: Ermöglicht das Lesen von Dateien und Verzeichnissen.
  • Schreibberechtigung: Ermöglicht das Ändern von Dateien und Verzeichnissen.
  • Ausführungsberechtigung: Ermöglicht das Ausführen von Dateien und Programmen.

root-Konto

Das root-Konto ist ein spezielles Benutzerkonto mit uneingeschränkten Berechtigungen. Dies bedeutet, dass der root-Benutzer alle Aktionen ausführen kann, auch solche, die für andere Benutzer gefährlich oder schädlich sein könnten.

su und Sicherheit

Die Verwendung von su zum Wechseln zu einem anderen Benutzer kann ein Sicherheitsrisiko darstellen, wenn:

  • Du dich bei einem weniger privilegierten Konto anmeldest und dann zu einem Konto mit höheren Berechtigungen wechselst.
  • Du dich über SSH oder einen anderen Remote-Zugriff anmeldest und dann zu einem anderen Benutzer wechselst.
  • Du den su-Befehl mit der Option -s verwendest, die eine neue Shell ohne die Einschränkungen der vorherigen Shell öffnet.

Best Practices

Um die Sicherheit bei der Verwendung von su zu gewährleisten, solltest du die folgenden Best Practices befolgen:

  • Verwende su nur, wenn dies unbedingt erforderlich ist.
  • Wechsle nur zu einem Benutzer mit den geringsten erforderlichen Berechtigungen.
  • Verwende den Befehl sudo anstelle von su, wenn du nur vorübergehend erhöhte Berechtigungen benötigst.
  • Verwende den Befehl exit oder logout, um zu deinem vorherigen Benutzer zurückzukehren, wenn du mit der Verwendung von su fertig bist.

Wechsel von einem Benutzer zum anderen

Warum möchtest du den Benutzer wechseln?

Es gibt verschiedene Gründe, warum du von einem Benutzer zum anderen wechseln möchtest:

  • Problembehandlung: Du musst möglicherweise als anderer Benutzer anmelden, um ein Problem zu beheben.
  • Dateiberechtigungen: Du musst möglicherweise als anderer Benutzer Dateien oder Verzeichnisse bearbeiten, die anderen Benutzergruppen gehören.
  • Systemadministration: Du musst möglicherweise als root-Benutzer auf das System zugreifen, um administrative Aufgaben auszuführen.

So wechselst du den Benutzer

Du kannst den su-Befehl verwenden, um zu einem anderen Benutzer zu wechseln. Die Syntax lautet:

su [Benutzername]

Wenn du beispielsweise zum Benutzer alice wechseln möchtest, würdest du Folgendes eingeben:

su alice

Du wirst aufgefordert, das Passwort des Benutzers einzugeben. Gib das Passwort ein und drücke die Eingabetaste.

Benutzergruppen wechseln

Du kannst auch den su-Befehl verwenden, um Benutzergruppen zu wechseln. Die Syntax lautet:

su - [Gruppenname]

Wenn du beispielsweise zur Gruppe admins wechseln möchtest, würdest du Folgendes eingeben:

su - admins

Du wirst aufgefordert, das Passwort des Benutzers einzugeben, der Mitglied der Gruppe ist. Gib das Passwort ein und drücke die Eingabetaste.

Zurück zum vorherigen Benutzer wechseln

Um zum vorherigen Benutzer zurückzukehren, kannst du den Befehl exit eingeben.

Berechtigungen von root erlangen

Als normaler Benutzer verfügst du möglicherweise nicht über die erforderlichen Berechtigungen, um bestimmte Aufgaben durchzuführen oder auf bestimmte Dateien oder Verzeichnisse zuzugreifen. In solchen Fällen kannst du den su-Befehl verwenden, um Berechtigungen von root zu erlangen und als Superuser zu arbeiten.

Wie erlange ich Berechtigungen von root?

Um Berechtigungen von root zu erlangen, musst du den su-Befehl mit dem Benutzernamen "root" verwenden:

$ su - root

Nach der Eingabe deines Root-Passworts wirst du als root-Benutzer angemeldet. Beachte, dass du das Root-Passwort kennen musst, um dich als root anmelden zu können.

Vorsichtsmaßnahmen

Bei der Verwendung des su-Befehls zur Erhöhung der Berechtigungen sind einige Vorsichtsmaßnahmen zu treffen:

  • Verwende root-Berechtigungen nur, wenn nötig: Der root-Benutzer verfügt über unbegrenzte Berechtigungen, was bedeutet, dass jede Aktion, die du als root ausführst, potenziell schädlich sein kann. Verwende root-Berechtigungen daher nur, wenn sie unbedingt erforderlich sind.
  • Wechsle zurück zu deinem normalen Benutzer: Sobald du die Aufgabe abgeschlossen hast, für die du root-Berechtigungen benötigt hast, wechsle zurück zu deinem normalen Benutzerkonto, indem du den Befehl "exit" eingibst.
  • Anderen Benutzern keinen root-Zugriff gewähren: Gewähre anderen Benutzern keinen root-Zugriff auf dein System, da dies ein erhebliches Sicherheitsrisiko darstellt.
  • Verwende sichere Passwörter: Stelle sicher, dass dein Root-Passwort stark ist, um unbefugten Zugriff zu verhindern.

su vs. sudo: Unterschiede und Verwendung

Sowohl su als auch sudo sind Befehle unter Linux, mit denen du die Identität eines anderen Benutzers annehmen und dessen Berechtigungen erhalten kannst. Allerdings gibt es einige wichtige Unterschiede zwischen den beiden Befehlen:

Berechtigungen

  • su: Mit su kannst du die Identität eines beliebigen Benutzers annehmen, sofern du dessen Passwort kennst.
  • sudo: Mit sudo kannst du nur die Identität des root-Benutzers annehmen.

Syntax

  • su:
su [-l | -m | -s shell] [Benutzername]
  • sudo:
sudo [-u Benutzername | -g Gruppe] Befehl

Verwendung

  • su: su wird typischerweise verwendet, wenn du langfristig als anderer Benutzer arbeiten musst.
  • sudo: sudo wird typischerweise verwendet, um einzelne Befehle mit root-Berechtigungen auszuführen.

Sicherheit

  • su: Die Verwendung von su kann ein Sicherheitsrisiko darstellen, da sie es dir ermöglicht, die Identität eines beliebigen Benutzers anzunehmen.
  • sudo: sudo ist sicherer als su, da es nur die Annahme der Identität des root-Benutzers zulässt und die ausgeführten Befehle protokolliert.

Wann wird was verwendet?

Als Faustregel gilt:

  • Verwende su, wenn du als anderer Benutzer arbeiten musst und möglicherweise längere Zeit dessen Identität benötigst.
  • Verwende sudo, wenn du nur einzelne Befehle mit root-Berechtigungen ausführen musst.

Häufige Fehler bei der Verwendung von su

Bei der Verwendung des su-Befehls kannst du auf eine Reihe von Fallstricken stoßen. Hier sind einige der häufigsten Fehler und wie du sie vermeiden kannst:

Vergessen des Kennworts

Einer der häufigsten Fehler ist das Vergessen des Root-Kennworts. Dies kann zu einem ernsten Problem werden, wenn du nicht mehr auf dein System zugreifen kannst. Um dieses Problem zu vermeiden, notiere dir dein Root-Kennwort an einem sicheren Ort oder speichere es in einem Passwortmanager.

Verwendung von su ohne Argumente

Wenn du den Befehl su ohne Argumente aufrufst, wirst du aufgefordert, das Root-Kennwort einzugeben. Dies ist jedoch sehr unsicher, da jeder, der Zugriff auf dein Terminal hat, dein Root-Kennwort einsehen kann. Um dies zu vermeiden, gib immer den Benutzernamen des Benutzers an, zu dem du wechseln möchtest.

Nicht-root-Benutzer werden nicht gefunden

Wenn du versuchst, zu einem Nicht-root-Benutzer zu wechseln, aber der Benutzer nicht existiert, erhältst du eine Fehlermeldung. Dies kann daran liegen, dass der Benutzer nicht existiert oder dass du den falschen Benutzernamen eingegeben hast. Um dieses Problem zu vermeiden, überprüfe den Benutzernamen sorgfältig, bevor du den Befehl su aufrufst.

Laufende Skripte als Root

Wenn du Skripte als Root ausführst, können sie möglicherweise unbefugte Änderungen an deinem System vornehmen. Um dieses Problem zu vermeiden, führe Skripte nach Möglichkeit als regulärer Benutzer aus und wechsle nur dann zu Root, wenn dies unbedingt erforderlich ist.

Überschreiben bestehender Umgebungsvariablen

Wenn du den Befehl su aufrufst, wird eine neue Shell erstellt. Diese Shell erbt die Umgebungsvariablen der aktuellen Shell. Wenn du jedoch Umgebungsvariablen in der neuen Shell festlegst, werden die vorhandenen Umgebungsvariablen überschrieben. Dies kann zu unerwartetem Verhalten führen. Um dieses Problem zu vermeiden, exportiere Umgebungsvariablen nicht in der neuen Shell, es sei denn, du bist dir sicher, dass dies beabsichtigt ist.

Alternativen zum su-Befehl

Während der su-Befehl ein klassisches und weit verbreitetes Tool ist, gibt es auch andere Optionen, um Benutzer zu wechseln oder Berechtigungen zu erhöhen.

sudo

sudo (Superuser Do) ist ein mächtiges Kommandozeilen-Tool, das dir erlaubt, bestimmte Befehle mit root-Berechtigungen auszuführen, ohne dich tatsächlich als root einzuloggen. Dies ist besonders nützlich, wenn du nur für bestimmte Aufgaben erhöhte Berechtigungen benötigst.

gksu

gksu (GNOME Keyring Super User) ist ein ähnliches Tool wie sudo, das für den Einsatz mit grafischen Anwendungen von GNOME entwickelt wurde. Es verwendet den GNOME-Schlüsselbund, um dein Passwort sicher zu speichern und dich aufzufordern, es nur einzugeben, wenn du wirklich erhöhte Berechtigungen benötigst.

Alternatives Root-Konto

Manche Unternehmen oder Systeme bevorzugen es, ein alternatives Root-Konto mit eingeschränkten Berechtigungen zu erstellen. Dies kann dazu beitragen, das Risiko zu verringern, dass ein kompromittiertes Root-Konto zum Schaden des Systems missbraucht wird.

Grafische Tools

Einige Distributionen bieten grafische Tools, die dir den Wechsel von Benutzern oder die Erhöhung von Berechtigungen erleichtern. Diese Tools variieren je nach Distribution und Desktop-Umgebung, können aber eine bequemere Alternative zur Verwendung von Befehlszeilen-Tools sein.

Virtualisierung und Container

Virtualisierung und Containerisierungstechnologien können auch als Alternativen zum su-Befehl genutzt werden. Indem du Anwendungen in isolierten Umgebungen ausführst, kannst du Berechtigungen granular steuern und die Auswirkungen eines kompromittierten Kontos begrenzen.

Best Practices für die Verwendung von su

Beschränke die Verwendung von root-Berechtigungen

Verwende root-Berechtigungen nur dann, wenn es unbedingt notwendig ist. Je höher die Privilegienstufe, desto größer das Sicherheitsrisiko. Beschränke die Verwendung von su auf Aufgaben, die ohne root-Rechte nicht ausgeführt werden können.

Verwende alternative Befehle

In vielen Fällen stehen alternative Befehle zur Verfügung, die spezifische Aufgaben mit reduzierten Berechtigungen ausführen können. Beispielsweise verwendest du anstelle von su -c "command" den Befehl sudo command.

Nutze die -s-Option

Wenn du zu einem anderen Benutzer wechseln musst, verwende die -s-Option, um eine neue Shell mit den Berechtigungen des neuen Benutzers zu starten. Dies gibt dir eine umfassendere Umgebung für die Ausführung von Befehlen.

Beachte die Umgebungsvariablen

Denke daran, dass beim Wechsel zu einem anderen Benutzer die Umgebungsvariablen möglicherweise unterschiedlich sind. Das kann Auswirkungen auf die Ausführung von Skripten oder Programmen haben. Prüfe die Umgebungseinstellungen, um sicherzustellen, dass sie für deine Zwecke geeignet sind.

Dokumentiere die Verwendung

Dokumentiere jedes Mal, wenn du den su-Befehl verwendest, mit einem Zeitstempel, dem ursprünglichen und dem Zielbenutzer sowie dem Grund für den Wechsel. Dies kann bei der Fehlersuche oder beim Nachweis von Berechtigungsmissbrauch hilfreich sein.

Verwende PAM-Module

PAM (Pluggable Authentication Modules) ermöglicht die Anpassung des Authentifizierungsprozesses. Du kannst benutzerdefinierte PAM-Module verwenden, um zusätzliche Sicherheitsmaßnahmen zu implementieren, z. B. die Multi-Faktor-Authentifizierung oder die Begrenzung der root-Privilegien.

Erwäge die Verwendung von Ansible oder Puppet

Ansible und Puppet sind Konfigurationsmanagement-Tools, die die Automatisierung von Aufgaben wie Benutzerverwaltung und Berechtigungsvergabe ermöglichen. Sie können helfen, Best Practices für die Verwendung von su zu erzwingen und Sicherheitsrisiken zu minimieren.