Назад |
Перейти на главную страницу
Настройка разрешений Unix / linux для виртуального хостинга с Apache
Я настраиваю сервер из чистой установки CentOS 5. Какова наилучшая структура разрешений (пользователи, группы, разрешения unix) для запуска одного экземпляра apache для нескольких пользователей? В идеале он должен удовлетворять таким требованиям:
- Веб-сайты каждого пользователя хранятся в подкаталоге их домашнего каталога. Пользователи могут редактировать файлы и разрешения.
- Apache может читать сайты всех пользователей.
- Ни один пользователь не может читать файлы сайта других пользователей.
Дополнительный вопрос: как добавить PHP, и / или Perl, и / или Ruby в Apache, не разрешая пользователям получать доступ к файлам других пользователей?
Вот что я сделал:
- chown имя_пользователя: www-data каталог_сайта
- chmod g + s website_dir # это создает новые файлы / каталоги в этом каталоге, принадлежащие пользователю www-data (стандартный пользователь веб-сервера Debian)
- Затем любой созданный пользователем файл, доступный для чтения группой, может быть доступен веб-серверу, и пользователь может выполнить команду chmod g + w, если он хочет, чтобы каталог / файл также был доступен для записи веб-сервером (например, configs / upload и т. Д.)
Обратной стороной этого является то, что пользовательские www-data запускают все сценарии, поэтому пользователь может получить данные другого пользователя, используя php / ruby / perl / все, что запущено на веб-сервере.
Следующим шагом будет использование чего-то вроде mod_suphp или mod_suexec для запуска пользовательских скриптов с правами этого пользователя.