WEB开发网
开发学院操作系统Linux/Unix 理解 chroot 阅读

理解 chroot

 2009-07-12 08:32:13 来源:WEB开发网   
核心提示: 清单 1. 准备切换的目录结构$ pwd/home/wstone/Build/work$ tree ..|-- bin| |-- ash -> busybox| |-- bash| `-- busybox|-- etc`-- newhome这里使用了静态编译后的 busybox 来提

清单 1. 准备切换的目录结构

$ pwd

/home/wstone/Build/work

$ tree .

.

|-- bin

| |-- ash -> busybox

| |-- bash

| `-- busybox

|-- etc

`-- newhome

这里使用了静态编译后的 busybox 来提供必要的命令,使用静态编译仅是为了避免动态库文件的拷贝。当然我们也可以拷贝旧系统的下的命令到新的目录结构中使用,但是那些命令通常是动态编译的,这就意味着我们不得不拷贝相关的动态库文件到相应的目录结构中。同时这里的 bash 也非真正的 Bourne Again shell,而是一个执行 ash 的 shell 脚本。在清单 2中,展示了位于旧系统中的 chroot 命令的使用。需要注意的是在使用 chroot 时,要求拥有相关的操作权限。

清单 2. 位于系统中的 chroot 的使用

$ pwd 
/home/wstone/Build/work 
 
# chroot . 
# pwd 
/ 
 
# ls 
ash: ls: not found 
 
# busybox ls 
bin   etc   newhome 
 
3 directories, 3 files 
 

我们可以看到当前路径(/home/wstone/Build/work/),在经过 chroot 后转变成了 `/` 目录,同时从新根下读取了与系统相关的目录结构。使用 ls 命令失败是由于我们创建的测试目录结构中并没有包含命令 ls,但是我们成功的使用了 busybox 中的 ls。以上看到的只是 chroot 的一种使用方式,其实标准的 chroot (Coreutils - GNU core utilities 提供的 chroot)使用方式有2种:

清单 3. 标准 chroot 的2种使用方式

[1] chroot NEWROOT [COMMAND...] 
[2] chroot OPTION 
 

上一页  1 2 3 4 5  下一页

Tags:理解 chroot

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接