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

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