我是一个相当新的 PHP 编码器。我有一个运行 PHP 4.3.9 的 Apache 服务器,我正在尝试为我们的内部用户开发一个小工具。该工具的结构如下: PHP 代码 --- 调用 ---> Perl 脚本 --- 访问 ---> 受保护文件系统上的文件
当您在浏览器中打开 .php 页面时,身份验证是自动的。我相信它是由 LDAP 在后台处理的。$_SERVER["PHP_AUTH_USER"] & $_SERVER["PHP_AUTH_PW"] 会自动且正确地填充。
如果我在我的 PHP 代码中运行 whoami,那么我会将用户视为“apache”。因此 Perl 脚本是在上下文中调用的,并且具有用户 'apache' 的权限。这些权限用于访问受保护文件系统上的文件。'apache' 没有访问此文件所需的权限,并且 Perl 脚本失败。如果我通过 SSH 连接到该服务器并直接在 shell 上运行 Perl 脚本,它可以正常工作,因为它在我的用户权限下运行。
我想要做的是使用已经过身份验证的用户的权限运行 Perl 脚本。我可能会想出一种方法,将 $_SERVER["PHP_AUTH_USER"] & $_SERVER["PHP_AUTH_PW"] 作为参数传递给 Perl 脚本,并使用它来访问文件。我想知道是否有更好的方法来做到这一点。
有什么建议吗?提前致谢!