Ändern von Linux-Berechtigungen

LinuxLinuxBeginner
Jetzt üben

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

Einführung

Linux-Dateiberechtigungen sind ein grundlegendes Sicherheitsmerkmal, das steuert, wie Dateien und Verzeichnisse von verschiedenen Benutzern zugegriffen, modifiziert und ausgeführt werden können. Das Verständnis und die effektive Verwaltung dieser Berechtigungen ist für die Aufrechterhaltung der System-Sicherheit und die ordnungsgemäße Ressourcenfreigabe unerlässlich.

In diesem Lab lernen Sie, wie Sie Dateiberechtigungen mit dem Befehl chmod anzeigen, festlegen und ändern. Mit dem Befehl chmod können Administratoren steuern, wer bestimmte Dateien lesen, schreiben oder ausführen kann, um sicherzustellen, dass sensible Daten geschützt bleiben, während erforderliche Ressourcen für autorisierte Benutzer zugänglich bleiben.

Am Ende dieses Labs können Sie Dateien mit bestimmten Berechtigungen erstellen, bestehende Dateiberechtigungen ändern und gruppenbasierte Zugangskontrollen zuweisen – Fähigkeiten, die für jeden Linux-Systemadministrator oder Benutzer von entscheidender Bedeutung sind.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/chown("Ownership Changing") linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/UserandGroupManagementGroup -.-> linux/groupadd("Group Adding") subgraph Lab Skills linux/echo -.-> lab-271241{{"Ändern von Linux-Berechtigungen"}} linux/ls -.-> lab-271241{{"Ändern von Linux-Berechtigungen"}} linux/touch -.-> lab-271241{{"Ändern von Linux-Berechtigungen"}} linux/chown -.-> lab-271241{{"Ändern von Linux-Berechtigungen"}} linux/chmod -.-> lab-271241{{"Ändern von Linux-Berechtigungen"}} linux/cd -.-> lab-271241{{"Ändern von Linux-Berechtigungen"}} linux/groupadd -.-> lab-271241{{"Ändern von Linux-Berechtigungen"}} end

Das Verständnis von Linux-Dateiberechtigungen

Linux implementiert ein Berechtigungssystem, das eine feingranulare Kontrolle darüber ermöglicht, wer auf Dateien und Verzeichnisse zugreifen kann und welche Aktionen diese ausführen können. In diesem Schritt lernen Sie, wie Linux-Berechtigungen funktionieren und wie Sie sie anzeigen können.

Zunächst navigieren Sie in das Arbeitsverzeichnis, in dem Sie alle Operationen für dieses Lab ausführen werden:

cd ~/project

Erstellen Sie eine Beispiel-Datei, um deren Berechtigungen zu untersuchen:

touch sample_file.txt

Um die Berechtigungen dieser Datei anzuzeigen, verwenden Sie den Befehl ls mit der Option -l:

ls -l sample_file.txt

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

-rw-rw-r-- 1 labex labex 0 Oct 25 12:34 sample_file.txt

Lassen Sie uns diese Ausgabe analysieren:

  1. Das erste Zeichen (-) gibt den Dateityp an. Ein Bindestrich (-) steht für eine normale Datei, während d ein Verzeichnis anzeigen würde.

  2. Die nächsten neun Zeichen repräsentieren die Dateiberechtigungen in drei Gruppen à drei Zeichen:

    • Die ersten drei Zeichen (rw-) zeigen die Berechtigungen des Besitzers an.
    • Die nächsten drei (rw-) zeigen die Berechtigungen der Gruppe an.
    • Die letzten drei (r--) zeigen die Berechtigungen für alle anderen Benutzer an.
  3. In jeder Gruppe repräsentieren die drei Positionen:

    • r für Lesezugriff (read permission)
    • w für Schreibzugriff (write permission)
    • x für Ausführungsrecht (execute permission)
    • - zeigt an, dass die Berechtigung nicht gewährt wurde.
  4. Nach den Berechtigungen folgen weitere Details wie die Anzahl der Links, der Name des Besitzers, der Name der Gruppe, die Dateigröße, das Datum und die Uhrzeit der letzten Änderung sowie der Dateiname.

