Berechtigungen und Zugriffssicherheit steuern Sicherheit von Linux-Dateisystem Ext4 verbessern

Von Thomas Joos 6 min Lesedauer

Aus Sicht von Security-Experten bietet das Ext4-Dateisystem viele Vorteile wie verbesserte Dateisystemintegrität durch Journaling und erweiterte Zugriffssteuerungen mittels Access Control Lists (ACLs) und Dateiattributen, was eine stärkere Zugriffskontrolle und Datensicherheit ermöglicht. In diesem Beitrag zeigen wir, wie Admins Berechtigungen in Linux richtig setzen und Verzeichnisse mit UNIX-Berechtigungen und ACLs absichern.

Für IT-Sicherheitsexperten bietet Ext4 wichtige Vorteile in Bezug auf Datensicherheit und Zugriffskontrolle. Wir zeigen, wie Admins Verzeichnisse und Dateien richtig absichern und Berechtigungen korrekt setzen.(Bild:  Dall-E / KI-generiert)
Für IT-Sicherheitsexperten bietet Ext4 wichtige Vorteile in Bezug auf Datensicherheit und Zugriffskontrolle. Wir zeigen, wie Admins Verzeichnisse und Dateien richtig absichern und Berechtigungen korrekt setzen.
(Bild: Dall-E / KI-generiert)

Das Dateisystem Ext4 bietet erweiterte Zugriffssteuerungslisten (ACLs), die eine feine Granularität bei der Verwaltung von Berechtigungen ermöglichen. Darüber hinaus unterstützt Ext4 Journaling, wodurch Datenintegrität bei unerwarteten Systemausfällen gewahrt bleibt. Es zeichnet Änderungen zunächst in einem speziellen Log auf, bevor sie auf die Hauptdateistruktur angewendet werden. Diese Technik minimiert das Risiko von Datenverlusten bei Systemabstürzen. Zusätzlich integriert Ext4 Mechanismen zur Defragmentierung und nutzt Prüfsummen für das Journal, um sicherzustellen, dass potenzielle Datenfehler oder -korruptionen frühzeitig erkannt werden. Das verhindert auch Cyberattacken, die über diesen Weg Zugang zu Daten ermöglichen.

Bildergalerie
Bildergalerie mit 5 Bildern

Mit dem Befehl ls -l lassen sich die Berechtigungen von Dateien und Verzeichnissen in einem übersichtlichen Format anzeigen. Dabei gibt die erste Spalte der Ausgabe detaillierte Informationen über die Zugriffsrechte. Die Berechtigungen werden in Form von zehn Zeichen dargestellt: das erste Zeichen zeigt an, ob es sich um eine Datei (-), ein Verzeichnis (d) oder einen symbolischen Link (l) handelt. Die folgenden neun Zeichen sind in Dreiergruppen unterteilt, die jeweils die Rechte für den Besitzer, die Gruppe und alle anderen Benutzer repräsentieren. Jede Gruppe besteht aus den Zeichen für Lesen (r), Schreiben (w) und Ausführen (x). Beispiel:

-rw-r--r-- 1 benutzer gruppe 1234 Jan 1 12:00 datei.txt

Hier hat der Besitzer (benutzer) Lese- und Schreibrechte (rw-), die Gruppe (gruppe) und alle anderen Benutzer dürfen die Datei nur lesen (r--). Um zusätzlich erweiterte ACL-Einträge anzuzeigen, kann der Befehl ls -l um die Option -e ergänzt werden, um zu sehen, ob ACLs für die Datei existieren.

UNIX-Rechte versus erweiterte Zugriffssteuerungslisten

In Ext4 lassen sich Berechtigungen auf zwei wesentlichen Ebenen steuern, durch klassische UNIX-Dateiberechtigungen und erweiterte Zugriffssteuerungslisten (ACLs). Beide Mechanismen ermöglichen eine feingranulare Kontrolle über den Zugriff auf Dateien und Verzeichnisse.

Das traditionelle UNIX-Berechtigungssystem basiert auf drei Zugriffsrechten: Lesen (r), Schreiben (w) und Ausführen (x). Diese Rechte können jeweils dem Dateibesitzer, der Gruppe und allen anderen Benutzern zugewiesen werden. Die Berechtigungen lassen sich mit dem Befehl chmod ändern und werden als oktaler Wert oder symbolisch definiert.

ls -l datei.txt -rw-r--r-- 1 benutzer gruppe 1234 Jan 1 12:00 datei.txt

