Настройка прав доступа для веб-сервера apache (httpd)

Сейчас достаточно распространена практика покупки выделенного сервера под свои сайты. Однако, не все задумываются о правах доступа к файлам и папкам ваших сайтов. Важно настроить права так, чтобы веб сервер мог исполнять скрипты, чтобы ftp пользователи могли просматривать/загружать/создавать файлы на веб сервере.

Для примера возьмем виртуальный хост, находящийся в директории /var/www/test.com/public_html
Сервер в данном случае на Centos со стандартной группой и пользователем apache:apache (в debian подобных системах это www-data:www-data) для сервера httpd (в debian — apache2).

  1. Сменим права директориям:

    Для директорий, в которые веб сервер должен иметь возможность записывать файлы — необходимо выставить права 770.
  2. Файлам:

    Для файлов, которые может изменять сервер необходимо поставить права 660

Хорошая практика — у нас есть два пользователя: от одного запущен веб-сервер, а другой занимается разработкой и обслуживанием сайта. Оба пользователя размещаются в одной группе.

Если хочется более универсальное решение, то можно права задать таким образом:

Владельцем всех файлов, кроме созданных веб сервером, должен быть пользователь_администратор:общая_группа.

Можно восрользоваться командой

Команда полезна тем, что при создании новых директорий и файлов внутри /var/www, им будет присваиваться группа директории родительской категории.