ProFTP配置文档

整理编辑:mars (mars_diy@21cn.com)

网上关于proftpd的安装文章实在是不少,我只是稍微整理了一下,并且使用了新的 quota磁盘限额模块

由于proftpd最新版1.2.8现在还是RC版,加上有些配置不能通用, 所以在这里还是使用1.2.7版

首先下载源码
proftpd1.2.7:
ftp://ftp.proftpd.org/distrib/sourc...d-1.2.7.tar.bz2

mod_quotatab-1.2.4 (1.2.5 版本的mod_quotatab是用在最新的1.2.8rc1上的)
http://www.castaglia.org/proftpd/mo...ab-1.2.4.tar.gz

假定您的机器上已安装好了mysql
开始编译安装
将proftpd的源码包解压缩到某临时目录下:
localhost proftpd # tar -jxvf proftpd-1.2.7.tar.bz2
解压缩 mod_quotatab-1.2.4
localhost proftpd # tar -zxvf proftpd-mod-quotatab-1.2.4.tar.gz
进入 mod_quotatab 目录
localhost proftpd # cd mod_quotatab
把mod_quotatab中的文档拷贝到 proftpd 中的modules 目录中
localhost mod_quotatab # cp * ../proftpd-1.2.7/modules

在开始运行configure之前,我们要先改变一个文档
进入 proftpd-1.2.7/contrib 目录
localhost mod_quotatab # cd ../proftpd-1.2.7/contrib
修改 mod_sql_mysql.c
localhost contrib # vi mod_sql_mysql.c
找到#include 把他该为您实际路径
假如您的mysql 安装在 /usr/local/mysql 下,就把他修改为#include r
然后
localhost contrib # cd ..
localhost proftpd-1.2.7 # cd ..
localhost proftpd #./configure --prefix=DIR --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql --with-includes=DIR --with-libraries=DIR
需要修改的三个地方
--prefix=DIR 您要安装到哪里
--with-includes=DIR mysql 的includes 目录
--with-libraries=DIR mysql 的lib 目录
然后
make
make install 完成安装

接下来,进入您安装好的proftpd目录 ,修改etc/proftpd.conf 文档开始配置
基本配置我就不多说了,网上这类文章有很多,实在不会的话,自己找找就是了,这里主要介绍如何配置mysql用户认证和磁盘限额

mysql 用户认证部分:
在proftpd.conf中加入以下内容

#配置MySQL认证:
#数据库联接的信息,DatabaseName是数据库名, HostName是主机名,
#Port是端口号,UserName是连接数据库的用户名,Password是密码。
SQLConnectInfo DatabaseName@HostNameort UserName Password

#数据库认证的类型:
SQLAuthTypes Backend Plaintext

#指定用来做用户认证的表的有关信息。("FTPUSERS"和"FTPGRPS"是数据表名字,等一会而在下面建立)
SQLUserInfo FTPUSERS userid passwd uid gid homedir shell

SQLGroupInfo FTPGRPS groupname gid members

#配置假如shell为空时允许用户登录:
RequireValidShell off

#数据库的鉴别
SQLAuthenticate users groups usersetfast groupsetfast

#假如home目录不存在,则系统会为根据他的home项新建一个目录:
SQLHomedirOnDemand on

然后在这个数据库中建立一个用户表FTPUSERS,这个表是必须的:

use FTP;
create table FTPUSERS (
userid TEXT NOT NULL,
passwd TEXT NOT NULL,
uid INT NOT NULL,
gid INT NOT NULL,
home TEXT,
shell TEXT
);
此表格是为了用户认证所需要的,其中userid、passwd是必不可少的,userid是用做FTP服务的用户名;passwd是指此用户的密码;uid是系统用户的ID,也就是所映射的系统用户;gid是所属系统组的ID;home是该用户所在的HOME目录;shell能够为该用户指定相应的shell。当然您能够建立更多的字段,例如:用来记录用户登录次数的count,或是日期的date,假如您对配置熟悉了之后,您能够根据自己的喜欢添加更多的功能。在此就不多讲。
3、假如您想需要任何的功能,您还能够添加另外一个需要的表:FTPGRPS,也就是确定组的表格,当然也能够不用,这里讲一个他的格式:
create table FTPGRPS (
grpname TEXT NOT NULL,
gid SMALLINT NOT NULL,
members TEXT NOT NULL,
);
其中grpname是组的名称,gid是系统组的ID,members是组的成员。注意:多成员,他们之间要用逗号隔开,不能使用空格。

4、为空表格插入记录:
INSERT INTO FTPUSERS (userid, passwd, uid, gid, home, shell)
valueS ('user1', '999999', '1000', '1000', '/home/FTP/user1', '' );

按此格式您能够插入这每一个用户添加一个记录。
假如您要想应用到更多的功能,且建立了组的表格,您也要为此添加记录,但是一定要注意在members的字段多个成员一定要用逗号隔开。

INSERT INTO FTPGRPS VALUES ('FTPGRPS', 1000, 'FTPUSR');
四、为FTP用户建立相应的系统用户。
在本例中,只整个FTP服务只提供一个有效的系统用户FTPUSR和组FTPGRP,当然您也能够配置多个系统用户。但出于安全的考虑,我只设一个,用他来启动FTP daemon,并把任何的FTP用户映射过这个用户。

先建立FTPGRP组:
groupadd –g 1000 –r FTPGRP
建立FTPUSR用户:
adduser –u 1000 –g 1000 –d /home/FTP –s /bin/bash –r FTPUSR

为FTPUSR建立HOME,把任何的FTP user 活动空间全放在此目录下:
mkdir /home/FTP
chown FTPUSR /home/FTP
chgrp FTPGRP /home/FTP

到这里MYSQL认证部分就算基本配置好了,接下来是磁盘限额部分

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!