我正在建立一个将在后台运行tcl脚本的网站。
我有很少的tcl脚本,我想从我的网站上调用并执行它。我正在Linux / Apache服务器中使用PHP设计页面。我很少有用户会执行这些脚本,但这些脚本应该以该用户而不是webuser(_www)执行,因为tcl脚本会自动将报告最终发送给执行它的用户。
我认为一个选项是更改用户(su)然后通过shell_exec
执行脚本,但我看到了一些安全问题。
那么有更好的方法吗?
答案 0 :(得分:1)
我将使用sudo
执行脚本,您可以进行配置,以便您的WWW用户可以在其他用户下执行1个单一命令(您的tcl脚本)而无需密码。
有关sudo(特别是配置部分)的一些参考,请参阅this
答案 1 :(得分:0)
特定于Tcl的解决方案可能是将您的Tcl脚本构建到starpacks(单文件可执行文件)中,然后由您希望它们运行的用户自行设置set-set。这仅适用于您希望用户成为脚本所有者的情况,而不适用于通过Internet登录的其他用户。后一种情况很多难以正确处理(由于涉及的安全问题复杂),以至于人们部署整个应用程序基础架构来处理它。
您考虑过suEXEC吗?