Страница 1 из 3
shared hosting - разграничение прав
Добавлено: 25 авг 2007, 21:53
tes+or
проблема выглядит неразрешимой..
мы имеем множество юзерских дир, где лежат htdocs с разрешенными на выполнение php скриптами, и это как минимум.
каждый юзер имеет доступ только к своей дире, к другим он не имеет доступа даже на чтение - это выполнимо.
но! апач должен иметь доступ ко всем файлам как минимум на чтение, а обычно на выполнение и в отдельных случаях на запись.
что это значит. это значит что установив у себя вебшелл, или хотябы даже сделав в пхп скрипте fopen(../../sosed/htdocs/mysql_conf.php) юзер тырит у соседа все что угодно, в т.ч. пассы к мускулу, а это уже открывает пути для дальнейших оч серьезных злодейств.
единственный путь этого избежать, как мне видится, это сделать так, чтобы в зависимости от того, с каким vhostом работает апач, он принимал права соотвествующего юзера и от них исполнял этот скрипт. я был бы очень счастлив если бы это было возможно, поскольку не помогает даже запуск апача каждым из юзеров, т.е. адресс и порт один, а апачей много.
и вирутальные машины не катят, нехочу платить за диапазон, а если и платить, то в другом проекте, сейчас я задумал бесплатный шаред для некоторых категорий людей.
Добавлено: 25 авг 2007, 22:18
tes+or
[22:10:37] <endless> А, ещё uid генерь.
[22:10:46] <tes> а?
[22:11:01] <endless> Типа 8 символов из [a-zA-Z] и ещё 4 из [0-9[
[22:11:14] <endless> И запрети юзерам говорить это друг другу.
[22:11:29] <tes> и что это будет?
[22:11:43] <endless> Т. е. чтобы юзердира была /home/OeaOeuZLO6666/
[22:11:50] <tes> о!!!
[22:11:55] <tes> да!
будут варианты поостроумнее?
Добавлено: 26 авг 2007, 12:12
tes+or
может есть какой-то модуль для апача, который разрешает доступ только к определенной части ФС, в зависимости от того, из какой части ФС был запущен скрипт?
Добавлено: 26 авг 2007, 14:36
tes+or
уже нашел. есть патч для апатча, называется mpm-peruser, он накладывается автоматом в моей генте по USE флагу одноименному. компилим с ним, конфигурим и апач форкаецца под нужным юзером в зависимости от vhosta, красота короче.
но он нифига не супортится, считается нестабильным и не готов для продакшна, по словам что авторов, что дистрибутивщиков.. но у меня работает.. тьфу-тьфу.
хм.. как бы научится и сделать этот патч лучше? вседь навернется же и буду я потом волосы на всех местах рвать.. вот буду обновлять апач, а он ладно еще если не скомпилится, а если скомпилится, старые бинари удалятся а новые крэшнутся? вот что я делать буду?
Добавлено: 26 авг 2007, 15:17
bobrik
Не думаю, что будут крешится, если апдейты не сильно мажорные
Добавлено: 26 авг 2007, 16:21
tes+or
One way to use the suEXEC wrapper is through the SuexecUserGroup directive in VirtualHost definitions. By setting this directive to values different from the main server user ID, all requests for CGI resources will be executed as the User and Group defined for that <VirtualHost>. If this directive is not specified for a <VirtualHost> then the main server userid is assumed.
думаю стоит попробывать. покрайней мере это не костыль.
Добавлено: 26 авг 2007, 17:33
tes+or
нет, он работает только с CGI...
Добавлено: 26 авг 2007, 18:01
Victor Gr.
Добавлено: 26 авг 2007, 18:14
tes+or
все это говорит о том, что не о чем не говорит. буду юзать то что работает и ждать лучших времен. если кто что узнает - кидайте сюда.
Добавлено: 26 авг 2007, 22:24
Llama
блин.
это же элементарно делается

apt-get install libapache2-mod-suphp
adduser www-data hostinguser1
adduser www-data hostinguser2
adduser www-data hostinguser3
после этого можно ставить на файлы 640 и 750 - на каталоге

Добавлено: 27 авг 2007, 12:52
tes+or
так это же только пхп, а люди захотят кто перл, кто питон, кто яву может даже.
Добавлено: 29 авг 2007, 19:53
Llama
tes+or, а все кроме php в счастью только посредством cgi либо вообще само по себе... Это только php такое проблемное дерьмо.
PS: варианты экзотики типа mod_ruby, mod_perl, mod_python не рассматриваю, ибо в реальной жизни не надо особо ИМХО. А клиентам оплачивающим поцелуи в жопу по выгодному курсу можно сделать и особый ,кастомный сетап, вплоть до отельного suid'ного веб-сервера, не говоря о тривиальный fastcgi.
Добавлено: 30 авг 2007, 01:53
tes+or
по порядку:
1.то что оно CGI как-то освобождает его от того, что оно выполняется от имени апача?
2.само по себе это как? как можно связать итерпретатор с серваком еще, кроме как цги или модуль на подобие mod_perl?
3.суидный вебсервер это как? что-то знакомое, может спать хочу и не помню
4.а с fastcgi вообще не сталкивался.
мдя.. что-то пробелы у меня.
Добавлено: 31 авг 2007, 18:31
bobrik
Llama, ага, только вот где тут решение? если все юзеры www-data могут читать у друг друга конфиги?!
Добавлено: 31 авг 2007, 21:42
nab
1.
http://httpd.apache.org/docs/1.3/suexec.html
2. Само приложение содержит в себе сервер. Соответственно, отдельный веб-сервер уже не нужен. Например, томкэт может работать как без апача так и за ним. Или посмотри
доки к webpy.
3. Тож хочу услышать, как это звучит в понимании
Llama
4.
http://www.fastcgi.com/