1

有没有办法让 php 进程通过 apache 作为通过 ldap 验证的用户运行?

我们目前在我们的 Intranet 上运行 ubuntu 机器,允许用户通过 ssh 访问,并且还通过我们的内部生产网站以及每个用户的开发网站运行 Web 服务器。我们生产网站的所有目录都设置为 0750,该组是一个 ldap 组,www-data 用户属于每个 ldap 组。我们约 100 个用户中的每一个都属于一组特定的 ldap 组,因此当通过 ssh 登录时,他们只有对相应 ldap 组的文件/目录的读取权限。我们还使用我们的 ldap 组来控制对我们的 svn 存储库的 r/w 访问。

我们打算将用户开发目录移动到单独的虚拟主机,以拥有该目录的用户使用 suexec/suphp 运行(对此还不太确定,但似乎有据可查)。但是,用户也可以轻松地将文件添加到生产网站。我们担心的是用户可以将脚本添加到生产网站,然后可以读取/复制我们生产网站中的所有其他脚本。是否可以让通过 apache 执行的 php 脚本以经过身份验证的用户身份运行,这样它们的访问权限就会受到限制,就像通过命令行运行脚本一样?

这是一个示例目录结构:

目录:

drwxr-x--- 16 admin ldab_a    proj_a
drwxr-x---  1 admin ldap_b    proj_b
drwxr-x---  1 admin ldap_c    proj_c
drwxr-x---  3 admin ldap_d    proj_d

用户:组成员资格

jane     (ldap_a,ldap_c)
tom      (ldab_b,ldap_c)
www-data (ldap_a,ldap_b,ldap_c,ldap_d)

以及我们想要的结构:

4

1 回答 1

0

我建议你看看这个项目:suPHP

从他们的网站上说:

suPHP 是一个以所有者权限执行 PHP 脚本的工具。它由一个 Apache 模块 (mod_suphp) 和一个 setuid 根二进制文件 (suphp) 组成,Apache 模块调用它来更改执行 PHP 解释器的进程的 uid。

我希望这会有所帮助!

于 2013-03-24T19:04:02.170 回答