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

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

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

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

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

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

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

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

  1. sakal:

    Всегда пользовался способом тобой описанным, но недавно узнал вот о таком:

    chmod -R a=rX,u+w ./*

    src: http://xtips.ru/?act=tview&tid=180

    • nuty:

      Интересный способ))

    • Dust:

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

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

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

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