特殊:Badtitle/NS100:BasicChroot/zh
文章出处: |
{{#if: | {{{2}}} | http://wiki.ubuntu.org.cn/UbuntuHelp:BasicChroot }} |
点击翻译: |
English {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/af | • {{#if: php5|Afrikaans| [[::BasicChroot/zh/af|Afrikaans]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/ar | • {{#if: php5|العربية| [[::BasicChroot/zh/ar|العربية]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/az | • {{#if: php5|azərbaycanca| [[::BasicChroot/zh/az|azərbaycanca]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/bcc | • {{#if: php5|جهلسری بلوچی| [[::BasicChroot/zh/bcc|جهلسری بلوچی]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/bg | • {{#if: php5|български| [[::BasicChroot/zh/bg|български]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/br | • {{#if: php5|brezhoneg| [[::BasicChroot/zh/br|brezhoneg]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/ca | • {{#if: php5|català| [[::BasicChroot/zh/ca|català]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/cs | • {{#if: php5|čeština| [[::BasicChroot/zh/cs|čeština]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/de | • {{#if: php5|Deutsch| [[::BasicChroot/zh/de|Deutsch]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/el | • {{#if: php5|Ελληνικά| [[::BasicChroot/zh/el|Ελληνικά]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/es | • {{#if: php5|español| [[::BasicChroot/zh/es|español]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/fa | • {{#if: php5|فارسی| [[::BasicChroot/zh/fa|فارسی]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/fi | • {{#if: php5|suomi| [[::BasicChroot/zh/fi|suomi]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/fr | • {{#if: php5|français| [[::BasicChroot/zh/fr|français]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/gu | • {{#if: php5|ગુજરાતી| [[::BasicChroot/zh/gu|ગુજરાતી]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/he | • {{#if: php5|עברית| [[::BasicChroot/zh/he|עברית]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/hu | • {{#if: php5|magyar| [[::BasicChroot/zh/hu|magyar]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/id | • {{#if: php5|Bahasa Indonesia| [[::BasicChroot/zh/id|Bahasa Indonesia]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/it | • {{#if: php5|italiano| [[::BasicChroot/zh/it|italiano]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/ja | • {{#if: php5|日本語| [[::BasicChroot/zh/ja|日本語]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/ko | • {{#if: php5|한국어| [[::BasicChroot/zh/ko|한국어]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/ksh | • {{#if: php5|Ripoarisch| [[::BasicChroot/zh/ksh|Ripoarisch]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/mr | • {{#if: php5|मराठी| [[::BasicChroot/zh/mr|मराठी]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/ms | • {{#if: php5|Bahasa Melayu| [[::BasicChroot/zh/ms|Bahasa Melayu]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/nl | • {{#if: php5|Nederlands| [[::BasicChroot/zh/nl|Nederlands]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/no | • {{#if: php5|norsk| [[::BasicChroot/zh/no|norsk]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/oc | • {{#if: php5|occitan| [[::BasicChroot/zh/oc|occitan]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/pl | • {{#if: php5|polski| [[::BasicChroot/zh/pl|polski]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/pt | • {{#if: php5|português| [[::BasicChroot/zh/pt|português]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/ro | • {{#if: php5|română| [[::BasicChroot/zh/ro|română]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/ru | • {{#if: php5|русский| [[::BasicChroot/zh/ru|русский]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/si | • {{#if: php5|සිංහල| [[::BasicChroot/zh/si|සිංහල]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/sq | • {{#if: php5|shqip| [[::BasicChroot/zh/sq|shqip]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/sr | • {{#if: php5|српски / srpski| [[::BasicChroot/zh/sr|српски / srpski]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/sv | • {{#if: php5|svenska| [[::BasicChroot/zh/sv|svenska]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/th | • {{#if: php5|ไทย| [[::BasicChroot/zh/th|ไทย]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/tr | • {{#if: php5|Türkçe| [[::BasicChroot/zh/tr|Türkçe]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/vi | • {{#if: php5|Tiếng Việt| [[::BasicChroot/zh/vi|Tiếng Việt]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/yue | • {{#if: php5|粵語| [[::BasicChroot/zh/yue|粵語]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/zh | • {{#if: php5|中文| [[::BasicChroot/zh/zh|中文]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/zh-hans | • {{#if: php5|中文(简体)| [[::BasicChroot/zh/zh-hans|中文(简体)]]}}|}} {{#ifexist: {{#if: php5 | php5 | {{#if: | :}}BasicChroot/zh}}/zh-hant | • {{#if: php5|中文(繁體)| [[::BasicChroot/zh/zh-hant|中文(繁體)]]}}|}} |
{{#ifeq:php5|:BasicChroot/zh|请不要直接编辑翻译本页,本页将定期与来源同步。}} |
{{#ifexist: :BasicChroot/zh/zh | | {{#ifexist: BasicChroot/zh/zh | | {{#ifeq: {{#titleparts:BasicChroot/zh|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:BasicChroot/zh|1|-1|}} | zh | | }}
- 标题:创建一个基本的chroot
通过把其它的应用软件都封闭起来,chroot是一个把应用软件孤立于你系统的其它部分的方法。当你测试一个有可能要更改重要的系统文件的软件时,或者使用一个可能不安全的软件时,这个方法相当有用。本文档在于解析关于chroot使用的一些基本概念并且介绍如何启用和运行一个基本的chroot。
基本概念
chroot基本上就是你系统内的一个特殊的目录,如果这个目录内执行命令,可以防止你访问此目录之外的其他文件。从许多方面来说,chroot就好像是在你已经存在的系统上安装另一个操作系统。技术上说,chroot暂时性的把根目录(一般是/)更改为chroot目录(比如:/var/chroot)。由于根目录是文件系统的最顶层,应用软件就不能到达比根目录更上层的目录,也就这样应用软件就与系统的其它部分分开了。这样就防止了在chroot目录内执行的软件影响到你电脑上其他地方的文件。需要注意的是从chroot目录外的软件是可以访问到chroot目录内的文件的。更多信息请看Wikipedia-chroot
chroot的使用
接下来的是chroot的一些可能的应用:
- 隔离不安全的和不稳定的应用软件
- 在64位系统上运行32位的应用软件
- 在生产性系统上安装新的软件包之前对软件进行测试
- 在新发行版的Ubuntu上运行比较旧的应用软件
- 在创建新的软件包时,允许在已安装的软件包上的小心的操作
创建chroot
这一部分提供关于如何创建一个基本的chroot的介绍。关于更多的高级chroot请看 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来安装软件包。请看 Debootstrap 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命令从命令行启动。这一部分援引自文章Installing Mandriva Linux in a 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 isSuS