chmod-Rechner

Unix-Dateirechte in oktal und rwx, in beide Richtungen.

Über dieses Tool

Hake Lesen, Schreiben und Ausführen für Besitzer, Gruppe und andere an, um den Oktalmodus und den chmod-Befehl zu erhalten, oder tippe einen Modus wie 755 oder rwxr-xr-x ein, um zu sehen, was er erlaubt. Mit setuid, setgid und Sticky-Bit.

So verwendest du es

  1. Gib einen Modus wie 755, 0644 oder rwxr-xr-x ein oder füge die erste Spalte von ls -l ein.
  2. Oder hake Lesen, Schreiben und Ausführen für Besitzer, Gruppe und alle anderen an.
  3. Füge setuid, setgid oder das Sticky-Bit hinzu, wenn du sie brauchst.
  4. Gib den Dateinamen ein und kopiere den chmod-Befehl.

Fragen

Was bedeutet chmod 755?
Der Besitzer darf lesen, schreiben und ausführen; die Gruppe und alle anderen dürfen lesen und ausführen. Das ist der übliche Modus für Skripte, Programme und Ordner.
Was ist der Unterschied zwischen 644 und 755?
644 (rw-r--r--) ist für normale Dateien: Nur der Besitzer kann sie ändern, und niemand kann sie ausführen. 755 fügt das Ausführungsrecht hinzu, das Programme zum Laufen brauchen und Ordner, damit man sie öffnen kann.
Warum braucht mein SSH-Schlüssel 600?
SSH verweigert private Schlüssel, die andere Benutzer lesen können. 600 bedeutet, dass nur du die Datei lesen und schreiben kannst – genau das prüft SSH.
Ist chmod 777 jemals eine gute Idee?
Selten. Damit kann jeder Benutzer auf dem Rechner die Datei ändern oder ersetzen. Wenn etwas nur mit 777 funktioniert, ist die eigentliche Lösung meist der richtige Besitzer (chown) oder die richtige Gruppe, nicht weitere Rechte.
Was bedeuten die Buchstaben s und t?
s an der Stelle von Besitzer oder Gruppe ist setuid bzw. setgid: Das Programm läuft mit den Rechten des Dateibesitzers bzw. der Gruppe, oder neue Dateien in einem Ordner erben dessen Gruppe. t ist das Sticky-Bit: In einem gemeinsamen Ordner wie /tmp kann jeder nur seine eigenen Dateien löschen.
Warum meldet chmod „Operation not permitted“?
Nur der Eigentümer der Datei oder root kann ihren Modus ändern, nimm also sudo oder korrigiere den Eigentümer zuerst mit chown. Auf FAT, exFAT und vielen Netzwerkfreigaben werden Rechte gar nicht gespeichert, sondern stammen aus den Mount-Optionen. Unter Linux verweigert auch eine mit chattr +i als unveränderlich markierte Datei chmod, bis das Flag entfernt ist.
Speichert Git Dateirechte?
Nur das Ausführbit. Git speichert eine Datei als 100644 oder 100755 und ignoriert alles andere, auch Gruppe und andere. Um ein Skript unter Windows als ausführbar zu markieren, führe git update-index --chmod=+x script.sh aus. Meldet Git Modusänderungen, die du nicht gemacht hast, etwa auf einem freigegebenen Laufwerk, setze core.fileMode für dieses Repository auf false.
Was ist der Unterschied zwischen chmod und chown?
chmod ändert, was Eigentümer, Gruppe und andere mit einer Datei tun dürfen. chown ändert, wer Eigentümer und Gruppe sind, wie in sudo chown www-data:www-data uploads. Kann ein Dienst irgendwo nicht schreiben, ist es sicherer, den Ordner dem Benutzer oder der Gruppe des Diensts zu übergeben, als den Modus für alle zu erweitern.

Wie funktionieren chmod-Zahlen?

Jedes Recht hat einen Wert: Lesen ist 4, Schreiben 2 und Ausführen 1. Zählst du sie zusammen, ergibt sich eine Ziffer, 7 bedeutet also rwx, 6 bedeutet rw- und 5 bedeutet r-x. Ein Modus hat drei Ziffern, für den Eigentümer, die Gruppe und alle anderen, in dieser Reihenfolge. Deshalb gibt chmod 640 dem Eigentümer Lese- und Schreibrecht, der Gruppe nur Leserecht und den anderen nichts. Der Zahlensystem-Konverter zeigt jede Ziffer als drei Binärbits.

Eine vierte Ziffer davor setzt die Spezialbits: 4 für setuid, 2 für setgid und 1 für das Sticky-Bit, chmod 2775 ist also 775 plus setgid. In der ersten Spalte von ls -l ist das erste Zeichen der Dateityp (d für einen Ordner, l für einen Symlink, - für eine reguläre Datei), gefolgt von neun Rechte-Buchstaben. Ein großes S oder T bedeutet, dass das Spezialbit gesetzt ist, Ausführen aber nicht – meist ein Versehen.

