首先,下载pure-ftpd,例如:源码包pure-ftpd-1.0.36.tar.gz。
解压proftpd软件包。
# tar -zxvf pure-ftpd-1.0.36.tar.gz
然后,生成makefile文件。
其中–with-puredb参数是启用puredb形式的账户认证,这是后面配置虚拟用户而需要的。
# ./configure –prefix=/usr/local/pureftpd –with-puredb
编译,安装。
# make && make install
复制启动文件,并赋予其755权限。
# cp contrib/redhat.init /etc/init.d/pureftpd
# chmod 755 /etc/init.d/pureftpd
加入到服务中去。
# chkconfig –add pureftpd
复制配置文件。
# mkdir /usr/local/pureftpd/etc
# cp configuration-file/pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf
复制执行文件,并赋予755权限
# cp configuration-file/pure-config.pl /usr/local/pureftpd/sbin/
# chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
修改启动文件中的几处涉及到可执行文件和配置文件的路径。
已经用红色字体标出,适当保留上下文,最后部分省略。
#!/bin/bash
#
# Startup script for the pure-ftpd FTP Server $Revision: 1.3 $
#
# chkconfig: 2345 85 15
# description: Pure-FTPd is an FTP server daemon based upon Troll-FTPd
# processname: pure-ftpd
# pidfile: /var/run/pure-ftpd.pid
# config: /usr/local/pureftpd/etc/pure-ftpd.conf
# Source function library.
. /etc/rc.d/init.d/functions
RETVAL=0
# Path to the pure-ftp binaries.
prog=pure-config.pl
fullpath=/usr/local/pureftpd/sbin/$prog
pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho
start() {
echo -n $”Starting $prog: ”
$fullpath /usr/local/pureftpd/etc/pure-ftpd.conf –daemonize
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/$prog
echo
}
……
现在应当可以正常启动服务了。
# service pureftpd start
然后我们设置虚拟用户。首先我们在系统中添加一个用户,虚拟用户都使用这个系统用户的权限。
# useradd abc
修改配置文件中认证方式。找到PureDB认证方式的两行,设置数据库路径并去掉前面的注释符。
保存退出。然后添加一个虚拟用户。其中virtual是虚拟用户名,-u是设置使用哪个系统用户,-d是设置ftp目录。
# /usr/local/pureftpd/bin/pure-pw useradd virtual -u abc -d /home/ftp
执行改命令后,会提示两次输入密码。然后使用下面的命令生成数据库。
# /usr/local/pureftpd/bin/pure-pw mkdb
建立ftp文件夹。并设置归属。
# mkdir /home/ftp
# chown abc.abc /home/ftp
最后重启pureftpd。
# service pureftpd restart
现在应当能登录了。
如果不能,请检查防火墙设置以及selinux的设置。