LINUX.ORG.RU
ФорумAdmin

cgi-скрипты на sh


0

0

Хочется ровно следующее - вызывать через браузер некий скрипт sh, который бы запускал на серваке энные команды и выплёвывал в браузер их вывод. Как это сделать?

anonymous

1. Написать скрипт
2. Положить скрипт в каталог из которого его сможет вызвать http-сервер (настроить его).
3. ...
4. PROFIT


P.S. Не забыть, что cgi-скрипт в начале должен выводить заголовки, в том числе 
"Content-type: text/plain" или "Content-type: text/html"
                                                           

mky ★★★★★
()
Ответ на: комментарий от mky

> 4. PROFIT

Просто echo со всем "типа HTML" он выплёвывает, env выплёвывает, а мне нужен вывод iptables -L -v. Делаю так:

echo "<pre>" echo `/usr/sbin/iptables -L -v` echo "</pre>"

На консоль хотя бы ругается, что iptables хочет рутовые права, в браузер эта строчка не выдаётся вобоще никак.

anonymous
()
Ответ на: комментарий от anonymous

ну про рута он тебе правильно сказал... тут судо надо настраивать... Но я бы поостерегся давать судо на iptables для www-юзера :) А про "браузер не выдает"... почитай про stdout и stderr...

sidor ★★
()
Ответ на: комментарий от sidor

> Но я бы поостерегся давать судо на iptables для www-юзера :)

А более прямо из iptables можно как-то вытащить текущие правила и статистику? Требуется только "на посмотреть", без управления через cgi.

anonymous
()
Ответ на: комментарий от anonymous

только sudo на iptables. хотя есть другой путь... по крону каждую минуту запускать от рута скриптик, который будет ложить вывод в файлик, а файлик будет доступен юзеру www на чтение :)

Komintern ★★★★★
()
Ответ на: комментарий от Komintern

Ещё вариант: зацикленный шелл-скрипт крутится с правами рута, слушает именованный пайп.
К другому концу пайпа коннектимся cgi-скриптом. При необходимости можно сделать нечто вроде парольного доступа к пайпе (например первая строка, посланная в пайп, должна быть определённого содержания, вторая строка - команда).

Ну и ещё вариант: вместо пайпа использовать xinetd, но пайп предпочтительнее - можно сделать:

mkfifo /path/to/fifo
chmod 0600 /path/to/fifo
chown apache:root /path/to/fifo

и вуаля.

Slavaz ★★★★★
()

> Хочется ровно следующее - вызывать через браузер некий скрипт sh, который бы запускал на серваке энные команды и выплёвывал в браузер их вывод. Как это сделать?

#!/bin/sh

printf "%s\r\n%s\r\n\r\n" "Content-Type: text/plain; charset=utf8" "Cache-Control: no-cache"

/sbin/ifconfig -a 2>&1

gaa ★★
()
Ответ на: комментарий от Komintern

"sudo на iptables" жжош. Максимум на что можно дать sudo - на скрипт-вызывалку iptables с определенным параметром типа "-nvxL"

Bers666 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.