3

Отдельно меняем права на файлы и папки

При работе с данными сервера, через консоль терминала, очень часто возникает потребность изменить права на файлы и папки. Вот только стандартный функционал команды chmod не даёт нам возможности отделить файлы от папок.

Как же быть, если файлов и папок много, права на файлы нужны 0644, а на папки 0755, например? Есть решение, достаточно несложное:

find ./ -type f -exec chmod 0644 {} \;
find ./ -type d -exec chmod 0755 {} \;

В примере мы воспользовались силой команды find, и её черезвычайно полезной опцией exec. В первой строке ищутся файлы и, с помощью опции exec, заменяются права доступа к ним; во второй строке, права устанавливаются для директорий.

Рекурсивно, быстро, разборчиво!)))

Инструкции по теме:

3 Comments

    • Способ полезный, но пример некорректный.
      Опция -Х устанавливает х аттрибут, если файл является дирректорией или если он уже содержит хотя бы один х аттрибут. То есть «сбросить» все права таким способом нельзя.
      Например, если файл был 0744, после выполнения приведённой команды он станет 0755.

      Сбросить права можно следующим образом:
      $ chmod -R 0644 ./* && chmod -R +X ./*

      Естественно после этого все файлы, которые были исполняемыми, перестанут быть исполняемыми.

Добавить комментарий