Фотогалереи

Услуги

Помощь при использовании сайта

Права на загружаемые файлы в Drupal

В Drupal есть модуль Upload служащий для быстрого прикрепления файлов к ноде. Все бы ничего, но по умолчанию права на эти загруженные файлы в sites/default/files устанавливаются 600 (rw-------).

Меня это не устаивало по двум причинам. Во первых интерперетатор PHP у меня это PHP-FPM, а веб сервер nginx которые работают от разных пользователей и даже не имеют общей группы. Следовательно после upload'a веб сервер не мог читать прикрепленные файлы, а значит и скачать их было невозможно без изменения прав. Вторая причина это банальное превышение прав. Зачем приложенному файлу иметь права на запись? Ему достаточно чтения.

Итак для того чтобы по умолчанию права на создаваемые файлы от пользователя от которого запущено PHP были такие какие хотите вы нужно воспользоваться umask. Обычно в unix-like системах umask по умолчанию - 022 что означает что директории будут создаваться с правами 755 (drwxr-xr-x),а файлы с правами 644 (rw-r--r--). Нам нужно просто добавить нужный umask в init скрипт который запускает у вас PHP и обычно находящийся в /etc/init.d/php-fpm. Открываем этот скрипт и просто добавляем во вторую строку нужный umask. Например umask 222. Все, теперь все файлы создаваемые PHP будут иметь права 444 по умолчанию.

P.S. Если Вы используете оптимизацию css и javascript, то umask должен быть 0022.

0
Голосов пока нет
Ваша оценка: Нет