Ü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
sudoausgefü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
sudofü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 zursudo-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 Benutzerusername, den Befehlapt updateohne 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.