Kleine Hilfe bei Shellscript:
-
Ich möchte alle Rechte ab einem Verzeichnis setzen:
# Alle Dateien nur lesend. chmod 0400 /mnt /mnt/* -R # Verzeichnisse auch ausfuehrbar. for file in find /mnt -type d do chmod 0500 "$file" done
Für Dateien nur Leserechte, Verzeichnisse dürfen auch ausführbar sein. Die for Schleife funktioniert aber nicht. Wie macht Ihr es?
Viele Grüße
Peter
-
probier mal
for file in `find /mnt -type d` do #... done
-
peterfarge123 schrieb:
# Alle Dateien nur lesend. chmod 0400 /mnt /mnt/* -R # Verzeichnisse auch ausfuehrbar. for file in find /mnt -type d do chmod 0500 "$file" done
Entweder so:
for file in `find /mnt -type d` do chmod 0500 "$file" done
oder so (schöner):
find /mnt -type d -exec chmod 0500 '{}' \;
-
chmod -R u=rX /mnt
diese for i in `backquote`-Variante ist auch nie gut... Abgesehen von der find-exec-Option, kommt das so besser:
find ...|while read file; do ...; done
ist aber auch nicht 100%ig sicher...
-
Erstmal vielen Dank.
Mit den `` funktioniert es jetzt.
Weil einige der Verzeichnisse Sonderzeichen beinhalten mußte ich auf die exec Varinate umsteigen.Ich muß aber weiterhin alle Dateien zweimal durchlaufen; im ersten Durchgang die Dateiattribute setzen, im zweiten Durchgang die Verzeichnisattribute setzen. Geht das auch in einem Rutsch?
-
lies meinen Beitrag nochmal. Besonders die Überschrift und die erste Zeile...
-
Oh... habe ich übersehen. Grpße X setzt das Execute Bit für Verzeichnisse und für Dateien die für andere User bereits ein x haben.
Vielen Dank
Peter