Linux-Berechtigungsgewährung

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In Linux-Systemen ist die Verwaltung von Benutzerrechten und Zugangskontrolle ein grundlegendes Aspekt der Systemadministration und Sicherheit. Der Befehl sudo, kurz für "superuser do", ermöglicht autorisierten Benutzern, Befehle mit erhöhten Rechten auszuführen, typischerweise denen des Superusers oder des Root-Kontos.

Dieses Lab führt Sie durch den Prozess der Gewährung und Beschränkung von Rechten für Benutzer in einer Linux-Umgebung. Sie werden lernen, wie Sie Benutzer der sudo-Gruppe hinzufügen, damit sie administrative Aufgaben ausführen können, und wie Sie ihre Rechte auf bestimmte Befehle beschränken. Diese Fähigkeiten sind unerlässlich für die Aufrechterhaltung sicherer Systeme, bei denen der Zugang zu sensiblen Operationen sorgfältig kontrolliert werden muss.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicFileOperationsGroup -.-> linux/cp("File Copying") linux/BasicFileOperationsGroup -.-> linux/mv("File Moving/Renaming") linux/BasicFileOperationsGroup -.-> linux/rm("File Removing") linux/UserandGroupManagementGroup -.-> linux/useradd("User Adding") linux/UserandGroupManagementGroup -.-> linux/usermod("User Modifying") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/UserandGroupManagementGroup -.-> linux/groups("Group Displaying") subgraph Lab Skills linux/cp -.-> lab-271393{{"Linux-Berechtigungsgewährung"}} linux/mv -.-> lab-271393{{"Linux-Berechtigungsgewährung"}} linux/rm -.-> lab-271393{{"Linux-Berechtigungsgewährung"}} linux/useradd -.-> lab-271393{{"Linux-Berechtigungsgewährung"}} linux/usermod -.-> lab-271393{{"Linux-Berechtigungsgewährung"}} linux/sudo -.-> lab-271393{{"Linux-Berechtigungsgewährung"}} linux/groups -.-> lab-271393{{"Linux-Berechtigungsgewährung"}} end

Grundlagen der Benutzerverwaltung und des sudo-Befehls verstehen

In diesem Schritt lernen Sie die Benutzerverwaltung in Linux und die Grundlagen des sudo-Befehls kennen. Sie werden einen neuen Benutzer erstellen und verstehen, wie Sie ihm administrative Rechte gewähren.

Was ist sudo?

Der sudo-Befehl ermöglicht autorisierten Benutzern, Befehle mit den Sicherheitsrechten eines anderen Benutzers auszuführen, typischerweise denen des Superusers (root). Dies bietet eine Möglichkeit, administrative Aufgaben auszuführen, ohne sich als Root-Benutzer anzumelden, was als bewährte Sicherheitsmethode gilt.

Erstellen eines neuen Benutzers

Beginnen wir mit der Erstellung eines neuen Benutzerkontos. Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:

sudo adduser trusted_advisor

Sie werden aufgefordert, ein Passwort und einige optionale Informationen für den neuen Benutzer einzugeben. Für dieses Lab können Sie ein einfaches Passwort wie password123 festlegen und die anderen Felder durch Drücken von Enter leer lassen.

Die Ausgabe sollte in etwa so aussehen:

