URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 360
[ Назад ]

Исходное сообщение
"Apache выполнение скрипта от рута"

Отправлено Null , 04-Фев-02 11:47 
Собственно сабж. Нужно запустить перловый скрипт, который будет вызывать ipchains от рута соответственно. Как это сделать? Апач упорно сопротивляется вызовам с SUID, su, sudo...

Содержание

Сообщения в этом обсуждении
"RE: Apache выполнение скрипта от рута"
Отправлено uldus , 04-Фев-02 14:33 
>который будет вызывать ipchains от
>рута соответственно. Как это сделать?

Так делать нельзя, бери и создавай временный файл с командой, напирмер, формата "операция:ip:порты"
DENY:192.168.1.1:
ALLOW:192.168.1.1:80


Затем раз в минуту запускай из под рута скрипт, который проверяет наличие командного файла, дополнительно проверяет и исполняет заданные параметры, очищает командный файл.


"RE: Apache выполнение скрипта от рута"
Отправлено Дмитрий , 12-Июл-02 10:56 
>Собственно сабж. Нужно запустить перловый скрипт, который будет вызывать ipchains от рута
>соответственно. Как это сделать? Апач упорно сопротивляется вызовам с SUID, su,
>sudo...

а chmod +s не пробовал?



"RE: Apache выполнение скрипта от рута"
Отправлено Eugene , 19-Июл-02 15:08 
как вариант - стартуй второй апач от рута. хотя это и не шибко секьюрно.

"RE: Apache выполнение скрипта от рута"
Отправлено pavel , 04-Авг-02 14:44 
>как вариант - стартуй второй апач от рута. хотя это и не
>шибко секьюрно.
Есть мысль,что безопасней будет запускать от рута прогу из inetd
например так


usersc stream  tcp     nowait  root    /usr/local/sbin/mbox.pl mbox.pl

usersc прописываешь в /etc/services

usersc  9966/tcp

вызываешь из скрипта кусочек

#!/usr/bin/perl                                                                
use Net::Telnet ();                                                            
$t = new Net::Telnet (Timeout => 30,                                          
                         Port => 9966 );                                      
   $t->open("you.host.ru");                                            
@lines = $t->getlines(Timeout => 35);                                          

Вопрос только в том, как передать параметры.Удобнее всего использовать для
этой цели  SQL базу.

  print @lines;      


"RE: Apache выполнение скрипта от рута"
Отправлено Xen , 06-Авг-02 17:59 
Aпач должен быть скомпилирован с поддержкой su-exec. Заголовок перлового скрипта должен включать параметр -U (разрешить небезопасные операции). Что-то еще? А, ну да, еще раз напомню, что это плохое решение. Я сам в нескольких своих программах, писаных на заре юниксоидной деятельности, перешел к передаче параметров специальному суид-демону...

"RE: Apache выполнение скрипта от рута"
Отправлено Maxim , 08-Авг-02 17:11 
мне больше понравился способ одног парня на opennet.ru
чтобы поменять правила firewall, а это доступно только руту,
делаем следующее.

В памяти висит демон от рута. Слушает сокет.
откликается на посылку ему номера компа и типа действия up / down

Этому демону шлет сообщение скрипт с низким уровнем привилегий например nobody.
И все дела,

если надо пиши вышлю вариант.

Максим.