浅析在FreeBSD中建立chroot的FTP服务
时间:2007-10-27 来源:不详 作者:林仙
在进入chroot环境之前要先准备好相应的设置,在本例中我们打算将ftpdchroot到/var/chroot目录中。
因为系统自带的ftpd在/usr/libexec/目录,所以我们需要在/var/chroot中执行以下操作:
matthew@bsd#mkdir-p/var/chroot/usr/libexec
然后将ftpd复制到该目录中:
matthew@bsd#install-C/usr/libexec/ftpd/var/chroot/usr/libexec
接下来要做的就是将ftpd需要的库也复制到chroot目录中,我们可以使用ldd来检测ftpd运行时需要哪些库:
matthew@bsd#ldd/usr/libexec/ftpd
/usr/libexec/ftpd:
libskey.so.2=>/usr/lib/libskey.so.2(0x28074000)
libmd.so.2=>/usr/lib/libmd.so.2(0x2807b000)
libcrypt.so.2=>/usr/lib/libcrypt.so.2(0x28084000)
libutil.so.3=>/usr/lib/libutil.so.3(0x2809d000)
libpam.so.1=>/usr/lib/libpam.so.1(0x280a6000)
libc.so.4=>/usr/lib/libc.so.4(0x280af000)
ldd的运行结果显示了ftpd运行时需要库,现在我们只要把这些库安装到我们的chroot的相应目录中便可:
内容来自dedecms
matthew@bsd#mkdir-p/var/chroot/usr/lib
matthew@bsd#install-C/usr/lib/libskey.so.2/var/chroot/usr/lib
matthew@bsd#install-C/usr/lib/libmd.so.2/var/chroot/usr/lib
matthew@bsd#install-C/usr/lib/libcrypt.so.2/var/chroot/usr/lib
matthew@bsd#install-C/usr/lib/libutil.so.3/var/chroot/usr/lib
matthew@bsd#install-C/usr/lib/libpam.so.1/var/chroot/usr/lib
matthew@bsd#install-C/usr/lib/libc.so.4/var/chroot/usr/lib
2、第一次进入chroot环境
现在我们可以试试看ftpd能不能在我们的chroot环境中运行:
matthew@bsd#chroot/var/chroot/usr/libexec/ftpd
ELFinterpreter/usr/libexec/ld-elf.so.1notfound
程序出错,根据提示在/usr/libexec中还缺少文件ld-elf.so.1,由于我们的ftpd是在chroot环境中运行,所以我们应该将ld-elf.so.1复制到我们的chroot环境中,即/var/chroot/usr/libexec中:
matthew@bsd#install-C/usr/libexec/ld-elf.so.1/var/chroot/usr/libexec
现在我们再次试着进入我们的chroot环境:
上一篇:proftpd中Limit的使用 下一篇:怎样配置具有SSL保护的FTP伺服器
文章评论
共有位Admini5网友发表了评论 查看完整内容