首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个Chroot监狱并将所有系统文件复制到监狱

创建一个Chroot监狱并将所有系统文件复制到监狱
EN

Stack Overflow用户
提问于 2013-08-12 03:45:09
回答 2查看 2.8K关注 0票数 1

我正在linux中创建chroot监狱,但是我不能访问任何系统文件,比如ls/cd/gcc/g++。我需要把什么必需的libs/bin/systme文件复制到我的chroot监狱?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-12 04:19:13

像ls/cd/gcc/g++这样的可执行文件依赖于共享库(除非不是静态构建它们)。因此,您需要做的是将所有这些共享库依赖项复制到适当的位置到chroot监狱中,还需要找到那些共享依赖项是什么。要知道你需要"ldd“的帮助。

要查看gcc的共享依赖项,请执行以下操作:

代码语言:javascript
复制
           ldd /usr/bin/gcc

在我的系统中,它显示了以下输出:

代码语言:javascript
复制
linux-vdso.so.1 =>  (0x00007fffd9bff000)
libc.so.6 => /lib64/libc.so.6 (0x00000030c9c00000)
/lib64/ld-linux-x86-64.so.2 (0x00000030c9800000)

因此,gcc有着标准c库libc.so的依赖性,它还需要ld (可执行加载程序),将这些共享库与gcc一起放到适当的地方(即/lib64下的libc )到您的chroot监狱中。所以gcc可以在打电话给gcc的时候装载必要的东西。

票数 0
EN

Stack Overflow用户

发布于 2013-08-12 04:27:58

要创建一个基本的基于debian的根文件系统(不一定在基于debian的主机系统上),可以使用debootstrapmultistrap工具。我认为也有一个基于fedora的根文件系统的febootstrap等价。

在debootstrap中,您将完全控制应该安装哪些包,而不是基本必需的包,它们是带有“优先级:必需”和“优先级:重要”标记的包。在初始额外包的情况下,您负责包依赖关系。

multistrap是一个较新的工具,它使用apt,可以利用多个存储库,因此可以处理依赖问题。

您还可以进行交叉引导,这是为另一个体系结构创建根fs。这在创建嵌入式或虚拟化系统时非常有用。

示例debootstrap命令:

代码语言:javascript
复制
debootstrap wheezy rootfs/ http://ftp.us.debian.org/debian

然后你可以在里面着色,做任何需要做的事情。

到目前为止,这是创建色度的最简单方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18179268

复制
相关文章

相似问题

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