Здравствуйте форумчане! Опять я задаю вопросы по организации мультисайтинга.
К примеру есть 2 сайта на одном движке, по принципу отдельная база данных на каждый сайт.
В папке sites 2 папки:
ivanov.sitename.ru
petrov.sitename.ru
В каждой папке есть
files/
tmp/
Иванов и Петров держат свои сайты на субдоменах. Иванову нужно обязательно дать:
- user №1 пароль от сайта ivanov.sitename.ru
- FTP доступ в папку sites/ivanov.sitename.ru
Вопрос: как сделать, чтобы Иванов не смог управлять файлами Петрова?
Ведь он может зайти в настройки файловой ситемы Drupal-а и заменить там sites/ivanov.sitename.ru/files
на
sites/petrov.sitename.ru/files
Комментарии
Никак. Пользователей/сайты нужно разносить по разным учеткам.
В качестве плохонького варианта, для тех кто не будет совать нос дальше админки, можно папки для файлов сделать следующего вида - там sites/ivanov.sitename.ru/[password]/files - где password - некий уникальный набор случайных символов.
Я думаю, что этот password не составит большого труда узнать, если посмотреть картинки на сайте.
можно жёстко прописать настройки в settings.php
<?php
switch ($_SERVER['HTTP_HOST']) {
case 'ivanov.sitename.ru': $conf['file_directory_path'] = 'sites/ivanov.sitename.ru/files'; break;
case 'petrov.sitename.ru': $conf['file_directory_path'] = 'sites/petrov.sitename.ru/files'; break;
}
?>
Это нужно написать в том settings.php, который в sites/all ?
Ведь Иванову нужно обязательно дать доступ в sites/ivanov.sitename.ru, а там свой settings.php
тогда разнести по разным settings.php
И куда этот settings.php положить, чтобы Иванов его не видел?
Разумеется, любой из способов которые можно придумать в этом случае будет основан на сокрытии информации о фактическом расположении файлов. Но создав с ноду с php-содержимым, любопытный Иванов легко получит на руки всю интересующую его информацию из папок мультисайта.
Может на хостинге можно как-то указать, что файлы из папки sites/ivanov.sitename.ru/ доступны только с сайта ivanov.sitename.ru ?
Хостинг не знает о существовании ivanov.sitename.ru, он знает только что запросы на *.sitename.ru, нужно отдавать движку. С точки зрения вэб-сервера мультисайты друпала это ОДИН сайт, со всеми вытекающими последствиями, типа невозможности разграничения доступа.