简单介绍一下 chroot 命令的应用(分享)
chroot 在 Linux 系统中发挥了根目录的切换工作,同时带来了系统的安全性等好处。chroot,
即 change root directory (更改 root 目录)。
在 linux 系统中,系统默认的目录结构都是以 `/`,即是以根 (root) 开始的。
而在使用 chroot 之后,系统的目录结构将以指定的位置作为 `/` 位置。
比 如你希望你的朋友可以远程登录你的机器,
但是当然不想让他能够运行你机器中大部分的命令,
只是让他运行你觉得没问题的命令。
具体来说想把他的访问局限在 /usr/chroot中
让他觉得 /usr/chroot就是根目录( / ),这时候就需要用到chroot命令,
1. 建一个文件夹,
# mkdir /usr/chroot
当你此时想用 # chroot /usr/chroot 命令时,你会发现出现错误:
chroot: cannot run command `/bin/bash': No such file or directory
所以在使用 chroot命令之前是需要 把 bash 移到 /usr/chroot/bin中的
2. 再建 bin etc lib var home等文件夹
# mkdir bin etc lib var home
然后就可以先把 bash 复制过去了, 但是在此之前,还需要做的一件事就是用 ldd 来调查 bash 对各种文件的依赖关系
3. # ldd /bin/bash
linux-gate.so.1 => (0x00110000)
libncurses.so.5 => /lib/libncurses.so.5 (0x00b9f000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x004fe000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00208000)
/lib/ld-linux.so.2 (0x00491000)
然后将 /lib/libncurses.so.5,/lib/tls/i686/cmov/libdl.so.2,
/lib/tls/i686/cmov/libc.so.6这几个文件复制到/usr/chroot/lib中
4. 再将 bash 复制到 /usr/chroot中
# cp /bin/bash /usr/chroot/bin
5. 好了,这时候 就可以使用 chroot
# chroot /usr/chroot
/usr/chroot就变成了 / , prompt也变了, 我的变成了bash-4.1#
但是现在下面一条命令也没有,可以按照上面的步骤添加各种命令ls, pwd ,cd ,mv之类
好了,就这么多。一些具体的应用以后慢慢再来。
[ 本帖最后由 madfrogme 于 2012-10-25 11:09 编辑 ]