在Ubuntu系统中配置chroot环境的教程

我爱林夕5207

我爱林夕5207

2016-03-31 15:32

下面请跟着图老师小编一起来了解下在Ubuntu系统中配置chroot环境的教程,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

在Ubuntu系统中配置chroot环境的教程

   你可能会有很多理由想要把一个应用、一个用户或者一个环境与你的 linux 系统隔离开来。不同的操作系统有不同的实现方式,而在 linux 中,一个典型的方式就是 chroot 环境。

  在这份教程中,我会一步一步指导你怎么使用 chroot 命令去配置一个与真实系统分离出来的独立环境。这个功能主要可以用于测试项目,以下这些步骤都在 Ubuntu 14.04 虚拟专用服务器(VPS)上执行。

  学会快速搭建一个简单的 chroot 环境是一项非常实用的技能,绝大多数系统管理员都能从中受益。

  Chroot 环境

  一个 chroot 环境就是通过系统调用,将一个本地目录临时变成根目录。一般所说的系统根目录就是挂载点"/",然而使用 chroot 命令后,你可以使用其它目录作为根目录。

  原则上,任何运行在 chroot 环境内的应用都不能访问系统中其他信息(LCTT译注:使用 chroot 把一个目录变成根目录,在里面运行的应用只能访问本目录内的文件,无法访问到目录外的文件。然而,运行在 chroot 环境的应用可以通过 sysfs 文件系统访问到环境外的信息,所以,这里有个原则上的修饰语)。

  Chroot 环境的用处

  测试一个不稳定的应用服务不会影响到整个主机系统。

  就算使用 root 权限做了些不当的操作,把 chroot 环境搞得一塌糊涂,也不会影响到主机系统。

  可以在你的系统中运行另外一个操作系统。

  举个例子,你可以在 chroot 环境中编译、安装、测试软件,而不去动真实的系统。你也可以在64位环境下使用 chroot 创建一个32位环境,然后运行一个32位的程序(LCTT泽注:如果你的真实环境是32位的,那就不能 chroot 一个64位的环境了)。

  但是为了安全考虑,chroot 环境为非特权用户设立了非常严格的限制,而不是提供完整的安全策略。如果你需要的是有完善的安全策略的隔离方案,可以考虑下 LXC、Docker、vservers等等。

  Debootstrap 和 Schroot

  使用 chroot 环境需要安装 debootstrap 和 schroot,这两个软件都在 Ubuntu 的镜像源中。其中 schroot 用于创建 chroot 环境。

  Debootstrap 可以让你通过镜像源安装任何 Debian(或基于 Debian 的)系统,装好的系统会包含最基本的命令。

  Schroot 命令允许用户使用相同的机制去创建 chroot 环境,但在访问 chroot 环境时会做些权限检查,并且会允许用户做些额外的自动设置,比如挂载一些文件系统。

  在 Ubuntu 14.04 LTS 上,我们可以通过两步来实现这个功能:

  1. 安装软件包

  第一步,在Ubuntu 14.04 LTS 主机系统上安装 debootstrap 和 schroot:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  $ sudo apt-get install debootstrap

  $ sudo apt-get install schroot

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  2. 配置 Schroot

  现在我们有工具在手,需要指定一个目录作为我们的 chroot 环境。这里创建一个目录先:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  sudo mkdir /linoxide

  编辑 schroot 的配置文件:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  sudo nano /etc/schroot/schroot.conf

  再提醒一下,我们现在是在 Ubuntu 14.04 LTS 系统上。如果我们想测试一个软件包能不能在 Ubuntu 13.10(代号是Saucy Salamander) 上运行,就可以在配置文件中添加下面的内容:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  [saucy]

  description=Ubuntu Saucy

  location=/linoxide

  priority=3

  users=arun

  root-groups=root

在Ubuntu系统中配置chroot环境的教程 图老师

  根据你的系统要求,调整上面的配置信息。

  3. 使用 debootstrap 安装32位 Ubuntu 系统

  Debootstrap 命令会在你的 chroot 环境里面下载安装一个最小系统。只要你能访问镜像源,你就可以安装任何基于 Debian 的系统版本。

  前面我们已经创建了 /linoxide 目录用于放置 chroot 环境,现在我们可以在这个目录里面运行 debootstrap 了:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  cd /linoxide

  sudo debootstrap --variant=buildd --arch amd64 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/

  sudo chroot /linoxide /debootstrap/debootstrap --second-stage

  你可以将 --arch 的参数换成 i386 或其他架构,只要存在这种架构的镜像源。你也可以把镜像源 http://archive.ubuntu.com/ubuntu/ 换成离你最近的镜像源,具体可参考 Ubuntu 官方镜像主页。

  注意:如果你是在64位系统中创建32位系统,你需要在上面第3行命令中加入 --foreign 选项,就像下面的命令:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  sudo debootstrap --variant=buildd --foreign --arch i386 saucy /linoxide/ http://archive.ubuntu.com/ubuntu/

  下载需要一段时间,看你网络带宽性能。最小系统大概有500M。

  4. 完成 chroot 环境

  安装完系统后,我们需要做一些收尾工作,确保系统运行正常。首先,保证主机的 fstab 程序能意识到 chroot 环境的存在:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  sudo nano /etc/fstab

  在文件最后面添加下面的配置:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  proc /linoxide/proc proc defaults 0 0

  sysfs /linoxide/sys sysfs defaults 0 0

  保存并关闭文件。

  挂载一些文件系统到 chroot 环境:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  $ sudo mount proc /linoxide/proc -t proc

  $ sudo mount sysfs /linoxide/sys -t sysfs

  复制 /etc/hosts 文件到 chroot 环境,这样 chroot 环境就可以使用网络了:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  $ sudo cp /etc/hosts /linoxide/etc/hosts

  最后使用 schroot -l 命令列出系统上所有的 chroot 环境:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  $ schroot -l

  使用下面的命令进入 chroot 环境:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  $ sudo chroot /linoxide/ /bin/bash

  测试安装的版本:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  # lsb_release -a

  # uname -a

  为了在 chroot 环境中使用图形界面,你需要设置 DISPLAY 环境变量:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  $ DISPLAY=:0.0 ./apps

  目前为止,我已经成功地在 Ubuntu 14.04 LTS 上安装了 Ubuntu 13.10。

  退出 chroot 环境:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  # exit

  清理一下,卸载文件系统:

  代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

  $ sudo umount /test/proc

  $ sudo umount /test/sys

展开更多 50%)
分享

猜你喜欢

在Ubuntu系统中配置chroot环境的教程

服务器
在Ubuntu系统中配置chroot环境的教程

Ubuntu如何配置网桥 Ubuntu系统配置网桥详细教程

服务器
Ubuntu如何配置网桥 Ubuntu系统配置网桥详细教程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在jsp环境中配置使用fckeditor

Web开发
在jsp环境中配置使用fckeditor

在JSP环境中如何配置和使用fckeditor

Web开发
在JSP环境中如何配置和使用fckeditor

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在Ubuntu上配置VNC和Windows系统进行远程连接

服务器
在Ubuntu上配置VNC和Windows系统进行远程连接

教你在JSP环境中配置和使用fckeditor

Web开发
教你在JSP环境中配置和使用fckeditor

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

为什么QQ面板中的链接会使用搜狗浏览器打开?

为什么QQ面板中的链接会使用搜狗浏览器打开?

搜狗高速浏览器为什么设置默认浏览器失败?

搜狗高速浏览器为什么设置默认浏览器失败?
下拉加载更多内容 ↓