Советы PHP-разработчика

Блог содержащий короткие заметки касающиеся программирования для web.

Изменение прав доступа только для файлов или для директорий на linux

Изменение прав доступа только для файлов или для директорий на linux

Иногда возникает необходимость изменить права для всех директорий или файлов внутри заданной директории. Например, если в процессе извлечения файлов из архива проставляются неверные разрешения или по какой-либо другой причине.

Для решения данной задачи можно использовать команду find совместно с exec chmod или xargs chmod. Вторая более предпочтительна, так как она производительнее. Именно ее мы и будем использовать.

Для изменения разрешений для всех файлов внутри директории /path/to/directory на 644 необходимо выполнить следующую команду:

find /path/to/directory -type f -print0 | xargs -0 chmod 644

Аналогичная команда для выставления прав на директории:

find /path/to/directory -type d -print0 | xargs -0 chmod 755

Если есть необходимость выполнить команду от суперпользователя, то необходимо добавить sudo в обе части команды. В данном случае она преобразится в

sudo find /path/to/directory -type f -print0 | sudo xargs -0 chmod 644
  • 2015-09-23 08:48:06