pureftpd+apache实现简单的“虚拟主机”

apache和pureftpd的安装配置这里就不说了
在gentoo里面都是不难的事情
当然,gentoo的pureftpd配置文件是和普通的pureftpd配置文件pure-ftpd.conf完全不一样的。因为,pureftpd宣称用命令行参数启动pureftpd会比用pure-ftpd.conf启动获取更好的性能,所以gentoo下面的pureftpd配置文件(/etc/conf.d/pureftpd)其实是一个命令行参数的配置文件,用来被/etc/init.d/pureftpd脚本读取
pureftpd自带的pure-pw可以很好的把系统帐号和ftp的虚拟帐号联系起来
首先建立一个系统用户
useradd -d /home/http/htdocs/xxxx -m -g apache -s /usr/bin/false -u 20000 xxxx
xxxx用户的主目录位于apache的htdocs目录下面,并且xxxx用户隶属于apache组
这样方便经过ftp上传的文件不需要经过chown就可以直接被apache所读取
uid号码可以大一点,一为了方便看出不是普通的用户帐号,二可以符合pureftpd的minuid要求(小于10000的uid默认是不能在pureftpd里面登录的,当然,你可以修改minuid)
当然,这个用户能不能从远程登录取决于你的要求,这里我们是不需要这个功能的,仅仅是系统用户和pureftpd虚拟用户的一个映射作用。

然后,用pure-pw建立一个虚拟用户
pure-pw useradd xxxx -u xxxx -g apache -d /home/http/htdocs/xxxx,并且输入该用户用来登陆ftp的密码
pure-pw mkdb
会建立一个/etc/pureftpd.pdb的pureftpd虚拟用户数据库文件
需要修改/etc/conf.d/pureftpd里面的authentication,默认是AUTH=”-l unix”,改成AUTH=”-lpuredb:/etc/pureftpd.pdb”
重启pureftpd即可生效(/etc/init.d/pureftpd restart)
如果需要修改用户密码可以用
pure-pw passwd 用户名
记得每次新增用户的时候都要pure-pw mkdb
当然,pureftpd是不需要重启的~

Leave a Reply