【问题标题】:Can this be done? Bash script in a web application这可以做到吗? Web 应用程序中的 Bash 脚本
【发布时间】:2012-06-13 09:22:29
【问题描述】:

我有一个安装应用程序的 bash 脚本(支持 linux/unix)。 我不想在终端中执行脚本,而是将其部署为 Web 应用程序。

我想为这个脚本制作一个网页图形界面,以便用户可以在网页表单中提供必要的输入,准备好后,将这些变量传递给 bash 脚本以执行。

这个脚本显然需要root权限。

我打算使用 tomcat 7 / servlet / jsp 来实现。我想将其部署为 .war 文件。

首先,这可以做到吗?有可能吗?

第二,有什么例子吗?我什么都没找到。

第三,任何替代方法/更好的想法?

【问题讨论】:

    标签: bash tomcat web-applications war


    【解决方案1】:

    嗯,这是可能的,但请记住,清理用户输入是很困难的。

    您要做的是使用脚本语言或框架(我推荐 sinatra),并使用 html 表单将参数传递给后端。在后端,你可以通过传递你想要的任何参数来调用你的脚本。

    sinatra 为例:

    post '/whatever' do
      # This is dangerous!
      `myscript #{params[...]}`
    end
    

    【讨论】:

    • 原始脚本等待用户输入。我想重新制作脚本,这样就不用等待用户输入,而是使用表单中给出的变量值
    【解决方案2】:

    我会尝试 tomcat 自己的 CGI 支持。

    http://tomcat.apache.org/tomcat-6.0-doc/cgi-howto.html

    【讨论】:

      【解决方案3】:

      错误,但您希望它在客户端运行,对吧?

      所以你并没有真正在你的系统上将它作为 bash 运行,你只是在你的 web 框架中对其进行模板化。

      如果浏览器可以显示这个,它不会只是 d/l 作为一个文件,所以你需要在响应中设置一个 Content-Disposition: attachment 标题来强制广告/l.

      您自然需要用户的合作才能在他或她的系统上以 root 身份运行它...

      【讨论】:

      • 是的,完全正确。但我不明白你到底在说什么,“你需要在响应中设置一个 Content-Disposition: 附件标题以强制 ad/l。”???
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-05
      • 1970-01-01
      • 2012-06-08
      相关资源
      最近更新 更多