Zum Inhalt springen

Pam namespace.so

Aus Foxwiki
Version vom 12. Juni 2026, 16:25 Uhr von Dirkwagner (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „=== pam_namespace.so === ; Risiko /tmp Das gemeinsame Verzeichnis /tmp ist in einem Mehrbenutzersystem traditionell eine Quelle verschiedener Risiken, etwa * Manipulation temporärer Dateien * Race Conditions * unerwünschte Überschneidung von Arbeitsdaten zwischen Benutzern * Ansammlung von Artefakten, die das Verhalten von Anwendungen in einer anderen Sitzung beeinflussen ; Dieses Modul richtet für die Benutzersitzung private Namensräume mit sogenan…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

pam_namespace.so

Risiko /tmp

Das gemeinsame Verzeichnis /tmp ist in einem Mehrbenutzersystem traditionell eine Quelle verschiedener Risiken, etwa

  • Manipulation temporärer Dateien
  • Race Conditions
  • unerwünschte Überschneidung von Arbeitsdaten zwischen Benutzern
  • Ansammlung von Artefakten, die das Verhalten von Anwendungen in einer anderen Sitzung beeinflussen
Dieses Modul richtet für die Benutzersitzung private Namensräume mit sogenannten polyinstantiated directories ein

Die Idee der polyinstantiated directories besteht darin, dass dasselbe logische Verzeichnis, zum Beispiel /tmp, unterschiedliche physische Instanzen für verschiedene Benutzer oder — in SELinux-Szenarien — für unterschiedliche Sicherheitskontexte und Levels besitzen kann

pam_namespace.so wird als letzte Zeile der Gruppe session in der PAM-Konfiguration des jeweiligen Dienstes eingebunden

  • Entsprechend wird es erst nach pam_selinux.so aktiv und arbeitet somit mit einem bereits bestimmten Kontext

Konfiguration

Die zentrale Konfigurationsdatei ist /etc/security/namespace.conf

  • Falls sie nicht vorhanden ist, wird /usr/share/pam/security/namespace.conf verwendet
  • Zusätzlich werden .conf-Dateien aus den Verzeichnissen /etc/security/namespace.d/ und /usr/share/pam/security/namespace.d/ eingelesen

Format einer Regel in namespace.conf

polydir instance_prefix method list_of_uids
polydir Zielverzeichnis
instance_prefix Basispfad für die Instanzen
method -
list_of_uids Ausnahmen, für die die Verzeichnisaufteilung nicht angewendet wird
Methoden
namespace.conf unterstützt mehrere Methoden

Für die Zugriffskontrolle mit SELinux sind die Methoden context und level besonders nützlich

Methoden Beschreibung
user Trennung nach Benutzername
level Trennung nach MLS/MCS-Level und Benutzername
context Trennung nach vollständigem Sicherheitskontext und Benutzername
tmpfs die Instanz wird als separates tmpfs erzeugt
tmpdir es wird ein temporäres Verzeichnis erstellt