Думаю, данный «рецепт» будет полезен для новичков, которые не знают как изменить права и атрибуты только файлов или только папок, и опытным пользователям Linux / BSD и прочих Unix, которые запамятовали как это делается. Себя я отношу к последним.
Изменить владельца директории и всего, что в ней есть можно используя ключик -R утилиты chown:
chown user:group -R /путь/к/папке
Аналогично с правами, только там утилита — chmod.
И всё бы хорошо, да только чтобы можно было «пройти» по директории, нужно право на «исполнение» директории, а вот файлы мы не все хотим делать исполняемыми. То есть вариант chmod 755 -R /var/www , например для сайта, не пройдёт. Значит надо назначить права отдельно для файлов и отдельно для папок. Это можно сделать вручную, но это самый дурацкий вариант. Можно написать скрипт, но всё уже придумано за нас.
Стандартный способ — использовать find с ключом «-exec», его и применим:
find /путь/к/папке -type f -exec chmod 644 {} \;
— изменяем права на файлы (только) в нужной директории (и поддиректориях).
find /путь/к/папке -type d -exec chmod 755 {} \;
— теперь — для папок.
Да, всё _так_ просто
А, что говорить про нас, простых юзерах? Как-то так вышло, что вроде бы и не надо всех этих премудростей, да и правильно — наверное. Потому и забывается…
Именно! Забывается. И сам бы давно забыл, если бы не программировал без IDE, да не приходилось администрировать 2 Debian’а, да 2 FreeBSD. Там — уж извиняйте, GUI — нема… А задачка это встаёт частенько.
Как говаривали мои рабочие, получая задания: «кто на что учился»…