In diesem Beispiel hat der Dateibesitzer das Recht, die Datei zu lesen und zu schreiben (rw-), die Gruppe und andere Benutzer dürfen die Datei nur lesen (r--). Mit dem Befehl chmod lassen sich diese Berechtigungen ändern. Um beispielsweise Schreibrechte für die Gruppe hinzuzufügen:

chmod g+w datei.txtls -l datei.txt -rw-rw-r-- 1 benutzer gruppe 1234 Jan 1 12:00 datei.txt

Nun hat auch die Gruppe Schreibrechte (rw-).

Der wesentliche Unterschied zwischen den klassischen UNIX-Berechtigungen und den erweiterten Access Control Lists (ACLs) liegt in der Granularität der Zugriffssteuerung. UNIX-Berechtigungen beschränken sich auf drei Ebenen: den Besitzer der Datei, die zugehörige Gruppe und alle anderen Benutzer. Diese Struktur ermöglicht eine einfache Rechtevergabe für Lesen, Schreiben und Ausführen, die entweder der gesamten Gruppe oder allen anderen Nutzern pauschal zugewiesen wird. Diese starre Zuweisung kann in komplexeren Szenarien, bei denen differenziertere Zugriffsrechte notwendig sind, schnell an ihre Grenzen stoßen.

ACLs hingegen bieten mehr Flexibilität, da sie Berechtigungen auf Benutzer- und Gruppenebene erweitern. Mit ACLs lassen sich individuelle Rechte für bestimmte Benutzer oder Gruppen festlegen, ohne die Standardberechtigungen zu verändern. Das erlaubt eine feinere Kontrolle über den Zugriff, zum Beispiel wenn nur ein bestimmter Benutzer innerhalb einer Gruppe zusätzlich zu den allgemeinen Rechten eingeschränkte oder erweiterte Berechtigungen erhalten soll. Ein weiterer Vorteil von ACLs ist, dass sie sich auch rekursiv auf Verzeichnisse anwenden lassen, was bei größeren Dateisystemen eine einfachere Verwaltung ermöglicht. ACLs bieten damit eine flexiblere und anpassungsfähigere Alternative zu den klassischen UNIX-Berechtigungen.

Bildergalerie
Bildergalerie mit 5 Bildern

Erweiterte Zugriffssteuerungslisten

ACLs erlauben es, Berechtigungen für bestimmte Benutzer oder Gruppen feiner zu definieren. Sie werden in Ext4 mit dem Befehl setfacl konfiguriert und bieten mehr Flexibilität als die klassischen UNIX-Berechtigungen. Mit ACLs kann einem bestimmten Benutzer Lesezugriff auf eine Datei gewährt werden, ohne die Zugriffsrechte der restlichen Benutzer zu ändern.

setfacl -m u:andererBenutzer:r datei.txt

Dieser Befehl fügt der Datei datei.txt Lesezugriff für den Benutzer anderer Benutzer hinzu, ohne die bestehenden Rechte zu beeinflussen. Um die aktuellen ACL-Einträge einer Datei anzuzeigen, wird der Befehl getfacl verwendet:

getfacl datei.txt# file: datei.txt# owner: benutzer# group: gruppeuser::rw-user:andererBenutzer:r--group::r--mask::rw-other::r--

Diese Ausgabe zeigt die standardmäßigen UNIX-Berechtigungen sowie die zusätzlich festgelegten ACLs. Angenommen, eine Datei ist standardmäßig für alle Benutzer lesbar, doch ein bestimmter Benutzer soll explizit keinen Zugriff haben. Mit ACLs lässt sich dieser Ausschluss gezielt umsetzen, indem dem Benutzer benutzerX der Zugriff komplett verweigert wird. Dies wird durch den Befehl setfacl -m u:benutzerX:0 datei.txt erreicht, sodass benutzerX keine Rechte auf die Datei hat, obwohl andere Benutzer darauf zugreifen können.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Ein weiteres Szenario ist das rekursive Setzen von Berechtigungen auf Verzeichnisse. Wenn alle Dateien in einem Verzeichnis mit den gleichen Zugriffsrechten ausgestattet werden sollen, lässt sich dies durch rekursive ACL-Befehle umsetzen. Beispielsweise könnte einer Gruppe Lese- und Schreibrechte auf alle Dateien und Unterverzeichnisse in einem Projektordner gewährt werden. Mit dem Befehl setfacl -R -m g:projektGruppe:rw /projektverzeichnis wird sichergestellt, dass die Gruppe projektGruppe auf alle Inhalte des Verzeichnisses Zugriff hat, inklusive der Dateien in tieferliegenden Unterverzeichnissen.

