2009-05-20 56 views
2

是否可以在Linux下創建一個安全運行任意Python腳本的環境?這些腳本應該從不受信任的人那裏接收,可能太大而無法手動檢查。Linux中的安全Python環境

一個非常蠻力的解決方案是創建一個虛擬機並在每次啓動不受信任的腳本後恢復其初始狀態。 (太貴了。)

我想知道是否有可能限制Python訪問文件系統並與其他程序進行交互等等。

+0

類似Qs的在Linux或Unix沙盒/監禁過程: * http://unix.stackexchange.com/q/6433/4319 * http://stackoverflow.com/q/3859710/94687 * http://stackoverflow.com/q/4410447/94687 * http://stackoverflow.com/q/4249063/94687 * http://stackoverflow.com/q/1019707/94687 – 2011-03-13 13:46:53

回答

4

考慮使用chroot監牢。這不僅非常安全,得到很好的支持和測試,而且還適用於從python運行的外部應用程序。

2

您可以運行jython並使用JVM的沙盒機制。 JVM中的沙箱非常強大,非常瞭解,並且或多或少地有文檔記載。需要一些時間才能準確定義你想要允許的內容以及你想要允許的內容,但是你應該能夠從中獲得非常強大的安全性......

另一方面,jython不是100與%兼容CPython的...

4

有4個東西,你可以嘗試:

  • 正如你已經提到的,使用虛擬機或虛擬化的一些其他形式的(也許是Solaris區域有足夠的輕量級?)。如果腳本在那裏破壞操作系統,那麼你不在乎。
  • 使用chroot將shell會話放入虛擬根目錄,與主操作系統根目錄分開。
  • 使用systrace。把它看作系統調用的防火牆。
  • 使用「監獄」,它是建立在systrace,讓每一個它自己的進程表監獄等

Systrace已經失密最近,所以要意識到這一點。

1

難道你不能只是作爲一個用戶,而不能訪問除目錄中的腳本之外的任何東西嗎?