Python 来自网络的 CGI 脚本 运行 URL 使用 www-data 用户创建目录
Python CGI script running from web URL creates directory with www-data user
我正在尝试 运行 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 <>")
但不知何故,当我 运行 来自网络 URL 的脚本时:“http://ip_adr/webtest/webgui.py”,我看到目录是用 www-data 用户而不是我的用户名创建的。由于 git 克隆将无法工作,因为 ssh 密钥仅添加到我的用户名的 Stash 中。
drwxr-xr-x 2 www-data www-data 4.0K Nov 28 16:59 fresh-cloned
我该如何解决这个问题?是否可以在 运行 网络 URL 的脚本时将用户更改为我的用户名?
如果您希望脚本 运行 作为 Apache HTTPD 的用户,您需要加载 mod_suexec 并相应地设置指令 SuexecUserGroup,例如:
SuexecUserGroup youruser yourgroup
我能够通过更改“/etc/passwd”中的以下行来解决问题
www-data:x:33:33:www-data:/var/www:/bin/bash
我 created/updated 用户,提供了所需的权限,创建了 ssh 密钥并添加到存储中,它现在正在运行。谢谢!
我正在尝试 运行 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 <>")
但不知何故,当我 运行 来自网络 URL 的脚本时:“http://ip_adr/webtest/webgui.py”,我看到目录是用 www-data 用户而不是我的用户名创建的。由于 git 克隆将无法工作,因为 ssh 密钥仅添加到我的用户名的 Stash 中。
drwxr-xr-x 2 www-data www-data 4.0K Nov 28 16:59 fresh-cloned
我该如何解决这个问题?是否可以在 运行 网络 URL 的脚本时将用户更改为我的用户名?
如果您希望脚本 运行 作为 Apache HTTPD 的用户,您需要加载 mod_suexec 并相应地设置指令 SuexecUserGroup,例如:
SuexecUserGroup youruser yourgroup
我能够通过更改“/etc/passwd”中的以下行来解决问题
www-data:x:33:33:www-data:/var/www:/bin/bash
我 created/updated 用户,提供了所需的权限,创建了 ssh 密钥并添加到存储中,它现在正在运行。谢谢!