2013-05-07 3 views
0

Я сейчас использую скрипт мы используем для перемещения данных, которая запускается со следующим синтаксисом:Web-страница, которая проходит переменные оболочки сценарий

./script.sh <env> <y|n> <file> <file> <file> <file> <file> <file> 

$1 sets a variable for production/test 
$2 sets a variable whether we perform a tarball of the destination folder before copying 
$3 - $# is a space delimited list of files to move (there has to be a minimum of one file, no maximum) 

Мне нужно передать этот скрипт для другого пользователя, но не доверяйте ему доступ оболочки к коробке.

Что бы я хотел сделать, это создать веб-страницу с тремя полями. Поле 1 является переключателем среды, который будет передан как 1 доллар. Поле два - это переключатель «да/нет», который я хотел бы передать как 2 доллара. И поле 3 представляет собой многосегментный ящик, который я бы хотел заполнить как из статического текстового файла, так и (предпочтительно) от запуска «ls» над исходным каталогом - это будет $ 3 +

Возможно ли это ? Я могу запустить Apache на сервере, чтобы PHP или даже CGI были доступны.

спасибо!

ответ

0

Да, это возможно. Однако он будет работать как пользователь веб-серверов.

Просто используйте system() или exec(), чтобы позвонить своему сценарию bash.

Документация: http://php.net/manual/en/function.system.php http://php.net/manual/en/function.exec.php

Обязательно используйте escapeshellarg()http://www.php.net/manual/en/function.escapeshellarg.php, чтобы избавиться от нежелательного входа .. Может быть, написать свой собственный черный список, а также.

Пример:

$script_path = '/path/to/script.sh'; 
system($script_path . ' ' . $argument); 
Смежные вопросы