Sicherheit2026-01-209 min readBy Abhishek Nair

Linux-Dateiberechtigungen: Praxisleitfaden zu chmod, chown und sicheren Defaults

#linux berechtigungen#chmod rechner#chmod 755 bedeutung#chown#dateisicherheit
Loading...

Linux-Dateiberechtigungen: Praxisleitfaden zu chmod, chown und sicheren Defaults

Korrekte Berechtigungen sind die Basis der Linux-Sicherheit. Falsch gesetzte Bits können Secrets offenlegen, Deployments brechen oder Privilegien eskalieren. Dieser Leitfaden erklärt das Berechtigungsmodell, sichere Standardwerte und Checklisten für Server, Container und Entwickler-Laptops.

1. Warum Berechtigungen zählen

Berechtigungen schützen Vertraulichkeit (wer lesen darf), Integrität (wer ändern darf) und Verfügbarkeit (wer ausführen darf). Eine geleakte .env, ein weltweit beschreibbares Skript oder ausführbare Logfiles können sofort zu Incidents führen.

2. Das Berechtigungsmodell

  • Nutzerklassen: Besitzer, Gruppe, Andere
  • Aktionen: lesen (r), schreiben (w), ausführen (x)
  • Numerische Modi: r=4, w=2, x=1; Summe pro Klasse (z. B. 754 → Besitzer rwx, Gruppe r-x, Andere r--)
  • Symbolische Modi: u/g/o/a mit +/-/= (z. B. chmod g-w)

3. Häufige Modi verstehen

  • 755: Verzeichnisse und ausführbare Skripte; Besitzer schreibt, alle dürfen lesen/ausführen.
  • 750: Private Executables im Teamkontext.
  • 644: Textdateien; Besitzer schreibt, andere lesen.
  • 600: Secrets wie SSH-Keys oder .env.
  • 700: Private Verzeichnisse (z. B. ~/.ssh).

4. Spezialbits (setuid, setgid, sticky)

  • setuid (4xxx): Läuft mit Besitzerrechten (z. B. /usr/bin/passwd). Sparsam nutzen und auditieren.
  • setgid (2xxx): Neue Dateien erben die Gruppe; ideal für gemeinsame Projektordner.
  • Sticky Bit (1xxx): In Shared Dirs (z. B. /tmp) verhindert das Löschen fremder Dateien. Beispiel: chmod 2775 shared/ hält die Gruppenzugehörigkeit konsistent.

5. chown und Gruppen

  • chown user:group file setzt Eigentümer; Root nur verwenden, wenn nötig.
  • Gruppenstrategie: Projektgruppen anlegen, Mitglieder hinzufügen, Verzeichnisse auf 2775 setzen, damit Dateien die Gruppe erben.
  • Mit ls -l und stat prüfen, ob Eigentum und Modi stimmen.

6. Sichere Defaults für Apps und Server

  • App-Configs/Logs: 640 mit Service-User als Besitzer
  • Private Keys: 600, Verzeichnis 700
  • Webroots: Dateien 644, Verzeichnisse 755; Schreibrechte nur für Deploy-User
  • Cron-Skripte: 700 bei minimalen Rechten
  • Temp-Verzeichnisse: Sticky Bit auf geteilten Pfaden sicherstellen

7. Berechtigungen in Git und Docker

  • Git trackt das Executable-Bit, nicht Eigentümer; Modi in CI/Deploy-Skripten setzen.
  • In Docker-Images auf Nicht-Root wechseln (USER app), Secrets 700/600, Code 755/644, keine world-writable Pfade.

8. Häufige Probleme beheben

  • Permission denied: Execute-Bit auf Verzeichnissen prüfen; Gruppenmitgliedschaft kontrollieren.
  • Nur mit sudo lauffähig: Eigentum falsch; mit chown -R user:group path korrigieren und Modi anpassen.
  • Skripte laufen nicht: Executable-Bit setzen (chmod +x script.sh) und Shebang prüfen.

9. Audits und Automatisierung

  • Risiko-Files finden: find . -perm -o=w -type f zeigt weltbeschreibbare Dateien.
  • setuid/setgid-Binaries prüfen: find / -perm -4000 -type f regelmäßig auditieren.
  • Wunschzustände mit Ansible/Chef oder in Container-Builds festschreiben, um Drifts zu verhindern.

10. Quick-Reference

  • Code-Dateien: 644
  • Ausführbare Skripte: 755 (oder 750 im Team-Ordner)
  • Secrets/Keys: 600
  • Gemeinsame Projektordner: 2775
  • Private Home-Dirs: 700

Verwandtes Tool: chmod-calculator

Nutzen Sie den chmod-calculator, um numerische und symbolische Modi schnell zu übersetzen, Berechtigungsbits zu visualisieren und riskante Defaults bei Deployments zu vermeiden.

Abhishek Nair
Abhishek Nair
Robotics & AI Engineer
About & contact
Why trust this guide?

Follow Me