Назад | Перейти на главную страницу

Настройка разрешений Unix / linux для виртуального хостинга с Apache

Я настраиваю сервер из чистой установки CentOS 5. Какова наилучшая структура разрешений (пользователи, группы, разрешения unix) для запуска одного экземпляра apache для нескольких пользователей? В идеале он должен удовлетворять таким требованиям:

Дополнительный вопрос: как добавить PHP, и / или Perl, и / или Ruby в Apache, не разрешая пользователям получать доступ к файлам других пользователей?

Вот что я сделал:

  1. chown имя_пользователя: www-data каталог_сайта
  2. chmod g + s website_dir # это создает новые файлы / каталоги в этом каталоге, принадлежащие пользователю www-data (стандартный пользователь веб-сервера Debian)
  3. Затем любой созданный пользователем файл, доступный для чтения группой, может быть доступен веб-серверу, и пользователь может выполнить команду chmod g + w, если он хочет, чтобы каталог / файл также был доступен для записи веб-сервером (например, configs / upload и т. Д.)

Обратной стороной этого является то, что пользовательские www-data запускают все сценарии, поэтому пользователь может получить данные другого пользователя, используя php / ruby ​​/ perl / все, что запущено на веб-сервере.

Следующим шагом будет использование чего-то вроде mod_suphp или mod_suexec для запуска пользовательских скриптов с правами этого пользователя.