2016-03-12 6 views
0

Другой способ, которым я мог бы задать этот вопрос:Perl/Python скрипты Неудачная попытка доступа в Интернет/сети через веб-интерфейс

Как настроить страницы обслуживаемые Apache имеют более высокие привилегии? Это будет похоже на то, что я устанавливаю пул приложений в IIS для использования разных учетных данных.

У меня есть несколько сценариев Perl и Python, которые я публикую через веб-интерфейс. Передняя часть предназначена для запуска любого скрипта, который у меня есть в базе данных. С большинством сценариев у меня нет проблем ... но все, что, кажется, использует сеть, ничего не возвращает. Сообщения об ошибках или сообщения об ошибках отсутствуют. Выполняется с CLI как ROOT работает от WEB GUI как www-data вызов такой же команды завершается с ошибкой.

Я общаюсь с Python и Perl вместе в этом вопросе, потому что проблема та же, что и я, полагая, что это не проблема с кодом, это проблема с разрешениями. Кроме того, почему я не включаю код, изначально.

Они работают на Linux, используя Apache и PHP5. Python 2.7 и Perl5 Я верю. Вот примеры приложений, которые я имею, которые не удается:

  1. Python - Подключение к VirusTotal API
  2. Perl - Подключение к доменам и создание графа с GraphViz
  3. Perl - Выполнение Wake On функции LAN на сегмент локальной сети.
+0

Перейдите в корень документа и сделайте 'su www-data'. Затем попробуйте запустить скрипты как пользовательские www-данные. Если это не удается, это не проблема apache, а просто потому, что разрешения UNIX не позволяют вам получить доступ к скриптам или бинарнику perl/python. –

+0

Когда я пытаюсь su www-data, я получаю «Эта учетная запись в настоящее время недоступна». –

+0

Это означает, что учетная запись не имеет оболочки. См. Https://geekpeek.net/this-account-is-currently-not-available-login-problems/ о том, как его временно исправить для тестирования, но я рекомендую установить его позже. –

ответ

1

Итак, после того, как я разместил это, я посмотрел на обработчиков, как я использую для IIS. Это привело меня вниз по пути SUEXEC и через все, что я пытался, я не мог заставить Apache загрузить его. Даже убедитесь, что я установил бит для SETUID и SETGID.

Когда я изучал, что я наткнулся на файлы .htaccess и как они могут включить скрипты CGI. Я не хотел вставлять файлы .htaccess, поэтому я просто убедился, что apache.conf настроен на разрешение CGI. Это тоже не помогло.

Итак, наконец, пока я изучал .htaccess они ссылались на ScriptAlias. Я считаю, что это то, что решило мою проблему. Я изменил раздел ScriptAlias ​​в файле конфигурации apache, чтобы указать на мой каталог, содержащий скрипт. После некоторого суматоха с абсолютными каталогами и разрешениями для сценария для чтения/записи файла я получил все, чтобы работать, за исключением того, что он не пропускает прокси, заданный средой http_proxy. Это отдельная проблема, хотя я думаю, что я хорошо разбираюсь в этой проблеме. Я попытаюсь выполнить одно и то же решение на своей перламутровой лампе.