Linux-Berechtigungsmasken können auch numerisch dargestellt werden:

  • Lesen (r) = 4
  • Schreiben (w) = 2
  • Ausführen (x) = 1

Indem Sie diese Werte addieren, können Sie jede Berechtigungskombination als eine einzelne Ziffer darstellen:

  • rwx = 4+2+1 = 7
  • rw- = 4+2+0 = 6
  • r-x = 4+0+1 = 5
  • r-- = 4+0+0 = 4

Dies wird wichtig, wenn wir in späteren Schritten den Befehl chmod im numerischen Modus verwenden.

Das Erstellen von Dateien mit bestimmten Berechtigungen

In diesem Schritt erstellen Sie eine neue Datei und legen ihre anfänglichen Berechtigungen so fest, dass nur der Besitzer darauf zugreifen kann. Dies ist nützlich, wenn Sie Dateien erstellen, die sensible Informationen enthalten, auf die andere Benutzer nicht zugreifen sollten.

Zunächst erstellen Sie eine neue Datei namens secure_file.txt:

touch secure_file.txt

Fügen Sie nun der Datei etwas Inhalt hinzu:

echo "This file contains secure information." > secure_file.txt

Standardmäßig erstellen die meisten Linux-Systeme Dateien mit Berechtigungen, die es dem Besitzer und der Gruppe ermöglichen, zu lesen und zu schreiben, während andere Benutzer nur lesen können. Überprüfen Sie die aktuellen Berechtigungen:

ls -l secure_file.txt

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

-rw-rw-r-- 1 labex labex 37 Oct 25 12:40 secure_file.txt

Für eine Datei, die sensible Informationen enthält, möchten wir den Zugriff auf den Besitzer beschränken. Wir verwenden den Befehl chmod im numerischen Modus, um die Berechtigungen auf 600 festzulegen, was bedeutet:

  • Besitzer: Lesen und Schreiben (6 = 4+2)
  • Gruppe: Keine Berechtigungen (0)
  • Andere: Keine Berechtigungen (0)

Führen Sie den folgenden Befehl aus, um die Berechtigungen zu ändern:

chmod 600 secure_file.txt

Überprüfen Sie nun die Berechtigungen erneut:

ls -l secure_file.txt

Die Ausgabe sollte nun wie folgt aussehen:

-rw------- 1 labex labex 37 Oct 25 12:40 secure_file.txt

Beachten Sie, wie sich die Berechtigungen geändert haben - jetzt hat nur der Besitzer (Benutzer labex) Lese- und Schreibberechtigungen, während Gruppenmitglieder und andere Benutzer keinen Zugriff auf diese Datei haben.

Versuchen Sie nun, eine andere Datei zu erstellen, aber diesmal legen wir die Berechtigungen bereits bei der Erstellung fest, indem wir eine andere Methode verwenden.

Zunächst erstellen Sie eine neue Datei namens public_file.txt mit Inhalt:

echo "This file is readable by everyone." > public_file.txt

Machen Sie diese Datei nun für alle Benutzer lesbar, aber nur für den Besitzer schreibbar:

chmod 644 public_file.txt

Überprüfen Sie die Berechtigungen:

ls -l public_file.txt

Sie sollten sehen:

-rw-r--r-- 1 labex labex 33 Oct 25 12:45 public_file.txt

Diese Berechtigungseinstellung (644) wird häufig für öffentliche Dateien verwendet, die jeder lesen kann, aber nur der Besitzer ändern darf.

Die Verwendung des symbolischen Modus mit chmod

Im vorherigen Schritt haben Sie den numerischen Modus verwendet, um Berechtigungen festzulegen. Jetzt wollen wir uns den symbolischen Modus anschauen, der eine intuitivere Möglichkeit bietet, Berechtigungen zu ändern.

Der symbolische Modus verwendet Buchstaben und Symbole, um Benutzer und Berechtigungen darzustellen:

  • u - Benutzer (Besitzer)
  • g - Gruppe
  • o - Andere (alle anderen Benutzer)
  • a - Alle (äquivalent zu ugo)

Und die Berechtigungssymbole:

  • r - Lesen (Read)
  • w - Schreiben (Write)
  • x - Ausführen (Execute)

Erstellen wir eine Skriptdatei, um damit zu üben:

touch my_script.sh

Fügen Sie dem Skript einen einfachen Befehl hinzu:

echo '#!/bin/bash' > my_script.sh
echo 'echo "Hello from the script!"' >> my_script.sh

Überprüfen Sie die aktuellen Berechtigungen:

ls -l my_script.sh

Sie sollten sehen, dass das Skript nicht ausführbar ist:

-rw-rw-r-- 1 labex labex 44 Oct 25 12:50 my_script.sh

Um das Skript für den Besitzer ausführbar zu machen, verwenden Sie:

chmod u+x my_script.sh

Dies fügt (+) die Ausführungsberechtigung (x) für den Benutzer/Besitzer (u) hinzu.

Überprüfen Sie die Berechtigungen erneut:

ls -l my_script.sh

Sie sollten jetzt sehen:

-rwxrw-r-- 1 labex labex 44 Oct 25 12:50 my_script.sh

Jetzt machen wir es für alle Benutzer ausführbar:

chmod a+x my_script.sh

Dies fügt die Ausführungsberechtigung für alle Benutzer (Besitzer, Gruppe und andere) hinzu.

Überprüfen Sie die Berechtigungen erneut:

ls -l my_script.sh

Sie sollten sehen:

-rwxrwxr-x 1 labex labex 44 Oct 25 12:50 my_script.sh

Führen wir das Skript aus:

./my_script.sh

Sie sollten sehen:

Hello from the script!

Sie können auch Berechtigungen mit dem --Operator entfernen. Beispielsweise, um die Schreibberechtigung für Gruppe und andere zu entfernen:

chmod go-w my_script.sh

Überprüfen Sie die Berechtigungen:

ls -l my_script.sh

Sie sollten sehen:

-rwxr-xr-x 1 labex labex 44 Oct 25 12:50 my_script.sh

Sie können auch mehrere Berechtigungen auf einmal festlegen. Beispielsweise, um allen Benutzern Lesen- und Ausführungsberechtigungen zu geben, aber die Schreibberechtigung nur dem Besitzer:

chmod u=rwx,go=rx my_script.sh

Dies legt (=) die spezifischen Berechtigungen für jede Kategorie fest.

Überprüfen Sie die Berechtigungen noch einmal:

ls -l my_script.sh

Das Ergebnis sollte das gleiche wie zuvor sein:

-rwxr-xr-x 1 labex labex 44 Oct 25 12:50 my_script.sh

Arbeiten mit Gruppenberechtigungen

Linux ermöglicht es, Dateien Gruppen zuzuordnen, was eine kollaborative Zugriffskontrolle ermöglicht. In diesem Schritt lernen Sie, wie Sie eine Gruppe erstellen, die Gruppenbesitzrechte einer Datei ändern und die entsprechenden Gruppenberechtigungen festlegen.

Zunächst erstellen wir eine neue Gruppe. In einer realen Umgebung könnte dies eine Abteilung oder ein Projektteam repräsentieren:

sudo groupadd developers

Jetzt erstellen wir eine Datei, die mit dieser Gruppe geteilt werden soll:

touch shared_config.txt
echo "## Development configuration settings" > shared_config.txt
echo "debug_mode=true" >> shared_config.txt
echo "log_level=verbose" >> shared_config.txt

Derzeit gehört diese Datei Ihrem Benutzer und Ihrer primären Gruppe. Überprüfen wir dies:

ls -l shared_config.txt

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

-rw-rw-r-- 1 labex labex 61 Oct 25 13:00 shared_config.txt

Um die Gruppenbesitzrechte der Datei auf die Gruppe developers zu ändern, verwenden Sie den Befehl chown:

