Есть сервер, на котором живут пять сайтов. Естественно, внешний айпишник у него один и сайты все пингуются по нему, а дальше уже апач по вхостам все разносит. Моих сайтов из этих пяти только два, а остальные принадлежат моим друзьям. Хочу сделать так, чтоб они могли заходить по ftp в свои папки и редактировать там свои сайты, как их душам угодно... Соответственно простой установкой ProFTPd дело не обошлось, так как при подобном обращении:
user1:password1@vhost1.domain.com и user1:password1@vhost2.domain.com юзеры попадают в одну и ту же домашнюю папку user1. Надо как-то объяснить ProFTPd про виртуальные хосты. В дефолтном конфиге был пример типа:
<div class='indent'>
<Virtual Host vhost1.domain.com>
#put your config here
</Virtual Host>
</div>
Но никаких подробностей найти не удалось.
Жду советов, заранее спасибо!
Bregor Esgarothian: ProFTPd
Хм... А как тогда у хостеров такие фишки прокатывают, когда реальных IP хорошо если с десяток, а сайтов сотни?
Например у Динохоста(www.dinohost.ru) стоит именно ProFTPd(сам у них хостился раньше) и нужная мне схема отлично работает... Но только у них-то не спросишь.... :(
Тут грабли вот в чем - они у тебя и будут поподать на первый виртуал, если он у тя в ДНС указан первым.
Более того для того для такой реалиции под каждый виртуальный фтп-хост тебе потребуется выделять отдельный ИП-адрес в противном случае, ты ничего из этого не получишь, т. к. особенность протокола. В отличии http различает хосты не по именам, а ИП-адресам.
How can I limit users to a particular directory tree?
For general open access you can use an <Anonymous> directive context block, possibly in combination with a UserPassword/AnonRequirePassword directive.
However if you wish to jail an entire group (or groups) of users, you can use the DefaultRoot directive. DefaultRoot lets you specify a root jailed directory (or "~" for the user's home directory), and an optional group-expression argument which can be used to control which groups of users the jail will be applied to. For example:
...
<VirtualHost myhost.mynet.foo>
DefaultRoot ~
...
</VirtualHost>
This creates a configuration where all users who log into myhost.mynet.foo are jailed into their home directories (cannot chdir into a higher level directory).
Чет не пойму, а зачем еще виртуальные хосты какие-то на ftp сервере? Я делал то же самое с другим ftp сервером - pure-ftpd, но суть не должна меняться вроде. В системе создаются аккоунты юзеров - обыкновенные записи в /etc/passwd. С шеллом /bin/false и разными домашними директориями. В каждой из домашних директорий создается еще один директорий типа public_html в котором каждый из юзеров держит свой сайт. Через апача разруливаются виртуальные хосты для каждого юзера, либо можно вообще без виртуальных хостов если юзера согласны, чтобы их сайт выглядел так: http://.../~имя_юзера. преимущества этого метода в том, что не надо переруливать dns CNAME под виртуальные хосты. В настройках ftp указываем chroot для каждого юзера в их домашние директории, и все. Все заходят только в свои директории и рулят только своими сайтами и только по ftp, шелла они не получат. Если интересует более подробное описание конфигов для апача и pure-ftpd в этом случае, могу отписать тут.
Хех - основная заморочка вот в чем:
Есть домены:
domain1.server.tld
domain2.server.tld
domain3.server.tld
Есть юзеры:
user1-pass1-/home/user1
user2-pass2-/home/user2
user3-pass3-/home/user3
которым соответственно принадлежат вышеозначенные сайты.
Обламывает обойденная хостером ситуация:
ftp://user3:pass3@domain2.server.tld
пускает в /home/user3, хотя он к domain2 никаким боком.....
Вопрос - как хостер это обходит?
Последние комментарии
10 лет 1 неделя назад
10 лет 20 недель назад
10 лет 30 недель назад
10 лет 31 неделя назад
11 лет 20 недель назад
11 лет 20 недель назад
11 лет 20 недель назад
11 лет 21 неделя назад
11 лет 21 неделя назад
11 лет 22 недели назад