ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] PHP: Виртуальный хостинг
@ 2003-11-23  9:59 Прокопьев Евгений
  2003-11-23 10:29 ` [Comm] " Konstantin Lepikhov
  0 siblings, 1 reply; 9+ messages in thread
From: Прокопьев Евгений @ 2003-11-23  9:59 UTC (permalink / raw)
  To: community

Здравствуйте!

Необходимо организовать виртуальный хостинг для PHP, пользователям 
которого требуется:

1. Возможность исполнять php-скрипты от своего имени, а не от имени 
пользователя apache
2. Возможность творить в своем домашнем каталоге (и только в нем) 
средствами php все что угодно (удалять и создавать каталоги, файлы).

Первая задача легко решается средствами suexec и использованием php в 
виде cgi (это единственное решение?). В этом случае приходится создавать 
виртуальный хост следующего вида:

<VirtualHost 192.168.1.1>
     User web1
     Group webusers
     ServerName web1.athlon.home
     DocumentRoot /home/web1/web
     ScriptAlias /bin/ "/home/web1/web/bin/"
     AddType appication/x-httpd-php .php
     Action appication/x-httpd-php /bin/php
</VirtualHost>

Структура каталогов пользователя web1 и права доступа в этом случае 
выглядят так:

# ls -l /home/
total 866
...
drwxr-xr-x    5 web1     webusers      208 Nov 22 14:17 web1
# ls -l /home/web1/
total 1
drwx------    7 web1     webusers      224 Nov 22 14:08 tmp
drwxr-xr-x    3 web1     webusers      136 Nov 22 14:08 web
# ls -l /home/web1/web/
total 9
drwxr-xr-x    2 web1     webusers       96 Nov 22 11:02 bin
-rw-r--r--    1 web1     webusers      207 Nov 22 14:13 index.html
-rw-r--r--    1 web1     webusers       17 Nov 22 11:36 index.php
# ls -l /home/web1/web/bin/
total 1300
-rwxr-xr-x    1 web1     webusers  1293658 Nov 22 11:02 php
-rw-r--r--    1 web1     webusers    36754 Nov 22 11:02 php.ini

И вот такое решение не дает решить вторую задачу, а именно, ограничить 
пользователя web1 своим каталогом, запретив ему средствами php читать 
чужие файлы (или хотя бы файлы пользователей web2 и web3, у которых 
структура каталогов и описание хоста аналогичны).

Если выставить для домашних каталогов пользователей права rwx------, то 
при обращении к любому файлу витруального хоста получаем "You don't have 
permission to access /index.php on this server".

Если включить safe_mode=on в php.ini, то очевидно, что никто не помешает 
пользователю выключить его, то же касается любых вариантов ограничить 
действия пользователя средствами php. Чтобы пользователь не смог 
модифицировать php.ini или бинарник php, необходимо сделать владельцем 
его домашего каталога другого пользователя - тем самым мы сломаем suexec.

Что остается?

-- 
С уважением, Прокопьев Евгений



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Comm] Re: PHP: Виртуальный хостинг
  2003-11-23  9:59 [Comm] PHP: Виртуальный хостинг Прокопьев Евгений
@ 2003-11-23 10:29 ` Konstantin Lepikhov
  2003-11-23 10:56   ` Прокопьев Евгений
  0 siblings, 1 reply; 9+ messages in thread
From: Konstantin Lepikhov @ 2003-11-23 10:29 UTC (permalink / raw)
  To: community

Hi Прокопьев!

Sunday 23, at 12:59:41 PM you wrote:

> Здравствуйте!
> 
> Необходимо организовать виртуальный хостинг для PHP, пользователям 
> которого требуется:
> 
> 1. Возможность исполнять php-скрипты от своего имени, а не от имени 
> пользователя apache
> 2. Возможность творить в своем домашнем каталоге (и только в нем) 
> средствами php все что угодно (удалять и создавать каталоги, файлы).
<skip>

> 
> Если выставить для домашних каталогов пользователей права rwx------, то 
> при обращении к любому файлу витруального хоста получаем "You don't have 
> permission to access /index.php on this server".
> 
> Если включить safe_mode=on в php.ini, то очевидно, что никто не помешает 
> пользователю выключить его, то же касается любых вариантов ограничить 
> действия пользователя средствами php. Чтобы пользователь не смог 
> модифицировать php.ini или бинарник php, необходимо сделать владельцем 
> его домашего каталога другого пользователя - тем самым мы сломаем suexec.
> 
> Что остается?
> 
Использовать POSIX ACL/либо что-нибудь типа trustee

-- 
WBR, Konstantin	      chat with ==>ICQ: 109916175
     Lepikhov,	      speak  to ==>JID: lakostis@jabber.org
aka L.A. Kostis       write  to ==>mailto:lakostis@pisem.net.nospam

...The information is like the bank... 			  (c) EC8OR


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Comm] Re: PHP: Виртуальный хостинг
  2003-11-23 10:29 ` [Comm] " Konstantin Lepikhov
@ 2003-11-23 10:56   ` Прокопьев Евгений
  2003-11-25 17:41     ` Konstantin Lepikhov
  0 siblings, 1 reply; 9+ messages in thread
From: Прокопьев Евгений @ 2003-11-23 10:56 UTC (permalink / raw)
  To: community

Konstantin Lepikhov пишет:
> Hi Прокопьев!
> 
> Sunday 23, at 12:59:41 PM you wrote:
> 
> 
>>Здравствуйте!
>>
>>Необходимо организовать виртуальный хостинг для PHP, пользователям 
>>которого требуется:
>>
>>1. Возможность исполнять php-скрипты от своего имени, а не от имени 
>>пользователя apache
>>2. Возможность творить в своем домашнем каталоге (и только в нем) 
>>средствами php все что угодно (удалять и создавать каталоги, файлы).
> 
> <skip>
> 
>>Если выставить для домашних каталогов пользователей права rwx------, то 
>>при обращении к любому файлу витруального хоста получаем "You don't have 
>>permission to access /index.php on this server".
>>
>>Если включить safe_mode=on в php.ini, то очевидно, что никто не помешает 
>>пользователю выключить его, то же касается любых вариантов ограничить 
>>действия пользователя средствами php. Чтобы пользователь не смог 
>>модифицировать php.ini или бинарник php, необходимо сделать владельцем 
>>его домашего каталога другого пользователя - тем самым мы сломаем suexec.
>>
>>Что остается?
>>
> 
> Использовать POSIX ACL/либо что-нибудь типа trustee

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

Да и еще: хорошо бы, чтобы схема работала и на FreeBSD STABLE (где acl 
отсутствуют).

-- 
С уважением, Прокопьев Евгений



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Comm] Re: PHP: Виртуальный хостинг
  2003-11-23 10:56   ` Прокопьев Евгений
@ 2003-11-25 17:41     ` Konstantin Lepikhov
  2003-11-26  6:13       ` Прокопьев Евгений
  0 siblings, 1 reply; 9+ messages in thread
From: Konstantin Lepikhov @ 2003-11-25 17:41 UTC (permalink / raw)
  To: community

Hi Прокопьев!

Sunday 23, at 01:56:02 PM you wrote:

<skip>
> >
> >Использовать POSIX ACL/либо что-нибудь типа trustee
> 
> Да, к соседям в папки я пользователя не пущу, но как быть с ограничением 
> права подниматься выше своей домашней директории в принципе?
Патчить php на принудительное использование safe mode, независимо от
настроек :)

> 
> Да и еще: хорошо бы, чтобы схема работала и на FreeBSD STABLE (где acl 
> отсутствуют).
> 
Есть там ACL, правда в виде сторонних патчей, кажется проект называется
TrustedBSD.

-- 
WBR, Konstantin	      chat with ==>ICQ: 109916175
     Lepikhov,	      speak  to ==>JID: lakostis@jabber.org
aka L.A. Kostis       write  to ==>mailto:lakostis@pisem.net.nospam

...The information is like the bank... 			  (c) EC8OR


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Comm] Re: PHP: Виртуальный хостинг
  2003-11-25 17:41     ` Konstantin Lepikhov
