繁体   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