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.
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.
chmod [Optionen] Modus Datei
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
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
-R # Rekursiv für Unterverzeichnisse anwenden -v # Verbose - zeigt alle Änderungen an -c # Zeigt nur tatsächliche Änderungen --reference=REF # Kopiert Rechte von Referenzdatei
# 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
# 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 {} \;
# 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
777 für Produktionsdateien verwenden600 sein, sonst verweigert SSH die Nutzung755 für Verzeichnisse, 644 für Dateienx-Recht (execute) zum Ausführen-R ändert alle Unterelemente, kann ungewollt Ausführungsrechte setzen