Запуск сценария оболочки на веб-сервере, как если бы он был интерактивным

1527
N00bler

У меня есть сценарий оболочки (csh) - я его не написал, поэтому не могу его сейчас изменить. Сценарий выполняет много операций с файлами журналов, вызывает другие сценарии на таких языках, как Perl и Tcl, создает новые файлы и вызывает исполняемые файлы. Это хорошо работает из командной строки.

Я хотел бы иметь возможность запускать скрипт из формы HTML (я могу это сделать), работать нормально и выводить текст, который обычно идет в терминал, вместо веб-браузера.

Я на Ubuntu 10.10 и установил lighttpd 1.4.26. Сценарию нужна только одна переменная, переданная ему из HTML.

Это не работает должным образом.

  1. Я связал 10-cgi.confс conf-enabled. Это должно включить CGI, похоже, для этого.
  2. Я закомментировал server.usernameи server.groupnameстроки в lighttpd.conf. Это, очевидно, позволяет серверу запускать скрипты как «root».
  3. Я создал небольшой скрипт, который принимает строку запроса, анализирует ее и вызывает действительно полезный скрипт.

Вот проблемы, которые у меня возникают:

  1. Я добавляю, pwdи он печатает правильный каталог. Однако на самом деле он не будет использовать этот путь при записи файлов с «>». Мне нужно вручную добавить полный путь для каждого доступа к файлам такого рода - почему?

  2. Там нет PATH определен, поэтому ни одна из команд, как head, tail, grep, и ifconfigт.д. работы. Я добавил жестко заданный PATH =, который, кажется, работает, но даже тогда некоторые команды просто не работают. Я скопировал тот же PATH, что и у интерактивной оболочки. Есть ли ограничение по длине? Почему нет ПУТИ?

  3. Все это связано с тем, что при вызове исполняемых файлов они, похоже, не понимают, где находятся, поскольку относительные пути ../../ больше не работают.

У меня такое ощущение, что это какое-то разрешение пользователя или интерактивная, а не интерактивная проблема.

Одним из важных замечаний является то, что этого никогда не будет в Интернете, просто локально работающий на небольшой установке с несколькими квалифицированными пользователями. Безопасность не является проблемой, на самом деле.

2

0 ответов на вопрос

Похожие вопросы