Zum Inhalt springen

Linux/SELinux/04/14 Dateinamenübergang: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
=== Dateinamenübergang ===
{{navigation|Linux/SELinux/04/13 Multi-Level Security|Linux/SELinux/04/15 ptrace}}
'''Linux/SELinux/04/14 Dateinamenübergang'''
 
== Beschreibung ==
; Dateinamenübergang
Die Funktion „Dateinamenübergang“ ermöglicht es Richtlinienautoren, den Dateinamen beim Schreiben von Richtlinienübergangsregeln anzugeben
Die Funktion „Dateinamenübergang“ ermöglicht es Richtlinienautoren, den Dateinamen beim Schreiben von Richtlinienübergangsregeln anzugeben
* Es ist möglich, eine Regel zu schreiben, die besagt
* Es ist möglich, eine Regel zu schreiben, die besagt
Zeile 5: Zeile 9:
* Dieser Mechanismus ermöglicht eine feinere Steuerung der Prozesse auf dem System
* Dieser Mechanismus ermöglicht eine feinere Steuerung der Prozesse auf dem System


Ohne Dateinamenübergang gibt es drei Möglichkeiten, ein Objekt zu kennzeichnen
; Ohne Dateinamenübergang gibt es drei Möglichkeiten, ein Objekt zu kennzeichnen
* Standardmäßig erben Objekte Labels von übergeordneten Verzeichnissen
* Standardmäßig erben Objekte Labels von übergeordneten Verzeichnissen
* Wenn der Benutzer beispielsweise eine Datei in einem Verzeichnis mit dem Label [[etc_t]] erstellt, erhält die Datei ebenfalls das Label [[etc_t]]
* Wenn der Benutzer beispielsweise eine Datei in einem Verzeichnis mit dem Label [[etc_t]] erstellt, erhält die Datei ebenfalls das Label [[etc_t]]

Aktuelle Version vom 31. März 2026, 11:07 Uhr

Linux/SELinux/04/14 Dateinamenübergang

Beschreibung

Dateinamenübergang

Die Funktion „Dateinamenübergang“ ermöglicht es Richtlinienautoren, den Dateinamen beim Schreiben von Richtlinienübergangsregeln anzugeben

  • Es ist möglich, eine Regel zu schreiben, die besagt

Wenn ein Prozess mit der Kennzeichnung A_t eine bestimmte Objektklasse in einem Verzeichnis mit der Kennzeichnung B_t erstellt und die bestimmte Objektklasse den Namen objectname trägt, erhält sie die Kennzeichnung [ [C_t]]

  • Dieser Mechanismus ermöglicht eine feinere Steuerung der Prozesse auf dem System
Ohne Dateinamenübergang gibt es drei Möglichkeiten, ein Objekt zu kennzeichnen
  • Standardmäßig erben Objekte Labels von übergeordneten Verzeichnissen
  • Wenn der Benutzer beispielsweise eine Datei in einem Verzeichnis mit dem Label etc_t erstellt, erhält die Datei ebenfalls das Label etc_t
  • Diese Methode ist jedoch unbrauchbar, wenn mehrere Dateien innerhalb eines Verzeichnisses unterschiedliche Labels haben sollen
  • Richtlinienautoren können eine Regel in der Richtlinie schreiben, die besagt

Wenn ein Prozess vom Typ A_t eine bestimmte Objektklasse in einem Verzeichnis mit dem Label B_t erstellt, erhält das Objekt die neue Kennzeichnung C_t

  • Diese Vorgehensweise ist problematisch, wenn ein einzelnes Programm mehrere Objekte im selben Verzeichnis erstellt, wobei jedes Objekt eine eigene Kennzeichnung benötigt
  • Darüber hinaus bieten diese Regeln nur eine teilweise Kontrolle, da die Namen der erstellten Objekte nicht angegeben werden
  • Bestimmte Anwendungen verfügen über SELinux-Unterstützung, die es einer solchen Anwendung ermöglicht, das System zu fragen, wie die Kennzeichnung eines bestimmten Pfads lauten soll
  • Diese Anwendungen fordern dann den Kernel auf, das Objekt mit der erforderlichen Kennzeichnung zu erstellen
  • Beispiele für Anwendungen mit SELinux-Unterstützung sind der ‚‘'rpm'‚‘ Paketmanager, das ‚‘'restorecon'‚‘ Dienstprogramm oder der ‚‘'udev'‚‘ Gerätemanager
  • Es ist jedoch nicht möglich, jede Anwendung, die Dateien oder Verzeichnisse erstellt, mit SELinux-Unterstützung auszustatten
  • Oft ist es notwendig, Objekte nach der Erstellung mit dem korrekten Label neu zu kennzeichnen
  • Andernfalls werden AVC-Meldungen zurückgegeben, wenn eine eingeschränkte Domäne versucht, das Objekt zu verwenden

Die Funktion zur Dateinamenumwandlung verringert Probleme im Zusammenhang mit falscher Kennzeichnung und verbessert die Sicherheit des Systems

  • Richtlinienautoren können eindeutig festlegen, dass eine bestimmte Anwendung eine Datei mit einem bestimmten Namen nur in einem bestimmten Verzeichnis erstellen darf
  • Die Regeln berücksichtigen den Dateinamen, nicht den Dateipfad
  • Dies ist der Basisname des Dateipfads
  • Beachten Sie, dass die Dateinamenübergabe eine exakte Übereinstimmung verwendet, die durch die strcmp()-Funktion durchgeführt wird
  • Die Verwendung von regulären Ausdrücken oder Platzhaltern wird nicht berücksichtigt
Hinweis
Dateipfade können im Kernel variieren, und die Dateinamenumwandlung verwendet die Pfade nicht zur Bestimmung von Labels
  • Folglich wirkt sich diese Funktion nur auf die anfängliche Dateierstellung aus und behebt keine falschen Labels bereits erstellter Objekte
Beispiele für mit Dateinamenumwandlung geschriebene Richtlinienregeln

Das folgende Beispiel zeigt eine Policy-Regel mit Dateinamenumwandlung filetrans_pattern(unconfined_t, admin_home_t, ssh_home_t, dir, „.ssh“)

Diese Regel besagt, dass, wenn ein Prozess vom Typ unconfined_t das Verzeichnis ~/.ssh/ in einem Verzeichnis mit der Bezeichnung admin_home_t erstellt, das Verzeichnis ~/.ssh/ die Bezeichnung ssh _home_t

Ähnliche Beispiele für mit Dateinamenübergängen geschriebene Richtlinienregeln sind unten aufgeführt

filetrans_pattern(staff_t, user_home_dir_t, httpd_user_content_t, dir, „public_html“)
filetrans_pattern(thumb_t, user_home_dir_t, thumb_home_t, file, „missfont.log“)
filetrans_pattern(kernel_t, device_t, xserver_misc_device_t, chr_file, „nvidia0“)
filetrans_pattern (puppet_t, etc_t, krb5_conf_t, file, „krb5.conf“)
Hinweis
Die Funktion zur Änderung von Dateinamen betrifft hauptsächlich die Verfasser von Richtlinien, aber Benutzer können feststellen, dass einige Dateiobjekte ein anderes Label aufweisen, als in der Richtlinie festgelegt, anstatt wie fast immer mit dem Standard-Label des übergeordneten Verzeichnisses erstellt zu werden