[英]Python & Django: Working on a chroot jail to run a single bash script
[英]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.