Массовое изменение прав на файлы по маске (find,chmod)

просмотров: 642119 октября 2011 года

Если кому-то уже доводилось переносить сайт с одного сервера на другой, то он поймет, на сколько тут полезен будет SSH доступ к консоли.

Особенно если сайт не мелкой конторы, а какой-то портал с кучей загруженных файлов и картинок.

Для примера условимся, что в папке ./images/uploads лежит куча файлов и папок, у которых сейчас права доступа только на чтение. Для выставления нужных нам прав, воспользуемся коммандами:

find ./images/uploads -type f -exec chmod 0666 {} \;
find ./images/uploads -type d -exec chmod 0777 {} \;

Разбирая что произошло, можно понять, что файлам (-type f) мы выставили права на чтение/запись (0666), а папкам (-type d) мы выставили права на чтение/запись/выполнение (0777).

Эта комманда удобна тем, что она выполняет каждую отдельную комманду chmod, к каждому отдельному файлу, благодаря чему, ее можно применять к сколько угодно большому количеству файлов.

Если файлов не много в папке, то можно воспользоваться следующими коммандами:

find ./images/uploads -type f | xargs chmod 0666
find ./images/uploads -type d | xargs chmod 0777

В этом случае, строится строка для комманды chmod, сама комманда выполняется 1 раз.

Что скажем?