Linux sudo作为www数据文件的权限

Linux sudo作为www数据文件的权限,linux,apache,bash,permissions,Linux,Apache,Bash,Permissions,我在使用ApacheWebServer作为www数据调用bash脚本时遇到问题 当我从服务器调用它时,我得到了一个IO错误,它没有给我整个程序的输出,只给了我在脚本中创建的文件的“]没有这样的文件或目录” 所以我想看到更多的细节,我想这是一种以完全相同的方式运行程序的方法,但只是通过终端,这样我可以看到更多的输出: sudo-u www-data./bashscript 然而,这样做之后,我没有得到任何错误,我的bash脚本也完全完成了 那么,作为www数据进行sudo调用和调用脚本与通过web

我在使用ApacheWebServer作为www数据调用bash脚本时遇到问题

当我从服务器调用它时,我得到了一个IO错误,它没有给我整个程序的输出,只给了我在脚本中创建的文件的“]没有这样的文件或目录”

所以我想看到更多的细节,我想这是一种以完全相同的方式运行程序的方法,但只是通过终端,这样我可以看到更多的输出:

sudo-u www-data./bashscript

然而,这样做之后,我没有得到任何错误,我的bash脚本也完全完成了

那么,作为www数据进行sudo调用和调用脚本与通过web服务器实际调用脚本作为www数据之间的区别是什么呢? 更重要的是,我可以得到实际的服务器调用,以获得与sudo调用相同的输出

我现在正在为我的网页使用python cgi,所以我只使用子流程进行系统调用,下面是我的代码,尽管我认为这不是问题所在:

w = subprocess.Popen("./nameofscript",  stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
for line in w.stdout.readlines():
    print line
kill = w.wait()

非常感谢

请确保apache有权使用此脚本访问文件夹

尝试使用脚本的完整路径

如果您使用python脚本,请确保该脚本是可执行的,并且具有#!“shebang”在第一行。

关于您的第一季度:

将sudo调用作为www数据和 调用脚本与实际将脚本作为www数据调用 通过网络服务器

我想说的是,在操作系统提示符下以
sudo
运行时,当发生故障或错误时,您可以接收更多信息,而有时从浏览器或程序langage shell调用运行时,即使命令从未运行,您也可能不会收到任何反馈

和Q2:

我可以得到实际的服务器调用,以获得与sudo相同的输出 打电话

不知道如何在python中实现,但在php中有两条指令:使用第二条指令,您可能会得到一个作为返回值的输出