如何使用Apache2和CGI使用Python执行外部命令

时间:2015-04-08 20:49:49

标签: python apache apache2 cgi suexec

我有一个Apache Web服务器。我有一个html文件和一个位于Python的{​​{1}}脚本。我通过var/www/myfolder文件提交表单,该文件由我的html脚本处理(单击提交按钮时)。但是一旦处理完表单,我的Python脚本就会执行一个外部命令。 (见以下代码)

webpage.html

Python

myscript.py

<!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>

在我的服务器上我是#!/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用户执行。问题是我不知道这个用户的密码(不能我们sudo)。这两个想法是否可能:

1)尝试从 myscript.py 执行apache2时,从apache2更改为user007

2)我知道您可以使用other_script.py更改用户,但我不知道如何使用它。

有什么建议吗?

我应该让你知道,本地python脚本都正常运行。

修改1:

我在错误发生之前收到此消息:suEXEC

0 个答案:

没有答案