以不同的用户从网站执行tcl脚本


Execute tcl script from website as different users

我正在建立一个将在后台运行tcl脚本的网站。

我有几个tcl脚本,我想从我的网站调用并执行它。我正在设计使用PHP在Linux/Apache服务器的页面。我有几个用户会执行这些脚本,但这些脚本应该以该用户而不是web用户(_www)的身份执行,因为tcl脚本最终会自动向执行它的用户发送报告。

我想的一个选择是更改用户(su),然后通过shell_exec执行脚本,但是我看到了一些安全问题。

那么有没有更好的方法呢?

我将使用sudo执行脚本,您可以配置使您的WWW用户可以在其他用户下执行单个命令(您的tcl脚本)而无需密码。

关于sudo的一些参考(尤其是配置部分)

一个特定于Tcl的解决方案可能是将Tcl脚本构建为starpack(单文件可执行文件),然后由您希望它们作为其运行的用户拥有并设置。这只适用于您希望用户是脚本的所有者,而不是通过internet登录的其他用户的情况。后一种情况要正确处理要困难得多(由于涉及到复杂的安全问题),以至于人们需要部署整个应用程序基础设施来处理它。

你考虑过suEXEC吗?