@ 2003-11-26  6:13       ` Прокопьев Евгений
  2003-11-26  7:04         ` Konstantin Lepikhov
  2003-11-26  7:05         ` Konstantin Lepikhov
  0 siblings, 2 replies; 9+ messages in thread
From: Прокопьев Евгений @ 2003-11-26  6:13 UTC (permalink / raw)
  To: community

Konstantin Lepikhov пишет:

> Hi Прокопьев!
> 
> Sunday 23, at 01:56:02 PM you wrote:
> 
> <skip>
> 
>>>Использовать POSIX ACL/либо что-нибудь типа trustee
>>
>>Да, к соседям в папки я пользователя не пущу, но как быть с ограничением 
>>права подниматься выше своей домашней директории в принципе?
> 
> Патчить php на принудительное использование safe mode, независимо от
> настроек :)

Бинарник php будет лежать у пользователя (см. выше схему каталогов), 
поэтому при необходимости он себе сам какой надо сделает :)

>>Да и еще: хорошо бы, чтобы схема работала и на FreeBSD STABLE (где acl 
>>отсутствуют).
>>
> 
> Есть там ACL, правда в виде сторонних патчей, кажется проект называется
> TrustedBSD.

Да нет, есть причины, по которым разрешается использовать только 
стандартные решения.

Была мысль на тему chroot, но не слишком ли это громоздко. Что по 
минимуму надо туда запихать, чтоб оно работало так, как мне надо? Как 
это вообще правильно делается, есть какое-нибудь внятное описание?

-- 
С уважением, Прокопьев Евгений



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Comm] Re: PHP: Виртуальный хостинг
  2003-11-26  6:13       ` Прокопьев Евгений
@ 2003-11-26  7:04         ` Konstantin Lepikhov
  2003-11-26  7:05         ` Konstantin Lepikhov
  1 sibling, 0 replies; 9+ messages in thread
From: Konstantin Lepikhov @ 2003-11-26  7:04 UTC (permalink / raw)
  To: community

Hi Прокопьев!

Wednesday 26, at 09:13:21 AM you wrote:

<skip>
> Бинарник php будет лежать у пользователя (см. выше схему каталогов), 
> поэтому при необходимости он себе сам какой надо сделает :)
> 
> >>Да и еще: хорошо бы, чтобы схема работала и на FreeBSD STABLE (где acl 
> >>отсутствуют).
> >>
> >
> >Есть там ACL, правда в виде сторонних патчей, кажется проект называется
> >TrustedBSD.
> 
> Да нет, есть причины, по которым разрешается использовать только 
> стандартные решения.
> 
> Была мысль на тему chroot, но не слишком ли это громоздко. Что по 
> минимуму надо туда запихать, чтоб оно работало так, как мне надо? Как 
> это вообще правильно делается, есть какое-нибудь внятное описание?
> 
Тогда только chroot. Насчет внятного описания - можно погуглить. Вон, в
OBSD уже изначально httpd в chroot запихали.

-- 
WBR, Konstantin	      chat with ==>ICQ: 109916175
     Lepikhov,	      speak  to ==>JID: lakostis@jabber.org
aka L.A. Kostis       write  to ==>mailto:lakostis@pisem.net.nospam

...The information is like the bank... 			  (c) EC8OR


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Comm] Re: PHP: Виртуальный хостинг
  2003-11-26  6:13       ` Прокопьев Евгений
  2003-11-26  7:04         ` Konstantin Lepikhov
@ 2003-11-26  7:05         ` Konstantin Lepikhov
  2003-11-26  7:32           ` Прокопьев Евгений
  1 sibling, 1 reply; 9+ messages in thread
From: Konstantin Lepikhov @ 2003-11-26  7:05 UTC (permalink / raw)
  To: community

Hi Прокопьев!

Wednesday 26, at 09:13:21 AM you wrote:

<skip>
> Была мысль на тему chroot, но не слишком ли это громоздко. Что по 
> минимуму надо туда запихать, чтоб оно работало так, как мне надо? Как 
> это вообще правильно делается, есть какое-нибудь внятное описание?
> 
Пока писал письмо - пришла дурацкая мысль - а может им vserver сделать,
пусть каждый свой и курочит. 
 
