将apache php进程作为经过身份验证的用户运行

时间:2012-06-17 17:38:58

标签: php apache ldap suexec

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

我们目前在内联网上运行ubuntu计算机,允许用户使用我们的内部生产网站以及每个用户的开发网站来访问ssh并运行Web服务器。我们的生产网站的所有目录都设置为0750,其中组是ldap组,属于每个ldap组的www-data用户。我们的~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)

我们理想的结构:

1 个答案:

答案 0 :(得分:0)

我建议你研究一下这个项目:suPHP

从他们的网站上说:

  

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

我希望有所帮助!