Dateirechte gezielt statt pauschal ändern
Ein Skript soll ausführbar werden, eine Datei nur für ihren Eigentümer lesbar sein: Beides sind unterschiedliche Anforderungen. Lege zuerst fest, welche Klasse welche Rechte braucht. Der Rechner setzt die Auswahl in eine Zahl und eine rwx-Zeichenfolge um, ohne auf dein Dateisystem zuzugreifen.
Du kannst auch einen bestehenden Modus eingeben. Drei oder vier Oktalziffern sowie das Rechtefeld aus ls -l werden angenommen. Bei ungültiger Eingabe bleibt die letzte gültige Auswahl sichtbar; die Befehlsausgabe wartet auf eine Korrektur.
Verzeichnisse brauchen Suchrechte
Lesen zeigt bei einem Verzeichnis die Namen seiner Einträge. Ausführen bedeutet dort Suchen beziehungsweise Durchqueren. Änderungen an Einträgen benötigen üblicherweise Schreib- und Suchrechte. Ein Verzeichnis mit 644 ist deshalb nicht dasselbe wie eine lesbare Datei mit 644.
Ob eine Datei gelöscht werden darf, hängt vor allem vom übergeordneten Verzeichnis und weiteren Einschränkungen ab. ACLs, Mount-Optionen und Sicherheitsregeln können zusätzlich wirken. Der Rechner prüft keine effektive Zugriffsentscheidung.
So wird aus rwx eine Oktalziffer
Addiere pro Klasse Lesen 4, Schreiben 2 und Ausführen 1. Daraus entstehen Werte von 0 bis 7: rwx ergibt 7, r-x ergibt 5 und r-- ergibt 4. In Eigentümer–Gruppe–Andere-Reihenfolge ist rwxr-xr-- somit 754.
Eine zusätzliche erste Ziffer enthält setuid 4, setgid 2 und sticky 1. 4755 kombiniert setuid mit 755. Die Sonderbits ersetzen keine normalen Rechte und schalten Ausführen nicht automatisch ein.
| Oktalwert | rwx | Berechtigung |
|---|---|---|
0 | --- | keine Rechte |
1 | --x | Ausführen |
2 | -w- | Schreiben |
3 | -wx | Schreiben + Ausführen |
4 | r-- | Lesen |
5 | r-x | Lesen + Ausführen |
6 | rw- | Lesen + Schreiben |
7 | rwx | Lesen + Schreiben + Ausführen |
Sonderbits und vorhandene Verzeichnisrechte
Ein kleines s oder t bedeutet, dass auch das jeweilige Ausführungsbit aktiv ist. Ein großes S oder T zeigt ein Sonderbit ohne Ausführen. Auf Linux-Verzeichnissen dient setgid der Gruppenvererbung; sticky beschränkt das Entfernen und Umbenennen von Einträgen. Die Wirkung auf ausführbare Dateien hängt von Systemregeln ab.
GNU chmod kann bestehende setuid/setgid-Bits eines Verzeichnisses bei Zahlen mit höchstens vier Stellen erhalten. Zum ausdrücklichen Löschen dokumentiert GNU etwa chmod 00755 -- 'directory'. Der Rechner nimmt drei- oder vierstellige Moduswerte an und simuliert keinen bestehenden Dateisystemzustand.
Welcher Modus passt zum Zweck?
| Oktalwert | rwx | Rechte im Detail |
|---|---|---|
644 | rw-r--r-- | Eigentümer darf lesen und schreiben; Gruppe und andere nur lesen. Keine Ausführungsbits. |
755 | rwxr-xr-x | Eigentümer erhält alle normalen Rechte; Gruppe und andere dürfen lesen und ausführen/suchen. |
600 | rw------- | Normale Lese- und Schreibrechte nur für den Eigentümer einer Datei. |
700 | rwx------ | Nur der Eigentümer darf das Verzeichnis auflisten, ändern und durchsuchen. |
2775 | rwxrwsr-x | Gruppenschreibrecht mit setgid zur Gruppenvererbung auf Linux-Verzeichnissen. |
1777 | rwxrwxrwt | Gemeinsames Verzeichnis mit sticky als zusätzlicher Lösch- und Umbenennungsbeschränkung. |
chmod 644 -- 'report.txt'
chmod 755 -- 'deploy.sh'
chmod 700 -- 'private-directory'Fragen zu chmod
Wann brauche ich 755 statt 644?
755 setzt zusätzlich die Ausführungsbits aller drei Klassen. Das kann für ein ausführbares Skript oder zum Durchqueren eines Verzeichnisses passen. Normale Daten brauchen nicht automatisch Ausführungsrechte.
Kann ich drwxr-xr-x einfügen?
Ja. Das erkannte Dateityp-Präfix wird ignoriert, die Rechte ergeben 755. Der Dateityp wird dadurch nicht geändert. Entferne ACL-Zusätze und andere Spalten aus der Ausgabe.
Löst 777 jedes Permission-denied-Problem?
Nein. 777 gibt allen Klassen Lesen, Schreiben und Ausführen, aber andere Zugriffskontrollen können weiter blockieren. Prüfe Eigentümer, passende Klasse und Elternverzeichnisse, bevor du Rechte verbreiterst.
Versteht der Rechner u+x?
Relative chmod-Ausdrücke werden nicht eingelesen. Nutze Oktal oder rwx. Wenn du nur ein Bit ergänzen willst, kann u+x als eigener Befehl gezielter sein als das Ersetzen der normalen Rechte durch einen Zahlenwert.
Wird der Befehl automatisch ausgeführt?
Nein. Berechnung und Kopieren passieren im Browser. Der Befehl betrifft einen wörtlich zitierten Pfad und enthält keine Rekursion. umask für die Neuanlage von Dateien ist eine andere Berechnung.
