从Web URL运行的Python CGI脚本使用www-data user

时间:2016-11-29 01:11:49

标签: python apache python-2.7 python-3.x cgi

我正在尝试运行Python CGI脚本。我面临的问题是,我需要使用我的用户名创建一个目录并使用git克隆repo。

#!/usr/bin/python2.7   
import commands, os
print "Content-type: text/html\n"
print "\n\n"
print "<html><body>"
commands.getoutput("rm -rf fresh-cloned")
commands.getoutput("mkdir fresh-cloned")
os.chdir("fresh-cloned")
print commands.getoutput("pwd")
commands.getoutput("git clone <> -b <>")

但不知何故,当我从网址运行脚本:“http://ip_adr/webtest/webgui.py”时,我看到使用www-data用户创建的目录而不是我的用户名。由于git clone无法正常工作,因为sash密钥仅在Stash中添加为我的用户名。

drwxr-xr-x 2 www-data www-data 4.0K Nov 28 16:59 fresh-cloned

如何解决此问题?从Web URL运行脚本时是否可以将用户更改为我的用户名?

2 个答案:

答案 0 :(得分:0)

如果您希望脚本作为用户从Apache HTTPD运行,则需要加载mod_suexec并相应地设置指令SuexecUserGroup,例如:

SuexecUserGroup youruser yourgroup

答案 1 :(得分:0)

我可以通过更改“/ etc / passwd”

中的以下行来解决此问题
www-data:x:33:33:www-data:/var/www:/bin/bash

我创建/更新了用户,提供了所需的权限,创建了ssh密钥并在stash中添加,现在正在运行。谢谢!