CentOS下pure-ftpd的安装和虚拟用户配置

发布时间:2019-07-14编辑:脚本学堂
本文介绍下,pure-ftpd软件的安装与配置,有需要的朋友参考学习下。

首先,下载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认证方式的两行,设置数据库路径并去掉前面的注释符。
 

复制代码 代码示例:
# vi /usr/local/pureftpd/etc/pure-ftpd.conf
# PureDB user database (see README.Virtual-Users)
PureDB             /usr/local/pureftpd/etc/pureftpd.pdb

保存退出。然后添加一个虚拟用户。其中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的设置。