Linux Sicherheit - Datei- und Verzeichnisrechte

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Linux Sicherheit - Datei- und Verzeichnisrechte

  • Datei- und Verzeichnisrechte sind das Fundament der Zugriffskontrolle in Linux. Sie bestimmen, welche Benutzer und Gruppen Dateien lesen, verändern oder ausführen dürfen. Fehlerhafte Rechtevergabe kann Datenverlust, Manipulation oder Kompromittierung des Systems zur Folge haben.*

Grundlagen

  • Jede Datei und jedes Verzeichnis besitzt drei Schutzklassen: Benutzer (owner), Gruppe (group) und andere (others).
  • Für jede Klasse gelten drei Rechte: Lesen (r), Schreiben (w) und Ausführen (x).
  • Berechtigungen werden binär über neun Bits abgebildet, ergänzt durch Sonderbits (SUID, SGID, Sticky Bit).
  • Verzeichnisse benötigen das Ausführungsrecht (x), um in sie hinein wechseln zu können.

Aktuelle Berechtigungen anzeigen

  • ls -l
  • ls -ld /pfad/zum/verzeichnis
  • stat datei.txt
getfacl datei.txt
  • Die Ausgabe zeigt Besitzer, Gruppe und Rechte in rwx-Notation.
  • „d“ am Anfang der Zeile kennzeichnet ein Verzeichnis.
  • ACLs (Access Control Lists) können zusätzliche Rechte definieren und sollten regelmäßig geprüft werden.

Berechtigungen ändern

  • chmod 640 datei.txt
  • chmod 750 /srv/daten
  • chown alice:projekte datei.txt
  • chgrp projekte /srv/daten
setfacl -m u:bob:rw /srv/daten/info.txt
setfacl -m g:devteam:r /srv/daten/info.txt
  • Rechteänderungen sollten nachvollziehbar dokumentiert und nur durch Administratoren vorgenommen werden.
  • Empfehlung: Standardrechte restriktiv setzen (z. B. 640 für Dateien, 750 für Verzeichnisse).

Bedeutung der rwx-Bits

  • r (read): Datei kann gelesen bzw. Verzeichnisinhalt gelistet werden.
  • w (write): Datei kann geändert oder gelöscht, im Verzeichnis neue Dateien angelegt werden.
  • x (execute): Datei ist ausführbar, Verzeichnis kann betreten werden.
  • Fehlendes x-Recht verhindert den Zugriff, selbst wenn r gesetzt ist.

Beispiele für sinnvolle Rechte

  • Systemkonfiguration: /etc/passwd → 644, /etc/shadow → 600
  • Logdateien: /var/log → 750
  • Webverzeichnis: /var/www/html → 755
  • Private Daten: ~/private → 700
  • Skripte: ~/bin/script.sh → 700

Verzeichnisschutz und Zugriffssicherheit

  • chmod 700 /home/alice/private
  • chmod 750 /srv/projekte
  • chmod 1777 /tmp
  • Gemeinsam genutzte Verzeichnisse sollten das Sticky Bit besitzen (chmod +t).
  • Verzeichnisse mit sensiblen Daten sollten für „others“ keinerlei Rechte enthalten.
  • Mountoptionen wie noexec, nosuid und nodev können Rechte zusätzlich absichern.

Umask und Standardrechte

  • umask
  • umask 027
  • Die umask definiert, welche Rechte beim Erstellen neuer Dateien standardmäßig entfernt werden.
  • Eine umask von 027 führt zu 750 (Verzeichnis) bzw. 640 (Datei).
  • Systemweite Vorgabe: /etc/profile oder /etc/login.defs.

Erweiterte Berechtigungen mit ACLs

  • setfacl -m u:alice:rwx datei.txt
  • setfacl -m g:entwickler:rx /srv/projekte
  • getfacl /srv/projekte
setfacl -b datei.txt ←