【发布时间】: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。以下是我拥有的应用失败的示例:
- Python - 连接到 VirusTotal API
- Perl - 连接到域并使用 GraphViz 创建图表
- Perl - 在本地网段上执行 LAN 唤醒功能。
【问题讨论】:
-
转到文档根目录并执行
su www-data。然后尝试以用户 www-data 的身份运行脚本。如果失败,则不是 apache 的问题,而仅仅是因为 UNIX 权限不允许您访问脚本或 perl/python 二进制文件。 -
当我尝试 su www-data 时,我得到“此帐户当前不可用。”
-
表示该账号没有shell。请参阅geekpeek.net/… 了解如何临时修复它以进行测试,但我建议之后将其设置回来。
标签: php python apache perl privileges