===== chmod - Dateirechte ändern ===== **Kurzfassung:** Mit ''chmod'' werden die Zugriffsrechte (Permissions) von Dateien und Verzeichnissen geändert. Das Kommando ermöglicht die Steuerung von Lese-, Schreib- und Ausführungsrechten für Eigentümer, Gruppe und andere Benutzer. Essentiell für die Sicherheit und Zugriffsverwaltung in Linux-Systemen. ==== Übersicht ==== ''chmod'' (change mode) ist ein grundlegendes Linux-Kommando zur Änderung von Dateiberechtigungen. Es unterstützt sowohl symbolische als auch oktale Notation und ermöglicht präzise Kontrolle über Zugriffsrechte. ==== Voraussetzungen ==== * Root-Rechte oder Eigentümerschaft der Datei/des Verzeichnisses * Grundkenntnisse über Linux-Dateiberechtigungen * Verständnis von User/Group/Other-Konzept ==== Syntax ==== chmod [Optionen] Modus Datei ==== Modus-Notation ==== === Oktale Notation === Numerische Darstellung der Rechte (empfohlen für klare Definitionen): ^ User ||^ Gruppe ||^ Rest ||^ | r | w | x | r | w | x | r | w | x | | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 | # Beispiel: 755 = rwxr-xr-x # User: 7 (4+2+1 = rwx) # Group: 5 (4+0+1 = r-x) # Other: 5 (4+0+1 = r-x) chmod 755 script.sh === Symbolische Notation === Buchstaben-basierte Notation für relative Änderungen: **Benutzer:** * ''u'' = User (Eigentümer) * ''g'' = Group (Gruppe) * ''o'' = Others (Andere) * ''a'' = All (Alle) **Operatoren:** * ''+'' = Rechte hinzufügen * ''-'' = Rechte entfernen * ''='' = Rechte setzen (überschreibt bestehende) **Rechte:** * ''r'' = Read (Lesen) * ''w'' = Write (Schreiben) * ''x'' = Execute (Ausführen) # Ausführungsrecht für User hinzufügen chmod u+x datei # Schreibrecht für Group entfernen chmod g-w datei # Alle Rechte für Other entfernen chmod o= datei ==== Wichtige Optionen ==== -R # Rekursiv für Unterverzeichnisse anwenden -v # Verbose - zeigt alle Änderungen an -c # Zeigt nur tatsächliche Änderungen --reference=REF # Kopiert Rechte von Referenzdatei ==== Anleitung ==== === Schritt 1: Häufige Berechtigungen setzen === # Normale Datei (rw-r--r--) chmod 644 dokument.txt # Ausführbare Datei/Script (rwxr-xr-x) chmod 755 script.sh # Privater Ordner (rwx------) chmod 700 ~/.ssh # Öffentlicher Ordner (rwxr-xr-x) chmod 755 /var/www/html # Konfig-Datei mit sensiblen Daten (rw-------) chmod 600 ~/.ssh/id_rsa === Schritt 2: Rekursive Änderungen === # Alle Dateien und Verzeichnisse rekursiv anpassen chmod -R 755 /var/www/projekt # Nur Verzeichnisse rekursiv auf 755 setzen find /pfad -type d -exec chmod 755 {} \; # Nur Dateien rekursiv auf 644 setzen find /pfad -type f -exec chmod 644 {} \; === Schritt 3: Symbolische Notation nutzen === # Ausführungsrecht für alle hinzufügen chmod a+x script.sh # Schreibrecht für Group und Other entfernen chmod go-w datei.txt # Nur User hat alle Rechte, Rest nur Lesen chmod u=rwx,go=r datei ==== Hinweise ==== * **Sicherheit:** Niemals ''777'' für Produktionsdateien verwenden * **SSH-Keys:** Private Keys müssen ''600'' sein, sonst verweigert SSH die Nutzung * **Web-Verzeichnisse:** Standard ist ''755'' für Verzeichnisse, ''644'' für Dateien * **Scripts:** Benötigen ''x''-Recht (execute) zum Ausführen * **Rekursiv vorsichtig:** ''-R'' ändert alle Unterelemente, kann ungewollt Ausführungsrechte setzen * **Backup:** Bei kritischen Systemen vor Massenänderungen Rechte sichern ==== Siehe auch ==== * [[sammlung:chown|chown - Eigentümer ändern]] * [[sammlung:chgrp|chgrp - Gruppe ändern]] * [[sammlung:dateirechte_uebersicht|Dateirechte Übersicht]] * [[sammlung:suid_sgid|SUID/SGID/Sticky Bit]] * [[sammlung:acl|ACL - Erweiterte Zugriffsrechte]] ==== Quellen ==== * [[https://man7.org/linux/man-pages/man1/chmod.1.html|chmod Man Page]] * [[https://wiki.ubuntuusers.de/chmod/|Ubuntu Wiki - chmod]] ---- {{tag>cli permissions utilities basics}} ----