我有一个问题,我已经有一个解决方案,但我不确定它是否是最好的。为了不影响任何可能的回应,我不会透露我选择如何解决这个问题。
假设我有一个拥有不同用户的网站。
每个用户都拥有一组服务器端文件。
我希望每个用户都能运行不受信任的服务器端二进制应用程序。该二进制应用程序需要与用户的服务器端文件一起工作。
我说的不受信任是指,我们假设它是“bash”——完全可以被利用。我主要想确保:
- 每个用户只能从这个不受信任的应用访问自己的文件
- 每个用户都无法通过这个不受信任的应用程序影响整个系统的运行或安全
- 该解决方案可以合理地扩展到数千名用户
我的问题是:您将如何提供这一点?
答案1
苏普作为包装器,在用户上下文中执行应用程序的 CGI;此外,您还可以获得大量不错的工具和环境配置。我们已将其扩展到超过一万名独立用户。
答案2
为每个用户运行一个虚拟主机,并使用 suexec 执行在 chroot 包装器中运行的 cgi 应用程序
请参阅此处教程, 例如..