我正在构建一个将在后台运行tcl脚本的网站。作为不同的用户从网站执行tcl脚本
我有几个tcl脚本,我想从我的网站打电话并执行它。我在Linux/Apache服务器中使用PHP设计页面。我很少有用户会执行这些脚本,但这些脚本应该以该用户而不是webuser(_www)执行,因为tcl脚本最终会自动将报告发送给执行该脚本的用户。
我认为的一个选择是更改用户(su),然后通过shell_exec
执行脚本,但是我发现一些安全问题。
那么是否有更好的方法呢?
我正在构建一个将在后台运行tcl脚本的网站。作为不同的用户从网站执行tcl脚本
我有几个tcl脚本,我想从我的网站打电话并执行它。我在Linux/Apache服务器中使用PHP设计页面。我很少有用户会执行这些脚本,但这些脚本应该以该用户而不是webuser(_www)执行,因为tcl脚本最终会自动将报告发送给执行该脚本的用户。
我认为的一个选择是更改用户(su),然后通过shell_exec
执行脚本,但是我发现一些安全问题。
那么是否有更好的方法呢?
我想用sudo
执行脚本,您可以进行配置,以便您的WWW用户可以在其他用户下执行1个单一命令(您的tcl脚本),而不需要密码。
见this有关sudo的一些参考(ESP配置部分)
一个Tcl-具体的解决方案,这可能是建立自己的Tcl脚本到starpacks - 单文件的可执行文件 - 你再使拥有和由用户设置,你希望他们运行。这仅适用于希望用户成为脚本所有者的情况,而不是通过Internet登录的其他用户。后一种情况是很多难以正确(由于涉及到复杂的安全问题),所以人们部署整个应用程序基础结构来处理它。
你考虑过suEXEC吗?
[以不同用户身份运行exec]的可能重复(http://stackoverflow.com/questions/4711609/running-exec-as-a-different-user) – 2013-03-13 21:25:29