Für gemeinsam genutzte Verzeichnisse ist es häufig hilfreich, standardmäßige ACLs zu definieren, die automatisch auf neu erstellte Dateien und Unterverzeichnisse angewendet werden. So lässt sich sicherstellen, dass alle zukünftigen Inhalte eines Verzeichnisses einheitliche Berechtigungen erhalten. Dies wird durch den Befehl setfacl -m d:g:projektGruppe:rw /projektverzeichnis erreicht, der festlegt, dass alle neuen Dateien und Ordner im Verzeichnis /projektverzeichnis standardmäßig Lese- und Schreibrechte für die Gruppe projektGruppe besitzen.

Ein weiteres Beispiel für die Flexibilität von ACLs ist die Möglichkeit, spezifische Rechte für verschiedene Benutzer und Gruppen festzulegen. Nehmen wir an, ein Benutzer soll ausschließlich Schreibzugriff auf eine Datei haben, während eine Gruppe nur Leserechte erhält. Dies lässt sich mit dem Befehl setfacl -m u:benutzerY:w,g:leseGruppe:r datei.txt umsetzen. Dadurch wird der Benutzer benutzerY mit Schreibrechten ausgestattet, während die Gruppe leseGruppe nur Leserechte auf die Datei besitzt. Solche detaillierten Konfigurationen sind mit dem klassischen UNIX-Berechtigungssystem nicht möglich, wodurch ACLs eine deutlich flexiblere und präzisere Verwaltung von Zugriffsrechten bieten.

Sicherheitsmechanismen durch Attributverwaltung in Ext4

Neben den klassischen Berechtigungssystemen bietet Ext4 die Möglichkeit, spezielle Dateiattribute zu setzen, die zusätzliche Sicherheitsaspekte abdecken. Diese Attribute können mit dem Befehl chattr verwaltet werden und erlauben es, bestimmte Funktionen von Dateien oder Verzeichnissen zu ändern. Ein wichtiges Attribut ist das "immutable"-Attribut (i), das verhindert, dass eine Datei verändert, gelöscht oder umbenannt wird. Dies kann besonders nützlich sein, um sensible Konfigurationsdateien oder Logs vor Manipulationen zu schützen. Das Attribut wird folgendermaßen gesetzt:

sudo chattr +i test.txt

Nachdem dieses Attribut gesetzt wurde, kann selbst der Root-Benutzer die Datei nicht mehr modifizieren, ohne vorher das Attribut zu entfernen. Um das Attribut wieder zu entfernen, wird der Befehl chattr -i verwendet. Weitere nützliche Attribute sind a (append-only), das es nur erlaubt, Daten an eine Datei anzuhängen, oder u, das es ermöglicht, gelöschte Dateien wiederherzustellen. Diese Attribute bieten zusätzliche Schutzebenen, die über die herkömmlichen Dateiberechtigungen hinausgehen.

Bildergalerie
Bildergalerie mit 5 Bildern

Die gesetzten Dateiattribute in Ext4 lassen sich mit dem Befehl lsattr anzeigen. Dieser Befehl zeigt die aktuellen Attribute einer Datei oder eines Verzeichnisses an. Dabei werden verschiedene Attribute in Form von Buchstaben dargestellt, die angeben, welche besonderen Eigenschaften eine Datei besitzt. Beispiel für die Anzeige der Attribute einer Datei:

lsattr datei.txt----i--------e-- datei.txt

In diesem Fall zeigt das Attribut i an, dass die Datei als unveränderlich markiert ist. Die anderen Zeichen zeigen zusätzliche mögliche Attribute, die aktuell aber nicht gesetzt sind. Um die Attribute aller Dateien in einem Verzeichnis anzuzeigen, kann lsattr ohne Dateiangabe für das gesamte Verzeichnis aufgerufen werden.

$ lsattr----i--------e-- datei1.txt----a--------e-- datei2.txt--------------e-- verzeichnis/

Die Ausgabe zeigt die Attribute der Dateien datei1.txt und datei2.txt sowie des Verzeichnisses. Der Buchstabe e zeigt an, dass die Datei das "extents"-Format verwendet, was eine Speicherverwaltungsfunktion von Ext4 ist.

(ID:50201213)