Apache:根据 SSL 客户端更改 PHP suexec 用户/组

Apache:根据 SSL 客户端更改 PHP suexec 用户/组

我有一台运行多个 vhost 站点的服务器,想知道是否有办法根据连接到它们的客户端以不同的用户/组执行一些 vhost PHP。我想可以这样做:

  1. 客户端通过 https 连接
  2. 客户端可以提供 SSL 证书(或不提供)
  3. 服务器决定是否:
    • 如果没有提供证书,则在 user1/group1 下运行 PHP
    • 如果客户端发送了特定的白名单证书和特定的 cookie,则在 user2/group2 下运行 PHP

有人知道这样的事情是否有可能吗?

答案1

从技术上来说,这也许是可行的,但要实现它需要大量的手动工作。我认为不存在允许您设置正在运行的用户/组的针对每个请求的功能。

问题是,要切换到不同的用户/组,您需要让做出此决定的代码以 root 身份运行。即使您使用中间脚本来做出此决定,它也不太可能以 root 身份运行,因此无法直接“切换到”不同的用户,因为根本不会发生切换。

因此我认为,如果不做大量工作,就不会。

相关内容