Ivanovo Linux Users Group -  
Форум Помощь Поиск Вход
Предыдущая Следующая Вверх Тема Программирование / Прикладное / Bash команды через web (11781 хитов)
- Написал(а) Green_aciD Дата 14.09.07 21:24
Привет камрады!
Кто и как реализовывал сабж. Необходимо выполнять некоторые команды через браузер - например добавить статический маршрут. Интересует возможность выполнения комманд использую скрипты php/perl.
Parent - Написал(а) G0thic Дата 15.09.07 08:34
Не совсем понятно. Тебе нужно передавать скрипту какие-то данные из формы через браузер? Или просто выполнить заранее подготовленный скрипт?
В своё время я удалял/закрывал нужные порты через iptables удаленно, использую технологию port-knocking.
Когда кругозор человека сужается к минимуму, он называет это своей точкой зрения.
Parent - Написал(а) Green_aciD Дата 15.09.07 08:55
Нужно организовать "интерфейс" с шеллом через браузер, что бы выполнять команды (на примере все того же route). Типа юзер вводит в нужное поле команду, жмет сабмит и она (введённая команда) уезжает на исполнение (bash).
Parent Написал(а) LOE (Site/forum admin) Дата 15.09.07 18:22
"просто так" запустить скрипты от рута веб сервером нельзя.
Веб сервер работает от непривилегированного пользователя (а у кого от рута - ССЗБ)
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - Написал(а) LOE (Site/forum admin) Дата 15.09.07 18:21 Отредактировано 15.09.07 18:23
Возможно. 2 пути.
1. Задействовать suExec в апаче. Осложняется тем, что из-под рута запуск скриптов блокируется. Можно обойти перекомпилировав апачевский suExec, выключив эту проверку.
2. Задействовать промежуточный скрипт:
скрипт, запускаемый апачем, сохраняет данные в файлик. Периодически другой скрипт, запускаемый от рута проверяет наличие таких файликов и, при наличии оных, исполняет их.

В любом случае - обязательна необходима проверка данных.

И ты должен понимать, что тот, кто получит доступ к форме, отправляющей все эти команды-данные, может выполнить деструктивные действия: например6 сменить пароль рута и открыв доступ себе на сервер.

Т.е. думать, думать и думать, реализовывая все это. Обязательно проверять все данные. А лучше - сохранять их в нужном формате, парсить и выполнять только при условии совпадения всех данных, как по форме, так и по содержимому.
Незнамо как - лучше все это не делать.

PS. советую 2-й вариант с полными проверками.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent Написал(а) Green_aciD Дата 15.09.07 21:12
Имхо удобство в ущерб безопасноти не есть тру. Поэтому придётся пересмотреть свои взгляды и использовать ssh (chroot, sudo).
Предыдущая Следующая Вверх Тема Программирование / Прикладное / Bash команды через web (11781 хитов)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.080s with 10 database queries.