Auf Linux-Servern arbeiten Sie mit Benutzerrechten, die bestimmen, was Sie tun dürfen und was nicht. Root ist der allmächtige Superuser, während sudo Ihnen vorübergehend erhöhte Rechte gibt. Bei Theory7 empfehlen wir immer, sicher mit diesen Rechten umzugehen. In diesem Handbuch erklären wir alles über root, sudo und Best Practices.

Was ist root?

Root ist das Superuser-Konto auf Linux mit unbegrenzten Rechten. Das bedeutet, dass root Zugriff auf alle Dateien und Einstellungen im System hat. Root kann:

  • Alle Dateien lesen und ändern
  • Jede Software installieren oder entfernen
  • Systemkonfiguration anpassen
  • Alle Dienste starten und stoppen
  • Andere Benutzer verwalten

Das macht root zu einem mächtigen, aber auch gefährlichen Benutzer. Ein Fehler als root kann Ihr gesamtes System zerstören. Zum Beispiel kann das versehentliche Löschen wichtiger Systemdateien zu einem unbrauchbaren System führen. Daher empfehlen wir, niemals dauerhaft als root zu arbeiten. Stattdessen können Sie sudo verwenden, um vorübergehend erhöhte Rechte zu erhalten.

Einloggen als root

Direkte root-Anmeldung über SSH

ssh root@server-ip

Dies funktioniert nur, wenn die root-Anmeldung in sshd_config erlaubt ist. Es wird jedoch nicht empfohlen, diese Methode aufgrund von Sicherheitsrisiken zu verwenden. Es ist besser, sich als normaler Benutzer anzumelden und dann sudo zu verwenden.

Wechseln zu root von einem normalen Benutzer

su -

Geben Sie das root-Passwort ein. Das - sorgt für eine vollständige Login-Shell mit den richtigen Umgebungsvariablen. Dies ist nützlich, wenn Sie eine Sitzung mit der root-Umgebung starten möchten.

Root-Shell über sudo

sudo -i

Dies öffnet eine root-Shell, wenn Sie sudo-Rechte haben. Dies ist eine sichere Möglichkeit, als root zu arbeiten, ohne das root-Passwort eingeben zu müssen.

Was ist sudo?

Sudo (superuser do) ermöglicht autorisierten Benutzern, Befehle als root oder einen anderen Benutzer auszuführen. Die Vorteile von sudo gegenüber direktem Arbeiten als root sind zahlreich:

  • Protokollierung: Alle sudo-Befehle werden protokolliert, was hilft, die Systemaktivität nachzuvollziehen.
  • Vorübergehend: Rechte verfallen nach kurzer Zeit, was die Wahrscheinlichkeit von Missbrauch verringert.
  • Granulare Kontrolle: Spezifische Befehle erlauben, sodass Benutzer nur Zugriff auf das haben, was sie benötigen.
  • Kein root-Passwort: Benutzer müssen das root-Passwort nicht kennen, was die Sicherheit erhöht.

Sudo verwenden

Basis-Syntax

sudo befehl

Zum Beispiel:

sudo apt update

Sie werden aufgefordert, Ihr eigenes Passwort (nicht das root-Passwort) einzugeben. Dies erhöht die Sicherheit, da nur autorisierte Benutzer Zugriff auf erhöhte Rechte haben.

Befehl als anderer Benutzer

sudo -u www-data befehl

Dies ist nützlich, um die Berechtigungen des Webservers zu testen. Wenn Sie beispielsweise eine Webanwendung haben, die unter dem Benutzer www-data läuft, können Sie mit diesem Befehl überprüfen, ob die Anwendung mit den richtigen Rechten funktioniert.

Root-Shell öffnen

sudo -i

Oder für eine temporäre root-Shell:

sudo -s

Der Unterschied besteht darin, dass -i eine vollständige Login-Shell mit der root-Umgebung gibt, während -s Sie in der aktuellen Shell hält.

Sudo-Benutzer erstellen

Schritt 1: Benutzer erstellen

sudo adduser neuerbenutzer

