У меня есть архив, который заархивирован кем-то другим, и я хочу автоматически, после его загрузки, изменить ветвь файловой системы в извлеченных файлах, чтобы получить доступ на чтение. (Я не могу изменить способ создания архива).
Я просмотрел эту тему: chmod: как рекурсивно добавлять разрешения выполнения только к файлам, которые уже имеют разрешение на выполнение, как в некоторых других, но без радости.
Каталоги изначально имеют несколько, но все неправильные флаги, они могут выглядеть как:
drwx------
d---r-x---
drwxrwxr-x
dr--r-xr--
Это лишь те немногие, что я обнаружил до сих пор, но может быть больше.
find
при попытке поиска в каталоге без разрешения x
, и поэтому не передает его в chmod
. То, что я делал до сих пор, - это изменить права на родительский каталог, затем перейти в дочерние каталоги и сделать то же самое для них и так далее. Но это много ручной работы. Нет ли способа сделать это автоматически?
т.е. как я это делаю сейчас:
делать:
$ chmod -R +x
$ chmod -R +r
пока я не получу ошибок, затем
$ find -type f -exec chmod -x {} +
Но должен быть лучший способ.