-- 
WBR, Konstantin	      chat with ==>ICQ: 109916175
     Lepikhov,	      speak  to ==>JID: lakostis@jabber.org
aka L.A. Kostis       write  to ==>mailto:lakostis@pisem.net.nospam

...The information is like the bank... 			  (c) EC8OR


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Comm] Re: PHP: Виртуальный хостинг
  2003-11-26  7:05         ` Konstantin Lepikhov
@ 2003-11-26  7:32           ` Прокопьев Евгений
  2003-11-26  8:34             ` Konstantin Lepikhov
  0 siblings, 1 reply; 9+ messages in thread
From: Прокопьев Евгений @ 2003-11-26  7:32 UTC (permalink / raw)
  To: community

Konstantin Lepikhov пишет:

> Hi Прокопьев!
> 
> Wednesday 26, at 09:13:21 AM you wrote:
> 
> <skip>
> 
>>Была мысль на тему chroot, но не слишком ли это громоздко. Что по 
>>минимуму надо туда запихать, чтоб оно работало так, как мне надо? Как 
>>это вообще правильно делается, есть какое-нибудь внятное описание?
>>
> 
> Пока писал письмо - пришла дурацкая мысль - а может им vserver сделать,
> пусть каждый свой и курочит. 

кому, юзерам? Так это потяжелее чрута будет (тем более что основной 
сервер вполне сам может оказаться в vds :) ). И опять, как это делать? 
Гуглил, кстати, и на тему чрута тоже, но самое человечное описание (хоть 
и сверхкраткое) на альтовском же сайте и нашел. Ничего еще нет?

-- 
С уважением, Прокопьев Евгений



^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Comm] Re: PHP: Виртуальный хостинг
  2003-11-26  7:32           ` Прокопьев Евгений
@ 2003-11-26  8:34             ` Konstantin Lepikhov
  0 siblings, 0 replies; 9+ messages in thread
From: Konstantin Lepikhov @ 2003-11-26  8:34 UTC (permalink / raw)
  To: community

Hi Прокопьев!

Wednesday 26, at 10:32:17 AM you wrote:

> Konstantin Lepikhov пишет:
> 
> >Hi Прокопьев!
> >
> >Wednesday 26, at 09:13:21 AM you wrote:
> >
> ><skip>
> >
> >>Была мысль на тему chroot, но не слишком ли это громоздко. Что по 
> >>минимуму надо туда запихать, чтоб оно работало так, как мне надо? Как 
> >>это вообще правильно делается, есть какое-нибудь внятное описание?
> >>
> >
> >Пока писал письмо - пришла дурацкая мысль - а может им vserver сделать,
> >пусть каждый свой и курочит. 
> 
> кому, юзерам? Так это потяжелее чрута будет (тем более что основной 
> сервер вполне сам может оказаться в vds :) ). И опять, как это делать? 
> Гуглил, кстати, и на тему чрута тоже, но самое человечное описание (хоть 
> и сверхкраткое) на альтовском же сайте и нашел. Ничего еще нет?
> 
Плохо гуглили =)

http://www.devet.org/apache/chroot/

http://www.securityfocus.com/infocus/1694

- как раз для FreeBSD.

-- 
WBR, Konstantin	      chat with ==>ICQ: 109916175
     Lepikhov,	      speak  to ==>JID: lakostis@jabber.org
aka L.A. Kostis       write  to ==>mailto:lakostis@pisem.net.nospam

...The information is like the bank... 			  (c) EC8OR


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2003-11-26  8:34 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-23  9:59 [Comm] PHP: Виртуальный хостинг Прокопьев Евгений
2003-11-23 10:29 ` [Comm] " Konstantin Lepikhov
2003-11-23 10:56   ` Прокопьев Евгений
2003-11-25 17:41     ` Konstantin Lepikhov
2003-11-26  6:13       ` Прокопьев Евгений
2003-11-26  7:04         ` Konstantin Lepikhov
2003-11-26  7:05         ` Konstantin Lepikhov
2003-11-26  7:32           ` Прокопьев Евгений
2003-11-26  8:34             ` Konstantin Lepikhov

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git