Überblick über sudo
Auf Linux-Systemen hat der Root-Benutzer alle Berechtigungen. Das Ausführen aller Aufgaben als Root birgt jedoch das Risiko, das System durch Fehler schwer zu beschädigen. `sudo` ist ein wichtiges Sicherheitsmechanismus, das normalen Benutzern vorübergehend die benötigten Administratorrechte gewährt und somit die Systemverwaltung bei gleichzeitiger Minimierung von Sicherheitsrisiken ermöglicht.
Funktionsweise von sudo
`sudo` fordert den Benutzer auf, ein Passwort (sein eigenes Passwort, nicht das Root-Passwort) einzugeben, wenn der Befehl `sudo` ausgeführt wird. Wenn das Passwort korrekt ist, wird der Befehl gemäß den Regeln im `sudoers`-Datei mit den Rechten des Root- oder eines anderen Benutzers ausgeführt. Nach der Authentifizierung kann `sudo` für eine bestimmte Zeit (standardmäßig 5 Minuten) ohne erneute Eingabe des Passworts verwendet werden.
Hauptfunktionen von sudo
- **Erhöhung der Sicherheit**: Verhindert unnötige Anmeldungen mit dem Root-Konto und verringert Sicherheitsrisiken.
- **Verantwortlichkeit verfolgen**: Alle Befehle, die über `sudo` ausgeführt werden, werden protokolliert, sodass nachvollzogen werden kann, wer wann welchen Administratorbefehl ausgeführt hat.
- **Feingranulare Berechtigungssteuerung**: Über die `sudoers`-Datei können bestimmte Benutzer oder Gruppen für bestimmte Befehle präzise jene Berechtigungen gewährt werden, die sie mit Root-Rechten ausführen können.
- **Erleichterung der Passwortwiederholung**: Nach einer Authentifizierung kann `sudo` für eine bestimmte Zeit ohne Passwort verwendet werden, was praktisch ist.
🔑 sudoers-Datei
/etc/sudoers
`sudo`-Berechtigungen werden in der Datei `/etc/sudoers` festgelegt. Diese Datei ist sehr sensibel, daher **muss sie unbedingt mit dem Befehl `visudo` bearbeitet werden.** `visudo` überprüft automatisch auf Syntaxfehler, um zu verhindern, dass die Funktion von `sudo` aufgrund falscher Einstellungen beeinträchtigt wird.
Wichtige sudo-Befehloptionen
`sudo`-Befehl ermöglicht es Ihnen, die Ausführungsweise über verschiedene Optionen neben der Erhöhung der Berechtigungen zu steuern.
1. Grundlegende Verwendung
2. Benutzer- und Shell-bezogene Optionen
3. Authentifizierungs- und listenbezogene Optionen
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`sudo` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
sudoers-Dateikonfiguration (visudo verwenden)
`sudo`-Berechtigungen werden durch die Datei `/etc/sudoers` kontrolliert. Anstatt diese Datei direkt zu bearbeiten, sollte der Befehl `visudo` verwendet werden, um sicher zu bearbeiten. `visudo` überprüft auf Syntaxfehler, um zu verhindern, dass die Funktion von `sudo` beeinträchtigt wird.
Bearbeiten der sudoers-Datei
sudo visudo
Bearbeiten Sie die sudoers-Datei sicher mit Root-Rechten. Der Standard-Editor kann `vi` sein.
Allgemeines Format der sudoers-Datei
Einträge in der `sudoers`-Datei werden im Format `User Host=(RunAs) NOPASSWD: Command` definiert. Die häufigste Konfiguration ist die Gewährung von `sudo`-Rechten für alle Befehle an Benutzer, die zu einer bestimmten Gruppe gehören.
Beispielkonfiguration
Im Folgenden finden Sie Beispiele für häufige Einstellungen in der `sudoers`-Datei.
- `%sudo ALL=(ALL:ALL) ALL`: Erlaubt allen Benutzern, die zur `sudo`-Gruppe gehören, alle Befehle (ALL) mit den Rechten aller Benutzer (ALL) und Gruppen (ALL) auf jedem Host (ALL) auszuführen. (Passwort erforderlich)
- `username ALL=(ALL) NOPASSWD: /usr/bin/apt update`: Erlaubt dem Benutzer `username`, den Befehl `apt update` ohne Eingabe eines Passworts mit Root-Rechten auszuführen.
Verwendungsbeispiele
Lernen Sie, wie Sie Systemaufgaben mit Administratorrechten mithilfe verschiedener Anwendungsbeispiele des `sudo`-Befehls durchführen können.
Systempaketaktualisierung
sudo apt update
Der Befehl zum Aktualisieren der Paketliste des Systems erfordert Administratorrechte, sodass `sudo` verwendet wird.
Kopieren einer Datei in ein bestimmtes Verzeichnis
sudo cp my_config.conf /etc/
Kopiert die Datei `my_config.conf` in das Verzeichnis `/etc/`, in dem normalerweise keine Schreibberechtigungen vorhanden sind.
Befehl als ein anderer Benutzer ausführen
sudo -u www-data ls /var/www/html
Führt den Befehl `ls /var/www/html` mit den Rechten des Benutzers `www-data` (normalerweise der Webserverprozess) aus, um die Zugriffsrechte auf die Dateien dieses Benutzers zu testen.
Wechsel zu einer Root-Shell
sudo -i
Geben Sie das Passwort des aktuellen Benutzers ein, um eine vollständig wechselnde Shell zu erhalten, die in die Umgebung des Root-Benutzers wechselt. Nach Abschluss der Arbeiten können Sie mit `exit` zum ursprünglichen Benutzer zurückkehren.
Überprüfen der aktuellen Benutzer-sudo-Rechte
sudo -l
Überprüfen Sie, welche Befehle der aktuell angemeldete Benutzer über `sudo` ausführen kann und ob ein Passwort erforderlich ist.