2013-06-28 75 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腳本,如上當地情況進行了說明。

如果您需要進一步的指導,您將需要發佈特定的代碼段和錯誤信息或故障信息,以便我們可以評估的問題是什麼。

相關問題