Как выполнять внешние команды с Python, используя Apache2 и CGI

У меня есть веб-сервер Apache. у меня есть html файл и Python сценарий находится в var/www/myfolder, Я отправляю форму через html файл, который обрабатывается моим Python скрипт (когда нажата кнопка отправки). Но однажды обработав форму, мой Python скрипт выполняет внешнюю команду. (см. следующий код)

webpage.html

<!DOCTYPE html>
<html>
    <head>
        <title>Webform</title>
    </head>
    <body>
        <h3>Webform</h3>
        <form action="myscript.py" method="POST">
            <p>Name: <input type="text" name="name"></p>
            <input type="submit" value="Submit">
        </form>
    </body>
</html>

myscript.py

#!/usr/bin/python -W

import cgi, cgitb 
import sys
import os

# Get data from fields
form = cgi.FieldStorage() 
name = form.getvalue('name')

print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2></br></br>'
print '<p>Name: %s</p>' % (name)
print '</body>'
print '</html>'

os.system("./other_script.py") # gives me an error with permission

На моем сервере я нахожусь user007 но я знаю, что когда я нажимаю кнопку отправить на html файл, Python сценарий выполняется как apache2 пользователь. Проблема в том, что я не знаю пароль для этого пользователя (не можем ли мы sudo). Возможны ли две идеи:

1) изменить с apache2 в user007 при попытке выполнить other_script.py из myscript.py

2) Я знаю, что вы можете менять пользователей, используя suEXEC но я понятия не имею, как его использовать.

Какие-либо предложения?

Я должен сообщить вам, что локально оба скрипта Python работают нормально.

Изменить 1:

Я получаю это сообщение до появления ошибки: WARNING: HOME is not set, using root: /

0 ответов

Другие вопросы по тегам