chmod mit Zahlen vs. Buchstaben (symbolischer Modus)

Zahlen setzen immer alle neun Bits auf einmal: chmod 644 file ersetzt, was vorher da war. Buchstaben können eine Sache ändern und den Rest behalten. chmod u+x deploy.sh fügt Ausführen für den Eigentümer hinzu, chmod go-w file entfernt Schreiben für Gruppe und andere, und = setzt eine exakte Liste, wie in chmod o= secret.txt. Jedes Ergebnis wird hier in beiden Schreibweisen gezeigt, zum Beispiel chmod 755 file und chmod u=rwx,g=rx,o=rx file.

Lässt du u, g, o oder a weg, wendet chmod die Änderung auf alle an, überspringt aber Bits, die deine umask blockiert. Die umask bestimmt auch den Modus neuer Dateien: Mit der gängigen umask 022 bekommen neue Dateien 644 und neue Ordner 755. Führe umask aus, um deine zu sehen. Legen Teamkollegen ständig Dateien an, die die Gruppe nicht bearbeiten kann, ist meist eine umask von 002 die Lösung, nicht ein nachträgliches chmod -R.

Ordner und Dateien mit chmod unterschiedlich behandeln

chmod -R 755 dir macht jede Datei ausführbar, was selten gewollt ist. Nimm stattdessen ein großes X: chmod -R u=rwX,go=rX dir gibt Ausführrechte nur Ordnern und Dateien, die schon ausführbar waren. Für strikt 755 bei Ordnern und 644 bei Dateien brauchst du zwei Durchgänge: find dir -type d -print0 | xargs -0 chmod 755, dann dasselbe mit -type f und 644.

„Permission denied“ bei einer Datei, die lesbar aussieht, liegt meist an einem übergeordneten Ordner. Um einen Pfad zu öffnen, brauchst du Ausführrechte auf jedem Ordner auf dem Weg, und Leserechte, um den Inhalt eines Ordners aufzulisten. Eine 644-Datei in einem 700-Ordner bleibt privat für den Eigentümer. Unter Linux gibt namei -l /path/to/file den Modus jedes Pfadteils aus, so findest du den Ordner, der den Zugriff blockiert.

Gängige chmod-Rechte

Die Modi, denen du am häufigsten begegnest, was sie jeweils erlauben und wo sie verwendet werden.

ModusrwxWer darf wasTypische Verwendung
chmod 755rwxr-xr-xDer Besitzer darf lesen, schreiben und ausführen. Die Gruppe darf lesen und ausführen. Alle anderen dürfen lesen und ausführen.Skripte, Programme und Ordner, die andere öffnen dürfen
chmod 644rw-r--r--Der Besitzer darf lesen und schreiben. Die Gruppe darf lesen. Alle anderen dürfen lesen.Normale Dateien: Alle können sie lesen, nur du kannst sie bearbeiten
chmod 600rw-------Der Besitzer darf lesen und schreiben. Die Gruppe darf nichts. Alle anderen dürfen nichts.Private Dateien wie SSH-Schlüssel und .env-Dateien
chmod 700rwx------Der Besitzer darf lesen, schreiben und ausführen. Die Gruppe darf nichts. Alle anderen dürfen nichts.Private Ordner und Skripte, die nur du ausführen darfst
chmod 775rwxrwxr-xDer Besitzer darf lesen, schreiben und ausführen. Die Gruppe darf lesen, schreiben und ausführen. Alle anderen dürfen lesen und ausführen.Ordner, in denen eine Gruppe gemeinsam arbeitet
chmod 664rw-rw-r--Der Besitzer darf lesen und schreiben. Die Gruppe darf lesen und schreiben. Alle anderen dürfen lesen.Dateien, die eine Gruppe gemeinsam bearbeitet
chmod 750rwxr-x---Der Besitzer darf lesen, schreiben und ausführen. Die Gruppe darf lesen und ausführen. Alle anderen dürfen nichts.Programme und Ordner nur für dich und deine Gruppe
chmod 640rw-r-----Der Besitzer darf lesen und schreiben. Die Gruppe darf lesen. Alle anderen dürfen nichts.Konfigurationsdateien, die die Gruppe eines Dienstes lesen darf
chmod 444r--r--r--Der Besitzer darf lesen. Die Gruppe darf lesen. Alle anderen dürfen lesen.Schreibgeschützte Dateien, die niemand ändern soll
chmod 777rwxrwxrwxDer Besitzer darf lesen, schreiben und ausführen. Die Gruppe darf lesen, schreiben und ausführen. Alle anderen dürfen lesen, schreiben und ausführen.Alle dürfen alles: außerhalb von Wegwerf-Tests vermeiden

Funktioniert etwas nicht, oder sieht ein Ergebnis falsch aus? Ein Problem mit diesem Tool melden