Forum Webscript.Ru

Программирование => Perl => Тема начата: djkostya от 10 Апреля 2006, 13:45:40

Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 13:45:40
А вобще как сделать чтоб mod_perl не работал с апачаеского правами

То есть сменить пользователя....???????

И возможно ли к каждому виртуальному хосту сделать чтоб он запускался со своими правами....
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 14:06:27
МММММММ да вроде ответ нашёл...


The answer is No. The reason is that you can\'t "suid" a part of a process. mod_perl lives inside the Apache process, so its UID and GID are the same as the Apache process.

You have to use mod_cgi if you need this functionality.

Another solution is to use a crontab to call some script that will check whether there is something to do and will execute it. The mod_perl script will be able to create and update this todo list.
Название: mod_perl
Отправлено: xmolex от 10 Апреля 2006, 14:14:44
Цитировать
djkostya:
И возможно ли к каждому виртуальному хосту сделать чтоб он запускался со своими правами....

suexec рулит
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 14:16:56
xmolex и чё с этим suexec делать ????????
Название: mod_perl
Отправлено: xmolex от 10 Апреля 2006, 14:21:13
Он должен стоять в апаче.
А потом в конфиге виртуального хоста прописываешь
SuexecUserGroup user group

После этого рестартишь сервер и твои скрипты на этом вирт. хосте выполняются от этого пользователя.
Если что не так, смотри в логах суехека, по дэфолту в /usr/local/logs/
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 14:30:29
Вот мой конфиг mod_perl а

И куда его вставлять

   Alias /mod/ "/home/site/mod/"
   PerlModule Apache::Registry
   PerlModule header::header::header
   
         SetHandler perl-script
              PerlHandler header::header::header
         PerlHandler Apache::Registry
              Options ExecCGI
              allow from all
         PerlSendHeader On
       
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 14:37:29
У меня апач 1 версии
Название: mod_perl
Отправлено: xmolex от 10 Апреля 2006, 14:47:09
Ну, вставлять тебе его нужно в httpd.conf, но ты когда mod_perl ставишь он сам дописывается в httpd. mod_perl по всякому будет работать с апачевскими правами. Единственное что ты можешь сделать это использовать suexec. Зайди в директорию bin, где установлен apache и посмотри есть ли там suexec. Если есть введи ./suexec -V, и посмотри пути. Если пути не правельные нужно пересобрать suexec и новый поместить в bin апачевский. А потом поместить SuexecUserGroup user group в твой файл конфига виртуального сервера.
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 14:52:36
так давай по порядку

 -D DOC_ROOT="/home"
 -D GID_MIN=1000
 -D HTTPD_USER="www"
 -D LOG_EXEC="/var/log/httpd-suexec.log"
 -D SAFE_PATH="/bin:/usr/bin:/usr/local/bin"
 -D UID_MIN=1000
 -D USERDIR_SUFFIX="public_html"


Всё вроде правильно в отношении путей....


Syntax error on line 1502 of /usr/local/etc/apache/httpd.conf:
Invalid command \'SuexecUserGroup\', perhaps mis-spelled or defined by a module not included in the server configuration


То есть я как понимаю у меня нет модуля...
Где блин его взять ??????
Название: mod_perl
Отправлено: xmolex от 10 Апреля 2006, 15:20:22
Извини перепутал.
SuexecUserGroup - это во втором апаче
Тебе надо
User что-то Group что-то
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 15:27:20
xmolex
 ты знаешь не пашет всё равно выполняеться из под пользвателя апача
Название: mod_perl
Отправлено: xmolex от 10 Апреля 2006, 15:55:05
Посмотри что пишется в логах суехека.
Название: mod_perl
Отправлено: cr4ck3r от 10 Апреля 2006, 16:42:09
посмотри сперва как у тебя апач собран:
httpd -l что выводит? (suexec WRAPPER enable? или нет)
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 16:46:08
http_core.c
  mod_so.c
suexec: enabled; valid wrapper /usr/local/sbin/suexec
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 16:46:38
Короче давайте по порядку...
Щас я попробую по другому сделать
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 16:48:53
То есть есть скрипт в папке

если выставить 750 и в группу поставить пользователя mod_perl то всё пашет


Но если убрать пользователя то нифига не работает
Название: mod_perl
Отправлено: xmolex от 10 Апреля 2006, 17:37:55
Это понятно. Ты скажи, написал ли suexec что-нибудь в логах? Хоть как-то он заработал? А, вообще, помню в свое время я с suexec\'ом три дня маялся.
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 17:39:25
xmolex Да в том и дело в логах ничего пусто только надпись апач запущен.......
Название: mod_perl
Отправлено: xmolex от 10 Апреля 2006, 17:59:44
При компиляции апача добавь к своему конфигуре эти опции
./configure --enable-suexec \\
--suexec-caller=www \\
--suexec-docroot=/home \\
--suexec-uidmin=1000 \\
--suexec-gidmin=1000 \\

где
caller - это тот под кем будет пускаться апач
docroot - это откуда можно пускать скрипты
ну и последнее минимальный уид и гид юзера который может пускать скрипты

а в конфиге писать ниче не надо
только пиши при определение вирт. хоста
User
Group
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 18:00:16
xmolex Да с этим всё собранно......
Название: mod_perl
Отправлено: xmolex от 10 Апреля 2006, 18:06:41
Посмотри еще здесь. http://www.oszone.ru/display.php?id=2825
Обрати внимание на группы.

Если не поможет, выкладывай конфиг httpd.conf.
Название: mod_perl
Отправлено: djkostya от 10 Апреля 2006, 20:16:33
Блин апач вобще рухнул......теперь не запускаеться
Название: mod_perl
Отправлено: xmolex от 11 Апреля 2006, 10:39:18
Цитировать
djkostya:
Блин апач вобще рухнул......теперь не запускаеться

Ну для этих целей всегда есть запасной конфиг httpd.default.conf
Название: mod_perl
Отправлено: djkostya от 11 Апреля 2006, 10:47:01
Да нет проблме в обработчиках была....
Название: mod_perl
Отправлено: xmolex от 11 Апреля 2006, 11:26:52
Проблему-то решил?