Хостинг, права на файлы

Мы иногда задаёмся вопросом, а какие права на файлы нужны для нашего сайта?

Все мы иногда задаёмся вопросом, а какие права на файлы нужны для нашего сайта?

Некоторые делают права 777 на всё, и работаю дальше, с идеей что: "Ну работает же!"

В большинстве случаев наш сайт может работать в нескольких режимах:

  1. Nginx + PhpFPM
  2. Apache + mod_php

и в разных режимах будут разные права безопасности, спросите почему:

В режиме «Nginx + PhpFPM» статические файлы обрабатывает Nginx, а PHP обрабатывает PhpFPM.

Nginx всегда работает от имени одного пользователя

PhpFPM работает от имени владельца сайта (если хостинг правильно настроен)

Итого:

В режиме Nginx + PhpFPM нужны следующие права:

На директории: 2751 или 2771

  1. Первый бит: (2)775 или (2)771 задаёт вновь созданный каталог будет иметь группу как у родителя и группу для каталога нельзя поменять;
  2. Второй и третий бит: 2(77)1 или 2(75)1 задает права владельца и группы, но лучше права выдавать по мере необходимости, т.е. 2751
  3. Четвёртый бит: 275(1) задает права для всех остальных, в случаи с каталогом, бит 1 нам дает право читать файл или выполнять его, но мы не можем получить список файлов в директории. Т.е. только по прямым путям мы можем получить доступ к файлу

На файлы: 0644 или 0664

  1. Первый бит: (0)644 или (0)664 сбрасывает супербит (специальные пава)
  2. Второй и третий бит: 0(64)4 или 0(66)4 задает права владельца и группы, но лучше права выдавать по мере необходимости, т.е. 0644
  3. Четвёртый бит: 064(4) задает права для всех остальных, т.е. для чтения пользователем от имени которого работает Nginx.

Это важно!!!

Надо не забывать, что конфигурационному файлу php необходимо задавать права 0600 или 0640, чтобы кроме владельца или группы не смог прочитать доступы к базе данных.

В режиме «Apache + mod_php»: Всё работает от имени пользователя и его группы поэтому:

На директории: 2750 или 2700

На файлы: 0640 или 0600

 

Если у вас есть с система мониторинга, то лучше настроить мониторинг прав конфигурационных файлов.