2013-06-28 74 views
0

获取输出回到网页我perl脚本读取网络流量并将特定长度的数据包的有效载荷打印回终端。并为此发生,脚本应该由root启动,否则数据包将不会被读取。以root身份执行远程计算机上的perl脚本,并使用javascript

我在perl中使用pcap来达到这个目的。

现在我在我的网络服务器上有一个网页。我可以从我的网页执行该perl脚本,并将正在打印在终端上的输出到我的网页吗?

我想用JavaScript来达到这个目的,但我不知道它是如何完成的。 我试过Google搜索它,我得到的只是ssh [email protected] "perl pathto/perlfile.pl"

有人可以帮我解决这个问题吗?

+0

Google给了你什么?填写脚本的用户,主机和名称,你应该有一个起点。当然,这个完整的想法并不理想,但这似乎不是你的问题。 – innaM

+0

@innaM我试过了,但那种方法不起作用。 我试着运行一个不需要root权限但不起作用的示例ping脚本 –

+0

您的编辑清楚地表明您愿意使用仅限javascript的解决方案来解决问题。你现在可以忘记这一点。让某种网页触发按root运行的作业是一个非常非常糟糕的主意,如果你确实需要这样做,那么你应该有很多很多的经验。 – innaM

回答

0
  • 从网页发起一个命令,发出AJAX调用你的Web服务器运行的另一个CGI脚本。

    AJAX调用可以返回运行命令的结果(通常以JSON或XML格式),然后调用一些JavaScript处理程序在页面的DOM中呈现该数据。

  • 要在本地运行的东西作为根Web服务器的UNIX机器上,您将需要一个suid脚本从第一子弹提到的(因为Web服务器的CGI脚本调用,所有的脚本,它运行通常为运行出于安全原因,非root用户)。

  • 到另一台机器上运行的东西为根,你已经正确地发现,你需要使用SSH(来自同一CGI脚本):​​

    您需要正确设置2个系统之间的SSH密钥所以ssh不会要求输入密码。

    以非root用户身份运行时,您可能无法以超级用户的身份执行ssh操作;在这种情况下,你将需要:

    • ssh作为同一用户为你的CGI脚本

    • 运行有远程服务器上执行的命令运行SUID脚本,如上当地情况进行了说明。

如果您需要进一步的指导,您将需要发布特定的代码段和错误信息或故障信息,以便我们可以评估的问题是什么。

相关问题