У меня был собственный частный VPS, которым управляла моя служба хостинга, и теперь я перехожу на облачный сервер, где мне нужно управлять всем сам. Я пытаюсь имитировать их безопасную настройку, которая у них была. На моем старом и новом сервере мои пользователи / веб-сайты настроены, как указано ниже. Мои виртуальные хосты Apache имеют их как DocumentRoot, поэтому они работают прямо сейчас:
/home/user1/site1.com
/home/user1/site2.com
/home/user2/site3.com
/home/user3/site4.com
.....
В основном на моем старом VPS веб-сервер Apache мог запускать все эти сайты, и в то же время, у каждого пользователя не было доступа к файлам другого пользователя (в случае взлома одного сайта хакер не мог получить доступ к остальным сайтам). Я заметил, что у каталогов было 755 разрешений, а у файлов 644.
Как я сейчас настроил, все в этих пользовательских каталогах находится в группе www-data, каталоги имеют права доступа 775 и файлы 664. Файлы с веб-сайта одного пользователя доступны с веб-сайта другого пользователя (не очень хорошо).
Как мне настроить разрешения для имитации моего старого VPS, описанного выше?
РЕДАКТИРОВАТЬ: После дальнейшего изучения я должен отметить, что я настроил свой сервер для запуска http / 2. Я обнаружил, что Apache MPM-ITK на самом деле требуется для разделения vhosts на основе пользователя / группы. Однако Apache MPM-ITK несовместим с http / 2. Я не уверен, что мне еще делать, кроме как отказаться от http / 2, чтобы получить мод mpm-itk?
Это может показаться натяжкой, но вы можете сделать это с помощью некоторых простых разрешений Linux.
Если каталоги пользователей принадлежат группе пользователей / пользователей (например, user23: user23), вы можете обойтись добавлением пользователя apache в группу пользователей.
usermod -a -G user23 apache
В usermod
команда добавит (-a) следующую группу (-G) к пользователю (в приведенном выше случае, Apache).
Еще не пробовал. Обычно я бы добавил это как комментарий вместо ответа, но у меня должно быть 50 представителей, чтобы прокомментировать -_-