【问题标题】:Python CGI script running from web URL creates directory with www-data user从 Web URL 运行的 Python CGI 脚本使用 www-data 用户创建目录
【发布时间】:2017-04-12 21:05:15
【问题描述】:

我正在尝试运行 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 <>")

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

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

我该如何解决这个问题?从网页 URL 运行脚本时是否可以将用户更改为我的用户名?

【问题讨论】:

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


    【解决方案1】:

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

    SuexecUserGroup youruser yourgroup
    

    【讨论】:

      【解决方案2】:

      我能够通过更改“/etc/passwd”中的以下行来解决问题

      www-data:x:33:33:www-data:/var/www:/bin/bash
      

      我创建/更新了用户,提供了所需的权限,创建了 ssh 密钥并添加到存储中,它现在可以工作了。谢谢!

      【讨论】:

        猜你喜欢
        • 2018-08-11
        • 1970-01-01
        • 1970-01-01
        • 2014-11-19
        • 1970-01-01
        • 2020-08-17
        • 2019-02-10
        • 2016-07-30
        • 1970-01-01
        相关资源
        最近更新 更多