sudo chown labex:developers shared_config.txt

Die Syntax ist chown Benutzer:Gruppe Dateiname. Hier behalten wir den Benutzer als labex bei, ändern aber die Gruppe auf developers.

Überprüfen Sie nun die Besitzrechte:

ls -l shared_config.txt

Sie sollten sehen:

-rw-rw-r-- 1 labex developers 61 Oct 25 13:00 shared_config.txt

Beachten Sie, dass die Gruppe auf developers geändert wurde, aber die Berechtigungen bleiben noch gleich. Ändern wir sie, um Gruppenmitgliedern das Lesen, aber nicht das Schreiben zu ermöglichen und den Zugriff von anderen Benutzern zu verhindern:

chmod 640 shared_config.txt

Dies legt fest:

  • Besitzer: Lesen und Schreiben (6 = 4+2)
  • Gruppe: Nur Lesen (4)
  • Andere: Keine Berechtigungen (0)

Überprüfen Sie die Berechtigungen erneut:

ls -l shared_config.txt

Sie sollten jetzt sehen:

-rw-r----- 1 labex developers 61 Oct 25 13:00 shared_config.txt

Jetzt können Mitglieder der Gruppe developers diese Konfigurationsdatei lesen, aber sie nicht ändern. Benutzer, die nicht in der Gruppe developers sind, können überhaupt nicht auf die Datei zugreifen.

Sie können auch den symbolischen Modus verwenden, um dasselbe Ergebnis zu erzielen:

chmod u=rw,g=r,o= shared_config.txt

Dieser Befehl legt explizit fest:

  • Benutzer/Besitzer: Lesen und Schreiben
  • Gruppe: Nur Lesen
  • Andere: Keine Berechtigungen

Um einen Benutzer der Gruppe developers hinzuzufügen, würden Sie normalerweise verwenden:

sudo usermod -a -G developers username

Dies geht jedoch über den Rahmen dieses Labors hinaus, da dies das Erstellen von Benutzerkonten erfordern würde.

Zusammenfassung

In diesem Labor haben Sie die wesentlichen Konzepte und Praktiken der Linux-Dateiberechtigungen gelernt. Hier ist eine Zusammenfassung dessen, was Sie erreicht haben:

  1. Sie haben verstanden, wie das Linux-Berechtigungssystem funktioniert, einschließlich der Konzepte von Lese-, Schreib- und Ausführungsberechtigungen für Benutzer, Gruppen und andere.

  2. Sie haben Dateien mit bestimmten Berechtigungen erstellt und gelernt, den chmod-Befehl im numerischen Modus zu verwenden, um die geeigneten Zugriffsebenen für verschiedene Dateitypen festzulegen.

  3. Sie haben den symbolischen Modus des chmod-Befehls erkundet, der eine intuitivere Methode zum Hinzufügen, Entfernen oder Festlegen spezifischer Berechtigungen bietet.

  4. Sie haben mit Gruppenberechtigungen gearbeitet und gelernt, wie man Gruppen erstellt, die Gruppenbesitzrechte von Dateien ändert und die geeigneten Zugriffskontrollen auf Gruppenebene festlegt.

Diese Fähigkeiten sind grundlegend für die Sicherung und die Zugriffskontrolle in Linux-Systemen. Egal, ob Sie Serverkonfigurationen verwalten, Software entwickeln oder einfach nur Ihre persönlichen Dateien organisieren, das Verständnis, wie man Dateiberechtigungen richtig festlegt und ändert, ist eine essentielle Fähigkeit für jeden Linux-Benutzer.

Wenn Sie weiterhin mit Linux arbeiten, denken Sie daran, dass die richtige Berechtungsverwaltung ein Schlüsselbestandteil der System-Sicherheit ist. Befolgen Sie immer das Prinzip des geringsten Privilegs - geben Sie Benutzern und Prozessen nur die Berechtigungen, die sie benötigen, um ihre Aufgaben auszuführen, und nicht mehr.