【发布时间】:2015-02-12 12:30:41
【问题描述】:
我在使用 apache 网络服务器作为 www-data 调用 bash 脚本时遇到问题。
当我从服务器调用它时,我得到一个 IO 错误,它没有给我程序的全部输出,而只是我在脚本中创建的文件的“]没有这样的文件或目录”通过脚本。
所以我想查看更多详细信息,我认为这是一种以完全相同的方式运行程序的方法,但只是通过终端,所以我可以看到更多输出:
sudo -u www-data ./bashscript
但是,执行此操作后,我没有收到任何错误,并且我的 bash 脚本已完全完成。
那么作为 www-data 进行 sudo 调用和调用脚本与通过网络服务器实际调用脚本作为 www-data 有什么区别? 更重要的是,我可以获得与 sudo 调用相同的输出吗?
我现在正在为我的网页使用 python cgi,所以我只是使用 subprocess 进行系统调用,这是我的代码,虽然我认为这不是问题:
w = subprocess.Popen("./nameofscript", stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
for line in w.stdout.readlines():
print line
kill = w.wait()
非常感谢!
【问题讨论】:
标签: linux apache bash permissions