浅析在FreeBSD中建立chroot的FTP服务
时间:2007-10-27 来源:不详 作者:林仙
matthew@bsd#chroot/var/chroot/usr/libexec/ftpd
这次没有任何提示说明我们的运行库已经准备好了,但是由于ftpd在不带-D参数的时候运行完后就会自动退出,所以现在我们还无法从远程登录ftp服务,那么我们试着在ftpd后面加上参数-D:
matthew@bsd#chroot/var/chroot/usr/libexec/ftpd-D
结果与上次一样,通过查阅chroot(8)的手册,我们可以看到chroot的语法是:chrootnewroot[command]
也就是说command后面不能带参数,即然这样我们就写一个简单的shell脚本来运行ftpd,这个脚本命名为ftpd.sh,存放于/var/chroot/usr/libexec中,内容为:
#!/bin/sh
/usr/libexec/ftpd-D-4
由于我们不需要支持IPv6,所以这里加上了参数-4只对IPv4提供支持,当然你也可以加上一些其它参数。
接下来为脚本加上执行权限:matthew@bsd#chmoda x/var/chroot/usr/libexec/ftpd.sh
为了要运行这个脚本程序,我们还需要将/bin/sh复制到我们的chroot环境中:
matthew@bsd#mkdir/var/chroot/bin
matthew@bsd#install-C/bin/sh/var/chroot/bin
接下来我们就要为chroot环境准备/etc目录了。首先要复制的就是/etc/services文件,因为它定义了ftpd使用的端口号和协议: dedecms.com
matthew@bsd#mkdir/var/chroot/etc
matthew@bsd#cp/etc/services/var/chroot/etc
因为需要验证用户,所以需要复制master.passwd和group:
matthew@bsd#cp/etc/group/var/chroot/etc
matthew@bsd#cp/etc/master.passwd/var/chroot/etc
编辑/var/chroot/etc/master.passwd和/var/chroot/etc/group,删除不需要使用ftp的用户和不必要的组,注意,当更改了master.passwd后一定要使用pwd_mkdb来生成密码数据库,由于此时我们需要将密码数据库文件存放在/var/chroot/etc中,而不是默认/etc中,所以在pwd_mkdb后面加上-d参数来指定数据库存放位置:
matthew@bsd#pwd_mkdb-d/var/chroot/etc/var/chroot/etc/master.passwd
此时如果执行成功的话你将看到在/var/chroot/etc/目录中多了两个文件:pwd.db、spwd.db。
让我们再次进入我们的chroot环境:
matthew@bsd#chroot/var/chroot/usr/libexec/ftpd.sh
现在我们便可以登录到我们的这个chroot的ftp服务器了。
上一篇:proftpd中Limit的使用 下一篇:怎样配置具有SSL保护的FTP伺服器
文章评论
共有位Admini5网友发表了评论 查看完整内容