Выполнение shell команды через веб

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Выполнение shell команды через веб

Непрочитанное сообщение HEDG_SS » 2009-10-26 11:39:33

Задача : Требуется получать данные из ipfw и в зависимости от этого выводить нужную страницу. Для этого отрабатывает cgi скрипт.

На паре серверов работает такая схема (поднималось раньше), потребовалось поднять на еще одном серваке,а я уже и забыл, как это делал :( . Насколько помню просто не хватает прав для доступа к ipfw, поэтому команда не выполняется.
Знаю, что есть варианты :
1. sudo
2. perlsuid + выставление бита suid
Юмор в том, что сделано было каким то другим способом, причем более простым...

Платформа :
FreeBSD 7.0
Apache 2.2

Подскажите, какие еще есть варианты?
Заранее спасибо!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Выполнение shell команды через веб

Непрочитанное сообщение hizel » 2009-10-26 16:17:48

pipe, cron
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Выполнение shell команды через веб

Непрочитанное сообщение HEDG_SS » 2009-10-26 16:27:06

Насчет pipe не понял.. причем он тут ?
Cron - точно не то.
Скрипт простой: пользователь заходит на страницу, и в зависимости входит ли этот ип в разные таблицы, выводятся разные сообщения...

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Выполнение shell команды через веб

Непрочитанное сообщение hizel » 2009-10-26 16:30:09

если скрипт простой то только через suid
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Выполнение shell команды через веб

Непрочитанное сообщение HEDG_SS » 2009-10-27 13:03:35

Все, всем СПАСИБО!
2hizel Отдельное спасибо за активную помощь на форуме!
Обсуждение этой же темы на Opennet.ru.
Подробный ответ от туда :

Код: Выделить всё

# cp /sbin/ipfw .
# chmod u+s ipfw

=== begin cmd.cgi ===
#!/bin/sh

echo Content-type: text/html
echo
echo '<pre>'
./ipfw list
=== end cmd.cgi ===

http://server/path/cmd.cgi - выдает список правил, проверено

Имейте ввиду, что этой потенциальная дыра. Я собирал для этого спец бинарник ipfw, где работала только команда show.

reLax
лейтенант
Сообщения: 638
Зарегистрирован: 2007-04-08 5:50:16

Re: Выполнение shell команды через веб

Непрочитанное сообщение reLax » 2009-10-27 20:14:38

Ммм...Помню такого плана команды, как ipfw list и т.п. выводил в web через MySQL - в кроне просто раз минуту в таблицу заносился результат от такой команды.
Более серьезные можно через sudo с явным указанием команды, типа того:

Код: Выделить всё

root    ALL=(ALL) ALL
alex    ALL=NOPASSWD: /sbin/pfctl -q -t NETAMS_INET -T add -f /home/alex/KP_ANOTHER_HOST, /sbin/pfctl -q -t NETAMS_INET -T delete -f /home/alex/KP_ANOTHER_HOST

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Выполнение shell команды через веб

Непрочитанное сообщение hizel » 2009-10-27 22:37:28

навесить на ipfw suid - epic fail :]
через sudo надежнее, да
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.