【问题标题】:Perl/Python Scripts Fail to Access Internet/Network through Web GUIPerl/Python 脚本无法通过 Web GUI 访问 Internet/网络
【发布时间】:2016-06-27 22:46:59
【问题描述】:

我可以问这个问题的另一种方式是:

如何将 Apache 提供的页面设置为具有更高权限? 这类似于我在 IIS 中设置应用程序池以使用不同的凭据。

我有多个要通过 Web 前端发布的 Perl 和 Python 脚本。前端旨在运行我在数据库中的任何脚本。对于大多数脚本,我没有任何问题......但是任何似乎利用网络的东西都不会返回任何内容。未报告错误消息或故障。从 CLI 作为 ROOT 运行,从 WEB GUI 运行 作为 www-data 调用相同的命令失败。

我在这个问题中将 Python 和 Perl 混为一谈,因为问题是相同的,这让我相信这不是代码问题,而是权限问题。还有为什么我最初不包括代码。

这些是使用 Apache 和 PHP5 在 linux 上运行的。我相信 Python 2.7 和 Perl5。以下是我拥有的应用失败的示例:

  1. Python - 连接到 VirusTotal API
  2. Perl - 连接到域并使用 GraphViz 创建图表
  3. Perl - 在本地网段上执行 LAN 唤醒功能。

【问题讨论】:

  • 转到文档根目录并执行su www-data。然后尝试以用户 www-data 的身份运行脚本。如果失败,则不是 apache 的问题,而仅仅是因为 UNIX 权限不允许您访问脚本或 perl/python 二进制文件。
  • 当我尝试 su www-data 时,我得到“此帐户当前不可用。”
  • 表示该账号没有shell。请参阅geekpeek.net/… 了解如何临时修复它以进行测试,但我建议之后将其设置回来。

标签: php python apache perl privileges


【解决方案1】:

因此,在我发布此内容后,我研究了我用于 IIS 的处理程序。这使我走上了 SUEXEC 的道路,并且通过我尝试的一切,我无法让 Apache 加载它。甚至确保我设置了 SETUID 和 SETGID 的位。

当我研究遇到 .htaccess 文件以及它们如何启用 CGI 脚本时。我不想放入 .htaccess 文件,所以我只是确保将 apache.conf 配置为允许 CGI。这也没有帮助。

最后,当我学习 .htaccess 时,他们提到了 ScriptAlias。我相信这就是解决我的问题的原因。我修改了 apache 配置文件中的 ScriptAlias 部分以指向包含脚本的目录。在对脚本读/写文件的绝对目录和权限大惊小怪之后,我得到了一切工作,除了它没有通过环境 http_proxy 设置的代理。这是一个单独的问题,所以我认为我很高兴继续讨论这个问题。我将在我的 perl LAMP 上尝试相同的解决方案。

【讨论】:

猜你喜欢
  • 2016-05-06
  • 1970-01-01
  • 2013-04-03
  • 2015-03-21
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
  • 2011-12-11
  • 2015-09-22
相关资源
最近更新 更多