Snow schrieb:
Bisher hatte ich auch gedacht, dass chmod -R die Rechte aller Dateien auch gleich mitändern würde. Vielleicht gilt das aber nur für Dateien, die nachträglich in dieses Verzeichnis gelegt werden.
Bitte keine Chaos-Theorien.
Das ist sicherlich nicht so.
Vielleicht postest du mal EXAKT den Befehl, der nicht funktioniert, und hängst ein ls -la (oder ls -laR) an - zumindest in Ausschnitten.
Anbei mal ein paar Hint:
1. User dürfen logischerweise nur Rechte von Dateien ändern, die ihnen auch gehören - wäre ja sonst ein toller Hack.
2. Verwende "-v", wenn du Probleme hast. Du bekommst dann eine Ausgabe, was geändert worden ist.
3. Wenn dir Oktalzahlen zu schwierig sind, dann verwende Kürzel:
a) ändern für wen? u=user (also Eigentümer), g=group, o=others
b) Recht setzen (+) oder entziehen (-) ?
c) welches recht? r=read, w=write, x=eXecute (Für Ordner: execute= reingucken und auflisten)
Also:
chmod u+x = Erlaube(+) dem Eigentümer(u) das ausführen(x).
chmod ugo+x = Erlaube(+) jedem (ugo) das ausführen(x).
chmod o-r = Verbiete(-) allen anderen (o) das lesen(r).
4.
Schwierig ist der Umgang mit "-R" machmal deswegen, weil man für Dateien und Ordner völlig verschiedene Rechte haben will, -R aber keinen Unterschied macht. Dann helfen solche Konstrukte:
find ./ -type f -iname "*.pl" -exec chmod ugo+rx "{}" \; -print
Heisst:
Finde (find) im aktuellen Ordner (./) alles, was eine Datei ist (-f = file, also keine Ordner, Links, Devices,...) und deren Name auf .pl endet (-name "*.pl"), ohne auf Groß-Kleinschreibung zu achten (-iname statt -name).
Für alle gefundenen Dateien ("{}") führe aus: (-exec) chmod ugo+x. Der exec-Befehl hat am Ende ein \;, alles folgende sind dann wieder Parameter für find: -print gibt die geänderten Files aus.
Praktisch sind dabei Begrenzer für die Ordnertiefe:
-mindepth 1 -maxdepth 1
find ./ -type f -iname "*.pl" -mindepth 1 -maxdepth 1 -exec 755 "{}" \; -print
...würde im aktuellen Ordner alle perl-Scripte auf den üblichen Wert setzen, aber nicht in Unterordner reinsteigen, und es würde nicht an Ordnern(!) rummfummeln, die zufälligerweise "irgendwas.pl" heissen.
Alles weitere: man chmod. Read That FIne Manual.
Gruß, Ratti
Disclaimer: Alles ist freihändig eingetippt. Rechtschreib- und Denkfehler gelten als Lernhilfe.