Dem ein oder anderen mag die Situation vielleicht bekannt vorkommen. Nach dem Kopieren oder Entpacken von Dateien bemerkt man, dass die Dateirechte oder der Besitzer sich geÀndert haben.

Die Ursache ist schnell gefunden, man hat beim Entpacken Optionen wie –same-permissions und –same-owner vergessen mit anzugeben. Also einfach erneut das Archiv mit den richtigen Optionen entpacken und die Sache ist erledigt.

Was aber tun, wenn man zwischenzeitlich bereits Änderungen an den betroffenen Dateien vorgenommen hat? Nochmals das Archiv zu entpacken hĂ€tte den unangenehmen Nebeneffekt, dass man auch sĂ€mtliche Änderungen wieder neu vornehmen mĂŒsste, was durchaus reichlich Zeit beanspruchen kann.

Die erste Anlaufstelle in einem solchen Fall: Manpages lesen. Genauer gesagt die von chmod oder chown.
Schnell richtet sich unsere Aufmerkerksamkeit auf die Option –reference. Damit lassen sich die Rechte von einer Referenzdatei ĂŒbertragen. Das erspart einem zumindest die Arbeit die Rechte manuell anzugeben.

Was bleibt, ist das Problem, dass man unter UmstÀnden sehr viele Dateien mit neuen Rechten versehen muss.
Zum GlĂŒck befinden wir uns auf einer Linuxshell, die auch fĂŒr diesen Fall eine Lösung fĂŒr uns bereithĂ€lt:

# for i in `find / -path ‚/mnt‘ -prune -o -name ‚*’`; do chmod –reference=/mnt$i $i;done

Im oben gezeigten Beispiel werden alle unter / liegende Dateien mit den Rechten von der unter /mnt gemounteten Referenzfestplatte versehen. Analog dazu funktioniert dieser Befehl natĂŒrlich auch mit chown, falls man die Dateibesitzer Ă€ndern möchte.