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

2016-03-31 15:32 144 1 收藏

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

【 tulaoshi.com - 服务器 】

在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:

  代码如下:

  $ sudo apt-get install debootstrap

  $ sudo apt-get install schroot

  2. 配置 Schroot

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

  代码如下:

  sudo mkdir /linoxide

  编辑 schroot 的配置文件:

  代码如下:

  sudo nano /etc/schroot/schroot.conf

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

  代码如下:

  [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 了:

  代码如下:

  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 选项,就像下面的命令:

  代码如下:

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

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

  4. 完成 chroot 环境

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

  代码如下:

  sudo nano /etc/fstab

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

  代码如下:

  proc /linoxide/proc proc defaults 0 0

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

  sysfs /linoxide/sys sysfs defaults 0 0

  保存并关闭文件。

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

  代码如下:

  $ sudo mount proc /linoxide/proc -t proc

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

  $ sudo mount sysfs /linoxide/sys -t sysfs

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

  代码如下:

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

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

  代码如下:

  $ schroot -l

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

  代码如下:

  $ sudo chroot /linoxide/ /bin/bash

  测试安装的版本:

  代码如下:

  # lsb_release -a

  # uname -a

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

  代码如下:

  $ DISPLAY=:0.0 ./apps

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

  退出 chroot 环境:

  代码如下:

  # exit

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

  代码如下:

  $ sudo umount /test/proc

  $ sudo umount /test/sys

来源:http://www.tulaoshi.com/n/20160331/2050718.html

延伸阅读
标签: 服务器
初步清理Ubuntu系统的教程   假如你想清理你的 Ubuntu 主机,你可以按照以下的一些简单步骤来移除所有不需要的垃圾文件。 移除多余软件包 这又是一个内置功能,但这次我们不必使用新得立包管理软件(Synaptic Package Manager),而是在终端中达到目的。 现在,在终端窗口中键入如下命令: 代码如下: sudo apt...
标签: 电脑入门
在Ubuntu系统中,使用UbuTricks能够及时安装最新的游戏应用,那么UbuTricks能安装哪些游戏应用呢?下面图老师小编就教大家Ubuntu如何使用UbuTricks安装软件。 UbuTricks是一个有简单界面,基于Zenity的图形脚本。虽然早期开发中,它的目标是通过简单的界面操作来安装Ubuntu14.04 及以后发行版上应用程序的更新。 应用程序会自动下载安装。一...
标签: 电脑入门
apt是Advanced Packaging Tool的简称,是一款安装包管理工具。那么要如何使用apt命令来管理安装包呢?apt命令有哪些参数呢?下面图老师小编就给大家详细介绍下Ubuntu中apt命令的用法。 1 apt简介 高级包装工具(Advanced Packaging Tools)是Debian及其衍生发行版(如:ubuntu)的软件包管理器。APT可以自动下载,配置,安装二进制或者...
标签: 服务器
ubuntu系统下删除软件的教程   1、在ubuntu下删除软件需要知道确切的包名,查看软件的完整包名:#dpkg -l | grep mysql 2、根据包名使用apt-get命令删除软件包,需要完整的包名即:# apt-get remove mysql-client-core-5.5 3、再次查看与mysql有关的包:#dpkg -l | grep mysql,好了,已经完成删除.
于千万人之中遇见你,缘份啊。。。。。。 前言:为了实现windows 和 Linux以及其他操作系统之间的资源共享,软件商推出nfs 和samba两种解决方式。由于市场上缺乏象pc-nfs那样的客户端工具,使得Linux和windows的资源共享变得复杂。Samba的出现解决了这一问题,它以其简洁、实用、灵活配置的特点受到越来越多人们的广泛关注。 Windows利用SMB...

经验教程

409

收藏

28
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部