Adding user `trusted_advisor' ...
Adding new group `trusted_advisor' (1001) ...
Adding new user `trusted_advisor' (1001) with group `trusted_advisor' ...
Creating home directory `/home/trusted_advisor' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for trusted_advisor
Enter the new value, or press ENTER for the default
	Full Name []:
	Room Number []:
	Work Phone []:
	Home Phone []:
	Other []:
Is the information correct? [Y/n] Y

Überprüfen der Benutzerinformationen

Um zu überprüfen, ob der Benutzer erfolgreich erstellt wurde, können Sie den Inhalt der /etc/passwd-Datei untersuchen:

grep trusted_advisor /etc/passwd

Dies sollte eine Zeile mit den Benutzerinformationen anzeigen.

Gewähren von sudo-Rechten

Um einem Benutzer sudo-Rechte zu gewähren, müssen Sie ihn der sudo-Gruppe hinzufügen. In Ubuntu dürfen Mitglieder der sudo-Gruppe den sudo-Befehl verwenden. Führen Sie den folgenden Befehl aus:

sudo usermod -aG sudo trusted_advisor

Dieser Befehl fügt (-a) den Benutzer trusted_advisor der sudo-Gruppe (-G sudo) hinzu. Der Benutzer kann nun Befehle mit administrativem Privileg ausführen.

Überprüfen des sudo-Zugangs

Um zu überprüfen, ob der neue Benutzer Zugang zu sudo hat, können Sie zu diesem Benutzerkonto wechseln und versuchen, den Inhalt des /root-Verzeichnisses aufzulisten, das normalerweise nur für den Root-Benutzer zugänglich ist:

su - trusted_advisor

Geben Sie bei entsprechender Aufforderung das Passwort ein, das Sie für diesen Benutzer festgelegt haben. Führen Sie dann aus:

sudo ls /root

Sie werden erneut nach dem Passwort gefragt (beim ersten Mal der sudo-Nutzung). Nach der Eingabe sollten Sie den Inhalt des /root-Verzeichnisses sehen, was bestätigt, dass der Benutzer sudo-Rechte hat.

Schließlich beenden Sie die Sitzung des trusted_advisor-Benutzers, um zu Ihrem ursprünglichen Benutzer zurückzukehren:

exit

Begrenzung des sudo-Zugangs mit der sudoers-Datei

In diesem Schritt lernen Sie, wie Sie die sudo-Rechte eines Benutzers auf bestimmte Befehle beschränken können, indem Sie die sudoers-Datei verwenden. Dies implementiert das Prinzip des geringsten Privilegs, das besagt, dass Benutzer nur die minimal erforderlichen Rechte haben sollten, um ihre Aufgaben auszuführen.

Die sudoers-Datei verstehen

Die /etc/sudoers-Datei kontrolliert, wer den sudo-Befehl verwenden kann und welche Befehle er ausführen darf. Diese Datei sollte niemals direkt mit einem normalen Texteditor bearbeitet werden, da Syntaxfehler Sie aus dem System sperren könnten. Verwenden Sie stattdessen immer den visudo-Befehl, der vor dem Speichern auf Syntaxfehler prüft.

Die sudoers-Datei bearbeiten

Um die sudoers-Datei sicher zu bearbeiten, verwenden Sie den visudo-Befehl:

sudo visudo

Dadurch wird die sudoers-Datei im Standardeditor (meist nano oder vi) geöffnet.

Die sudoers-Syntax verstehen

Die grundlegende Syntax für einen sudo-Eintrag in der sudoers-Datei lautet:

user_or_group    host=(run_as_user:run_as_group)    NOPASSWD: commands

Dabei bedeuten:

  • user_or_group: Der Benutzer oder die Gruppe, auf die diese Regel angewendet wird
  • host: Der Hostname, auf den diese Regel angewendet wird (meist ALL)
  • run_as_user: Der Benutzer, unter dem die Befehle ausgeführt werden (meist ALL, was root bedeutet)
  • run_as_group: Die Gruppe, unter der die Befehle ausgeführt werden (kann weggelassen werden)
  • NOPASSWD: Optionaler Tag, der es ermöglicht, Befehle ohne Passworteingabe auszuführen
  • commands: Die spezifischen Befehle, die mit sudo ausgeführt werden können

Eingeschränkten sudo-Zugang hinzufügen

Scrollen Sie ans Ende der Datei und fügen Sie die folgende Zeile hinzu, um trusted_advisor die Berechtigung zu erteilen, nur die Befehle cp und mv ohne Passwort auszuführen:

trusted_advisor ALL=(ALL) NOPASSWD: /bin/cp, /bin/mv

Um die Datei in nano zu speichern, drücken Sie Ctrl+O, dann Enter, und um zu beenden, drücken Sie Ctrl+X.

Den eingeschränkten sudo-Zugang testen

Jetzt testen wir, ob der eingeschränkte sudo-Zugang wie erwartet funktioniert. Zunächst erstellen wir eine Testdatei im aktuellen Verzeichnis:

echo "This is a test file" > important_file.txt

Wechseln Sie nun zum Benutzer trusted_advisor:

su - trusted_advisor

Geben Sie bei entsprechender Aufforderung das Passwort ein.

Versuchen Sie, die Datei in das Root-Verzeichnis zu kopieren, was erlaubt sein sollte:

sudo cp /home/labex/project/important_file.txt /root/

Dies sollte ohne Passworteingabe erfolgreich sein.

Versuchen Sie nun, einen Befehl auszuführen, der nicht in der erlaubten Liste steht, wie z.B. cat:

sudo cat /root/important_file.txt

Sie sollten eine Fehlermeldung über verweigerten Zugang erhalten, da cat nicht in der Liste der erlaubten Befehle steht.

Vergewissern Sie sich schließlich, dass die Datei in das Root-Verzeichnis kopiert wurde:

sudo ls /root/

Sie sollten important_file.txt in der Ausgabe sehen.

Beenden Sie die Sitzung des Benutzers trusted_advisor:

exit

Die Testdatei entfernen

Um aufzuräumen, entfernen Sie die Testdatei:

sudo rm important_file.txt

Verständnis von sudo-Protokollen und Sicherheitsüberlegungen

In diesem Schritt lernen Sie über die Protokollierung von sudo-Befehlen und bewährte Sicherheitsverfahren kennen. Die Überwachung der sudo-Nutzung ist wichtig für Sicherheits- und Audit-Zwecke.

sudo-Protokollierung

Wenn Benutzer Befehle mit sudo ausführen, werden diese Aktionen protokolliert. Dies bietet einen Audit-Trail, der für die Sicherheitsüberwachung und die Fehlerbehebung nützlich sein kann.

Auf Ubuntu werden sudo-Protokolle normalerweise im Authentifizierungsprotokoll des Systems unter /var/log/auth.log gespeichert. Untersuchen wir die jüngsten sudo-Aktivitäten:

sudo grep sudo /var/log/auth.log | tail -n 10

Dieser Befehl zeigt die letzten 10 sudo-bezogenen Protokolleinträge an. Die Ausgabe sollte Zeitstempel, Benutzernamen und die mit sudo ausgeführten Befehle enthalten.

Bewährte Sicherheitsverfahren für sudo

Hier sind einige bewährte Verfahren für die Verwaltung von sudo-Rechten:

  1. Prinzip des geringsten Privilegs: Benutzer sollten nur die minimal erforderlichen Rechte haben, um ihre Aufgaben auszuführen.

  2. Verwendung spezifischer Befehle: Anstatt vollen sudo-Zugang zu gewähren, geben Sie genau an, welche Befehle ein Benutzer ausführen darf.

  3. Festlegung von Passwortanforderungen: Für sensible Vorgänge stellen Sie sicher, dass Benutzer bei der Verwendung von sudo ihr Passwort eingeben müssen.

  4. Regelmäßige Audits: Überprüfen Sie regelmäßig die sudo-Protokolle und die sudoers-Datei, um eine korrekte Konfiguration sicherzustellen.

  5. Entfernung unnötigen Zugangs: Wenn Benutzer keine erhöhten Rechte mehr benötigen, entfernen Sie sie umgehend aus der sudo-Gruppe.

Entfernen des sudo-Zugangs

Wenn ein Benutzer keine sudo-Rechte mehr benötigt, können Sie ihn aus der sudo-Gruppe entfernen:

sudo deluser trusted_advisor sudo

Vergewissern Sie sich, dass der Benutzer nicht mehr in der sudo-Gruppe ist:

groups trusted_advisor

Die Ausgabe sollte "sudo" nicht mehr in der Gruppenliste enthalten.

Testen des entzogenen sudo-Zugangs

Lassen Sie uns überprüfen, dass der Benutzer keine Befehle mit sudo ausführen kann:

su - trusted_advisor

Geben Sie bei entsprechender Aufforderung das Passwort ein.

Versuchen Sie, einen Befehl mit sudo auszuführen:

sudo ls /root

Sie sollten jetzt eine Fehlermeldung über verweigerten Zugang erhalten.

Beenden Sie die Sitzung des Benutzers trusted_advisor:

exit

Wiederherstellen des sudo-Zugangs

Zu Zwecken dieses Labs fügen wir den Benutzer wieder der sudo-Gruppe hinzu:

sudo usermod -aG sudo trusted_advisor

Vergewissern Sie sich, dass der Benutzer jetzt wieder in der sudo-Gruppe ist:

groups trusted_advisor

Die Ausgabe sollte jetzt "sudo" in der Gruppenliste enthalten.

Zusammenfassung

In diesem Lab haben Sie essentielle Techniken zur Linux-Benutzerverwaltung und -Privilegiekontrolle gelernt. Sie haben praktische Erfahrungen mit den folgenden Konzepten und Operationen gesammelt:

  1. Benutzererstellung: Sie haben gelernt, wie Sie neue Benutzerkonten mit dem adduser-Befehl erstellen.

  2. Erteilung von sudo-Rechten: Sie haben entdeckt, wie Sie Benutzern administrative Rechte erteilen können, indem Sie sie der sudo-Gruppe hinzufügen.

  3. Begrenzung des sudo-Zugangs: Sie haben das Prinzip des geringsten Privilegs umgesetzt, indem Sie den sudo-Zugang eines Benutzers auf bestimmte Befehle mithilfe der sudoers-Datei eingeschränkt haben.

  4. sudo-Protokollierung und -Überwachung: Sie haben untersucht, wie sudo-Aktivitäten protokolliert werden und warum die Überwachung dieser Protokolle für die Sicherheit wichtig ist.

  5. Verwaltung des sudo-Zugangs: Sie haben gelernt, wie Sie bei Bedarf sudo-Rechte für Benutzer hinzufügen und entfernen können.

Diese Fähigkeiten sind grundlegend für die Linux-Systemadministration und -Sicherheit. Durch die ordnungsgemäße Verwaltung von Benutzerrechten können Sie ein sicheres System aufrechterhalten, in dem Benutzer Zugang zu den benötigten Ressourcen haben, ohne die Systemintegrität oder -sicherheit zu gefährden.