首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Chroot监狱导入Python库?

如何从Chroot监狱导入Python库?
EN

Stack Overflow用户
提问于 2021-05-10 21:27:50
回答 1查看 298关注 0票数 1

假设我试图从目录中的库中执行一些代码,让我们称之为/home/user/project。在巴什会是这样的:

代码语言:javascript
复制
cd /home/user/project
python -c "from MyLib import DoSth; var = DoSth(); print(var)"

现在我的确切情况更复杂了。我的Python代码(包括所有已安装的库)位于chroot监狱中。我在监狱外面执行代码。我尝试了以下几点:

代码语言:javascript
复制
cd /home/user/project
sudo -- chroot $CHROOT_DIR python3 -c "from MyLib import DoSth; var = DoSth(); print(var)"

这些指纹:

ModuleNotFoundError:没有名为“MyLib”的模块

这是因为监狱中的当前目录只是/,因为前面的cd语句没有在监狱中执行。当我这样做的时候:

代码语言:javascript
复制
sudo -- chroot $CHROOT_DIR cd /home/user/project; python3 -c "from MyLib import DoSth; var = DoSth(); print(var)"

我得到了这个错误:

chroot:未能运行命令‘cd’:没有这样的文件或目录

有没有一种不用改变监狱目录就可以使用这个库的方法?或者至少帮我找个办法改变监狱里的目录。

编辑:

我想要做的是与suggested question完全相反。我正在尝试从监狱外执行代码(完全在监狱内)。代码在监狱里运行得很好,但不是从外部运行的。/home/user/project是监狱里的一个目录。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-18 17:32:01

我通过运行一个包含我需要的所有命令的脚本来做到这一点,而不是运行单独的命令,因为cd总是无法在chroot上运行(即使目录在监狱中)。以下是命令:

代码语言:javascript
复制
sudo -- chroot $CHROOT_DIR /bin/bash /home/user/myscript

在myscript中:

代码语言:javascript
复制
cd /home/user/project
python3 -c "from MyLib import DoSth; var = DoSth(); print(var)"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67477897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档