个人工具
登录
查看“UbuntuHelp:BasicChroot/zh”的源代码 - Ubuntu中文
UbuntuHelp
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“UbuntuHelp:BasicChroot/zh”的源代码
来自Ubuntu中文
←
UbuntuHelp:BasicChroot/zh
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{From|http://wiki.ubuntu.org.cn/UbuntuHelp:BasicChroot}} {{Languages|php5}} *标题:创建一个基本的chroot 通过把其它的应用软件都封闭起来,chroot是一个把应用软件孤立于你系统的其它部分的方法。当你测试一个有可能要更改重要的系统文件的软件时,或者使用一个可能不安全的软件时,这个方法相当有用。本文档在于解析关于chroot使用的一些基本概念并且介绍如何启用和运行一个基本的chroot。 ==基本概念== chroot基本上就是你系统内的一个特殊的目录,如果这个目录内执行命令,可以防止你访问此目录之外的其他文件。从许多方面来说,chroot就好像是在你已经存在的系统上安装另一个操作系统。技术上说,chroot暂时性的把根目录(一般是/)更改为chroot目录(比如:''/var/chroot'')。由于根目录是文件系统的最顶层,应用软件就不能到达比根目录更上层的目录,也就这样应用软件就与系统的其它部分分开了。这样就防止了在chroot目录内执行的软件影响到你电脑上其他地方的文件。需要注意的是从chroot目录外的软件是可以访问到chroot目录内的文件的。更多信息请看[http://en.wikipedia.org/wiki/Chroot Wikipedia-chroot] ==chroot的使用== 接下来的是chroot的一些可能的应用: *隔离不安全的和不稳定的应用软件 *在64位系统上运行32位的应用软件 *在生产性系统上安装新的软件包之前对软件进行测试 *在新发行版的Ubuntu上运行比较旧的应用软件 *在创建新的软件包时,允许在已安装的软件包上的小心的操作 ==创建chroot== 这一部分提供关于如何创建一个基本的chroot的介绍。关于更多的高级chroot请看[[UbuntuHelp:DebootstrapChroot| Debootstrap Chroot]] #安装dchroot和debootstrap软件包; #以超级用户身份(也就是sudo),为chroot创建一个新的目录。在此过程中目录/var/chroot将会被用到。为了完成这个,在命令行里输入sudo mkdir /var/chroot #以超级用户身份在文本编辑器里打开/etc/schroot/schroot.conf。输入cd /etc/schroot,之后输入gksu gedit schroot.conf,这样你就能编辑此文件了。 #添加以下的内容到schroot.conf里然后保存并关闭文件。把里面的your_username替换成你的用户名。 [gutsy] description=Ubuntu Gutsy location=/var/chroot priority=3 users=your_username groups=sbuild root-groups=root #打开终端输入: sudo debootstrap --variant=buildd --arch i386 gutsy /var/chroot/ http://archive.ubuntu.com/ubuntu/ 这样子将会在chroot里创建一个基本的Ubuntu 7.10(Gutsy Gibbon)“安装”。这软件包可能会花费一点时间来下载。 '''注意:'''你可以以你选择的Ubuntu版本来替换gutsy。1.#6一个基本的chroot现在应该已经创建好了。输入sudo chroot /var/chroot来在chroot里成为root shell。 ==配置chroot== 有一些基本的步骤可以用来配置chroot,为用户提供譬如DNS解析和/proc的访问的工具。 '''注意:'''在chroot之外shell里输入以下命令。 #输入下面的命令来在chroot里挂载/proc文件系统(进程管理的需要): sudo mount -o bind /proc /var/chroot/proc #输入下面的命令来允许内部chroot的DNS解析(互联网访问的需要): sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf 在chroot里默认安装的软件包非常少(即使是sudo也没安装多少软件)。使用apt-get install package_name来安装软件包。请看[[ubuntuHelp:DebootstrapChroot| Debootstrap Chroot]]和[http://wiki.mandriva.com/en/Development/Howto/Chroot Installing Mandriva Linux in a Chroot]来获得更多的高级配置说明。 ==从chroot内部访问图形应用软件== 你可以在chroot里运行一个图形应用软件,但是首先你得为这些应用软件提供一个X服务器。在chroot之外执行以下的说明: #安装xhost和xnest软件包; #确保在chroot内/proc已经挂载和DNS解析已经设置好(请看前文); #把下面的命令输入终端: Xnest -ac :1 一个空白的Xnest窗口将会出现。1.#4打开另一个终端然后输入下面的命令来进入chroot: sudo chroot /var/chroot #在chroot shell未关闭的情况下,输入以下命令: export DISPLAY=localhost:1 如果你有启动图形应用软件的问题的话,请再次输入,但是以127.0.0.1替换掉localhost。 #在chroot里面启动一个窗口管理器。比如,安装metacity软件包然后输入: metacity & #在chroot里启动一个图形应用软件(前提是确认你已经把要运行的软件安装到了chroot里面),这个应用软件将会在Xnest窗口出现。 你也可以在chroot里面通过安装ubuntu-desktop软件包来安装一个完整的Ubuntu桌面。GNOME可以通过运行gnome-session命令从命令行启动。这一部分援引自文章[http://wiki.mandriva.com/en/Development/Howto/Chroot Installing Mandriva Linux in a Chroot] ==有关进一步资料== #[http://en.wikipedia.org/wiki/Chroot Wikipedia-chroot] #[http://wiki.mandriva.com/en/Development/Howto/Chroot Installing Mandriva Linux in a Chroot] #[[UbuntuHelp:DebootstrapChroot| Debootstrap Chroot]] ==注意== 这似乎表明了安装和使用schroot来替代dchroot将会更加一致。另外,(我并不以我的指尖为参考)在我印象里是dchroot反对schroot替代了他的位置?如果在使用schroot方面上能达成一致,那么使用sudo schroot -c gutsy -d替代sudo chroot /var/chroot并且这样做将会通过默认使用schroot保留很多东西的基本依赖。此外通过使用schroot所有的约束将会在chroot进入和退出的时候被自动关联并解决。这对于最小化数据的意外删除来说很重要。如此,我觉得这样的一个基本的帮助页警告用户不要erase/delete/trash_can整个的chroot或整个chroot目录中,直到chroot退出(约束被移除)。对于schroot来说,所有所有自动创建的约束将会在退出的时候被移除,意外的整个/home目录删除(时常听说的)可以被最小化。(似乎是人们忘记了或者没理解双向的mount --bind的本质。)reedmb 20081224 [[User:Issus|isSuS]]
该页面使用的模板:
模板:From
(
查看源代码
)
模板:Languages
(
查看源代码
)(受保护)
模板:Languages/Lang
(
查看源代码
)(受保护)
返回至
UbuntuHelp:BasicChroot/zh
。