Folgen Sie den Eingabeaufforderungen für Passwort und Daten. Es ist wichtig, ein starkes Passwort zu wählen, um die Sicherheit Ihres Systems zu gewährleisten.

Schritt 2: Zur sudo-Gruppe hinzufügen

Auf Ubuntu/Debian:

sudo usermod -aG sudo neuerbenutzer

Auf CentOS/RHEL:

sudo usermod -aG wheel neuerbenutzer

Schritt 3: Testen

Melden Sie sich als neuer Benutzer an und testen Sie:

su - neuerbenutzer
sudo whoami

Die Ausgabe sollte root sein, was bestätigt, dass der Benutzer erfolgreich zur sudo-Gruppe hinzugefügt wurde.

Sudoers-Konfiguration

Die sudoers-Datei bestimmt, wer was darf. Bearbeiten Sie sie niemals direkt, verwenden Sie visudo:

sudo visudo

Dies überprüft die Syntax, bevor die Datei gespeichert wird, was verhindert, dass Sie sich selbst durch einen Fehler aussperren.

Basis-sudoers-Regeln

# Benutzer darf alles
benutzer ALL=(ALL:ALL) ALL

# Gruppe darf alles
%sudo ALL=(ALL:ALL) ALL

# Benutzer darf alles ohne Passwort
benutzer ALL=(ALL) NOPASSWD: ALL

# Benutzer darf nur spezifische Befehle
benutzer ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl

Erklärung der Syntax

WER WO=(WIE) WAS
  • WER: Benutzer oder %Gruppe
  • WO: Auf welchen Hosts (ALL für alle)
  • WIE: Als welcher Benutzer ausführen
  • WAS: Welche Befehle erlaubt

Best Practices

Niemals dauerhaft als root arbeiten

Melden Sie sich als normaler Benutzer an und verwenden Sie sudo, wenn nötig. Dies minimiert das Risiko unbeabsichtigter Schäden an Ihrem System.

Verwenden Sie sudo anstelle von su

Sudo protokolliert alles und erfordert kein gemeinsames root-Passwort. Dies erhöht die Sicherheit und erleichtert das Nachverfolgen, wer was getan hat.

Begrenzen Sie sudo-Rechte

Geben Sie Benutzern nur die Rechte, die sie benötigen. Dies kann beispielsweise so eingestellt werden:

webmaster ALL=(www-data) /usr/bin/composer, /usr/bin/php

Damit kann der Benutzer webmaster nur die angegebenen Befehle als Benutzer www-data ausführen.

Stellen Sie eine sudo-Timeout ein

In sudoers:

Defaults timestamp_timeout=5

Nach 5 Minuten muss das Passwort erneut eingegeben werden. Dies verhindert, dass jemand unbefugt Zugriff auf erhöhte Rechte erhält, wenn Sie Ihren Computer kurz verlassen.

Überprüfen Sie, wer sudo-Rechte hat

getent group sudo
# oder auf CentOS
getent group wheel

Dies gibt Ihnen einen Überblick darüber, welche Benutzer sudo-Rechte haben, sodass Sie diese bei Bedarf verwalten können.

Fehlerbehebung

Benutzer ist nicht in der sudoers-Datei

Der Benutzer hat keine sudo-Rechte. Als root oder mit einem bestehenden sudo-Benutzer:

sudo usermod -aG sudo benutzername

Sudo-Passwort vergessen

Ihr sudo-Passwort ist Ihr eigenes Passwort, nicht root. Wenn Sie das vergessen haben, melden Sie sich als root an, um es zurückzusetzen:

passwd benutzername

Sudoers-Syntaxfehler

Wenn visudo meldet, dass ein Syntaxfehler vorliegt:

sudo visudo -c

Dies zeigt den Standort des Fehlers an, damit Sie ihn korrigieren können.

Verwandte Artikel

Brauchen Sie Hilfe?

Wir sind für Sie da! Haben Sie ein Problem oder Fragen? Unser Support-Team hilft Ihnen gerne persönlich weiter. Senden Sie uns eine Nachricht über das Ticketsystem - wir antworten normalerweise innerhalb weniger Stunden und helfen Ihnen gerne weiter.