簡體   English   中英

如何從 Chroot 監獄中導入 Python 庫?

[英]How to import a Python library from a Chroot jail?

假設我正在嘗試從目錄中的庫中執行一些代碼,我們稱之為/home/user/project 在 Bash 中,它會像這樣 go :

cd /home/user/project
python -c "from MyLib import DoSth; var = DoSth(); print(var)"

現在我的確切情況有點復雜。 我的 Python 代碼(包括所有已安裝的庫)位於 chroot 監獄中。 我正在嘗試從監獄外執行代碼。 我嘗試了以下方法:

cd /home/user/project
sudo -- chroot $CHROOT_DIR python3 -c "from MyLib import DoSth; var = DoSth(); print(var)"

這打印:

ModuleNotFoundError:沒有名為“MyLib”的模塊

這是因為監獄中的當前目錄只是/因為之前的cd語句沒有在監獄中執行。 當我這樣嘗試時:

sudo -- chroot $CHROOT_DIR cd /home/user/project; python3 -c "from MyLib import DoSth; var = DoSth(); print(var)"

我收到了這個錯誤:

chroot:無法運行命令“cd”:沒有這樣的文件或目錄

有沒有一種方法可以使用該庫而無需更改監獄內的目錄? 或者至少幫助我找到一種方法來更改監獄內的目錄。

編輯:

我想做的是與建議的問題完全相反。 我正在嘗試從監獄外執行代碼(完全在監獄內)。 代碼在監獄內完美運行,但不能從外部運行。 /home/user/project是監獄內的一個目錄。

我設法通過運行包含我需要的所有命令的腳本而不是運行單獨的命令來做到這一點,因為cd總是無法在 chroot 上運行(即使該目錄位於監獄內)。 這是命令:

sudo -- chroot $CHROOT_DIR /bin/bash /home/user/myscript

在我的腳本中:

cd /home/user/project
python3 -c "from MyLib import DoSth; var = DoSth(); print(var)"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM