【问题标题】:sudo as www-data file permissionssudo 作为 www-data 文件权限
【发布时间】: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


    【解决方案1】:

    关于你的 Q1:

    将 sudo 调用作为 www-data 有什么区别? 调用脚本与实际调用脚本为 www-data 通过网络服务器?

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

    第二季度:

    我可以通过实际的服务器调用来获得与 sudo 相同的输出 打电话?

    不知道在 python 中是怎么做的,但是在 php 中你有这两个指令:execshell_exec,使用第二个,你可能会得到一个输出作为返回值。

    【讨论】:

      【解决方案2】:

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

      尝试使用脚本的完整路径。

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

      【讨论】:

        猜你喜欢
        • 2015-08-11
        • 2014-09-05
        • 1970-01-01
        • 2022-01-07
        • 2018-03-25
        • 1970-01-01
        • 1970-01-01
        • 2020-09-12
        • 2017-10-21
        相关资源
        最近更新 更多