[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: хост для простых сайтов на апаче



Денис пишет:
> Надо давать "ненастоящим" пользователям (которых нет в /etc/passwd)
> возможность создавать свой собственный сайт типа name based virtual host
> на апаче.

  Когда передо мной встала аналогичная задача, я сделал так:
- создал в системе группы из соображений "одна группа -- один сайт"
- создал в системе по юзеру для каждого сайта (в домашнем каталоге log
для логов и public_html для сайта соответственно)
- создал в системе юзеров из соображений "один юзер -- один человек"
- выставил всюду права -rw-rw---- для файлов и drwxrws--- для каталогов
- для сайтов, с которыми работают несколько человек -- добавил нужных
юзеров-людей в группы сайтов (права на запись есть у группы, а заодно, в
качестве дополнительной фичи, по владельцу можно понять, где чьи косяки)
- добавил www-data во все группы -- чтобы смог прочесть апач
- каждому пользователю сделал bind домашнего каталога каждого сайта, с
которым он должен работать, в подкаталоги ~/www/

  Про ACL, в принципе, думал, но связываться не стал из-за отсутствия
более-менее серьёзного опыта работы с ним.

  Нужно было также организовать MySQL-базы. Но тут проще: по одному
MySQL-юзеру на каждый сайт + по MySQL-юзеру каждому человеку (с доступом
к нужным базам) -- для удобства отладки и бекапов.

  Так что тут задача разграничения доступа решалась через bind, а
каждому (как сайту, так и человеку) выдавался свой аккаунт. Доступ по
ssh/ftp -- по вкусу.

  Для управления всем этим хозяйством было на скорую руку набросано
несколько кривоватых скриптов на баше (добавить сайт, добавить человека,
дать человеку доступ к сайту и проч.).

  Из косяков: некоторые криво написанные движки для сайтов ругались на
"необычные" для них права доступа (судя по README хотели себе аж 777, не
меньше, или просто требовали доступ для "других" хотя бы на чтение). Но
эти движки потом как-то сами собой отпали и не стали использоваться --
они и по другим параметрам слишком кривые были.

  Сейчас там полсотни сайтов, шесть живых человек.
  Что немного удручает, так это
samson@www:~$ mount | grep bind | wc -l
71

  Да и вообще в целом как-то не очень стройно получилось, на мой взгляд.

  Сейчас думаю, как можно всё переделать лучше. Есть идеи?

--
 Dmitri Samsonov


Reply to: