Wikipedia,自由的百科全书

[编辑]

一、安装Proftpd

# shell> tar xzvf proftpd*

# shell> cd proftpd*

# shell> ./configure --prefix=/usr/local/proftpd --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql --with-includes=/usr/local/mysql/include --with-libraries=/usr/local/mysql/lib

# shell> make

# shell> make install

# shell> cd /usr/local/proftpd

# shell> sbin/proftpd

以上操作完成后是使用系统帐户启动的Proftpd

[编辑]

二、配置Proftpd

配置proftpd.conf文件

# shell> vi /usr/local/proftpd/etc/proftpd.conf

#设置磁盘限额

QuotaDirectoryTally on

#设置磁盘容量显示时的单位

QuotaDisplayUnits "Kb"

#打开磁盘限额引擎

QuotaEngine on

#设置磁盘限额日志文件

QuotaLog "/usr/local/proftpd/var/quota"

#允许显示磁盘限额信息,ftp登录后可执行quote site quota命令查看当前磁盘使用情况

QuotaShowQuotas on

#指定磁盘限额模块使用的数据库信息

SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM quotalimits WHERE name = ‘%{0}‘ AND quota_type = ‘%{1}‘"

SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM quotatallies WHERE name = ‘%{0}‘ AND quota_type = ‘%{1}‘"

SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = ‘%{6}‘ AND quota_type = ‘%{7}‘" quotatallies

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies

QuotaLimitTable sql:/get-quota-limit

QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

#配置FTP用户为MySQL数据库认证方式

SQLConnectInfo databaseName@hostName:port userName password

#databaseName是为proftpd建立的MySQL数据库的名字

#hostName是MySQL数据库所在的服务器的名字或ip地址

#port是MySQL服务所使用的端口

#userName是数据库的用户名

#password是数据库用户密码

SQLAuthTypes Backend Plaintext

#Backend表示用户认证方式为MySQL数据库的认证方式

#Plaintext表示明文认证方式,排在最前面的为最先使用的方式

SQLUserInfo ftpUser userid passwd uid gid homedir shell

#指定ftp用户数据表的名字和其中的字段名,表名可自行定义,字段名不要改动。

SQLGroupInfo ftpGroup groupname gid members

#指定ftp用户组数据表的名字和其中的字段名,这个数据表是可选的,字段名不要改动。

RequireValidShell off

#指定是否必须为FTP用户指定一个系统shell,off表示不用指定,on表示必须指定。为了系统安全应该指定为off。

SQLAuthenticate users groups usersetfast groupsetfast

#校验数据表

SQLHomedirOnDemand on

#如果用户主目录不存在,则系统会根据此用户在用户数据表中的homedir字段的值新建一个目录

创建FTP系统用户和组

创建一个FTP用户和组,以后所有的其它FTP用户实际上都是通过这个系统用户进行FTP的:

shell> groupadd -g 2003 ftpGroup

shell> useradd -u 2003 -g ftpGroup -d /home ftpUser

shell> chown -R ftpUser.ftpGroup /home

shell> chmod 777 /home

shell> vi proftpd.conf

找到User和Group,将User指定为ftpUser,Group指定为ftpGroup。

[编辑]

三、建立FTP用户认证相关表

建立一个MySQL用户:ftp

建立一个MySQL数据库:proftpd

shell> /usr/local/mysql/bin/mysql -u ftp -p

use proftpd;

create table ftpUser (userid TEXT NOT NULL,passwd TEXT NOT NULL,uid INT NOT NULL,gid INT NOT NULL,homedir TEXT,shell TEXT);

#userid是用户名,passwd是用户密码,uid是用户id,gid是用户所在组的id,homedir是用户主目录,shell是用户的系统shell。

create table ftpGroup (groupname TEXT NOT NULL,gid SMALLINT NOT NULL,members TEXT NOT NULL);

#groupname是组名,gid是组id,members是组的成员,有多个成员时,要用逗号隔开。

建立磁盘限额数据表

CREATE TABLE quotalimits (

name VARCHAR(30),

quota_type ENUM("user", "group", "class", "all") NOT NULL,

per_session ENUM("false", "true") NOT NULL,

limit_type ENUM("soft", "hard") NOT NULL,

bytes_in_avail FLOAT NOT NULL,

bytes_out_avail FLOAT NOT NULL,

bytes_xfer_avail FLOAT NOT NULL,

files_in_avail INT UNSIGNED NOT NULL,

files_out_avail INT UNSIGNED NOT NULL,

files_xfer_avail INT UNSIGNED NOT NULL

);

CREATE TABLE quotatallies (

name VARCHAR(30) NOT NULL,

quota_type ENUM("user", "group", "class", "all") NOT NULL,

bytes_in_used FLOAT NOT NULL,

bytes_out_used FLOAT NOT NULL,

bytes_xfer_used FLOAT NOT NULL,

files_in_used INT UNSIGNED NOT NULL,

files_out_used INT UNSIGNED NOT NULL,

files_xfer_used INT UNSIGNED NOT NULL

);

以上quotalimits表是FTP用户的磁盘限额配置信息,quotatallies表存放的是用户磁盘限额变动的信息。

quotatallies表不需要作修改,由程序自动记录

下面是quotalimits 表中各字段的含意:

quota_type 磁盘限额的鉴别

bytes_in_avail 上传最大字节数,就是FTP用户空间容量

bytes_out_avail 下载最大字节数

bytes_xfer_avail 总共可传输的文件的最大字节数(上传和下载流量)

files_in_avail 总共能上传文件的数目

files_out_avail 能从服务器上下载文件的总数目

files_xfer_avail 总共可传输文件的数目(上传和下载)

数据表数据初始化

建立用户:

INSERT INTO ftpUser (userid, passwd, uid, gid, homedir, shell) values (‘shine‘, password(‘yourpassword‘), ‘2003‘, ‘2003‘, ‘/home/shine‘, );

以上建立了一个新的FTP用户,用户名为shine,密码为yourpassword,可以看到密码用mysql的系统函数password进行了加密,用户id和组id均为2003,这里随便填,我填了和系统用户ftpUser和系统组ftpGroup相同的id,不知道会不会有问题。/home/shine为用户主目录,用户shell为空。

如果要想应用到更多的功能,且建立了组的数据表,你也要为此添加记录,不过一定要注意在members的字段多个成员一定要用逗号隔开。

建立默认组:

INSERT INTO ftpGroup VALUES (‘ftpGroup‘, 2003, ‘ftpUser‘);

建立磁盘配额:

将已经建立的shine帐号赋予500M空间,最多能上传200000个文件,文件传输流量为64k,总共只能传输200000个文件,插入记录如下:

INSERT INTO quotalimits (name,quota_type,per_session,limit_type,bytes_in_avail,bytes_out_avail,bytes_xfer_avail,files_in_avail,files_out_avail,files_xfer_avail)VALUES (‘Nanu‘, ‘user‘, ‘true‘, ‘soft‘, ‘512000000‘, ‘0‘,‘64000‘,‘200000‘,‘0‘,‘200000‘);

proftpd mysql_Proftpd(MySQL验证+配额)相关推荐

  1. Proftpd(MySQL验证+配额)配置

    五.Proftpd(MySQL验证+配额)配置 1.下载ProFTPD,用编译安装,因为yum安装后在数据库认证会有问题,待研究: /bin/mkdir /home/src/  cd /home/sr ...

  2. proftpd mysql_proftpd+mysql 安装配置详细文档

    Proftpd+mysql 一.下载proftpd 二.安装mysql [root@localhost media]# tar-zxvf mysql-5.0.75.tar.gz -C /usr/loc ...

  3. proftpd mysql_Proftpd mysql认证配置文档

    Proftpd mysql认证配置文档 ver1.0, 2012/09/25 一.下载安装proftp mysql 下载 wget http://cloud.github.com/downloads/ ...

  4. linux proftpd mysql_proftpd mysql quota 配置完全指南

    2 安装 2.1 解压proftpd-1.2.9rc1.tar.gz 假设下载的proftpd-1.2.9rc1.tar.gz文件在/root目录下,则先进入此目录,然后执行: tar –xzvf p ...

  5. proftpd mysql_虚拟主机与Proftpd和MySQL(包括配额)在Ubuntu 8.04 LTS

    使用Proftpd和MySQL虚拟主机(包括配额)在Ubuntu 8.04 LTS上 本文档介绍如何安装使用MySQL数据库而不是真实系统用户的虚拟用户的Proftpd服务器. 这是更好的性能,并允许 ...

  6. linux proftpd mysql_虚拟主机与Proftpd和MySQL(包括配额)在Ubuntu 14.04LTS

    本文档介绍如何安装使用MySQL数据库而不是真实系统用户的虚拟用户的Proftpd服务器. 这是更好的性能,并允许在单个机器上有成千上万的ftp用户. 除此之外,我将使用此设置显示使用配额. 本教程基 ...

  7. php链接mysql验证用户登录,PHP连接mysql验证用户名是否存在

    登录界面 用户名: if (isset($_POST['submit'])) { $us = $_POST["user_name"]; $conn = mysqli_connect ...

  8. SVN使用MySQL验证用户名密码(HTTP)

    安装过程全部采用yum 1 yum -y install subversion httpd mod_auth_mysql mod_dav_svn mod_ssl 使用MySQL验证是依赖于mod_au ...

  9. svn mysql_SVN使用MySQL验证用户名密码(HTTP)

    安装过程全部采用yumyum -y install subversion httpd mod_auth_mysql mod_dav_svn mod_ssl 使用MySQL验证是依赖于mod_auth_ ...

  10. pureftpd 配置 mysql_pureftpd+mysql验证的安装配置文档

    pureftpd+mysql验证的安装配置文档 一.mysql编译安装: 1,准备工作 a,下载安装程序mysql-5.1.41.tar.gz b,为mysql建立用户和组 groupadd -g 2 ...

最新文章

  1. 【哈渡谱】带你玩转Hadoop之《主机映射、镜像挂载与SSH免密篇》
  2. Block相关内容梳理
  3. 音频处理九:(参数估计)
  4. myeclipse进入Myeclipse configuration center 如何关闭
  5. 今后几个月的IT读书计划
  6. Python 分析Nginx 日志并存入MySQL数据库(单线程)
  7. “云时代架构”经典文章阅读感想十三
  8. NOI2005 瑰丽华尔兹
  9. windows系统之Hook实例DIPS
  10. 毕业设计 - 题目: 基于协同过滤的电影推荐系统 - Django 在线电影推荐协同过滤
  11. filter函数 与filtfilt函数的效果区别
  12. 光照模型-PBS在Unity中的应用
  13. 基于Simulink使用激光雷达数据跟踪车辆仿真(附源码)
  14. LeetCode-初级算法-有效的数独 ( java )
  15. 模糊的照片如何修复清晰?
  16. php 必须实现方法,php – 错误:类必须声明为抽象或实现其余的方法
  17. 集成灶怎么选品牌(拒绝陷阱避坑指南)
  18. INS 、AHRS、VRU、IMU的区别与联系
  19. 解决Ubuntu系统设置打不开
  20. 2012年北京地铁规划图(我好不容易找到的哦)

热门文章

  1. MPB:上海交大肖湘组分享基于基因芯片的海洋微生物转录组学分析技术
  2. 编者序:初衷、计划、要求、优势、目标和展望
  3. QIIME 2教程. 32如何写方法和引用Citing(2020.11)
  4. Nature:给博士研究生的四条箴言Four golden lessons,颜宁推荐
  5. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(添加均值点)实战
  6. R语言ggplot2可视化:可视化水平堆叠条形图(horizontal stacked bar plot)并在条形图中的每个分组条形区域显示区域占整体的百分比数值标签
  7. R语言计算杰卡德相似系数(Jaccard Similarity)实战:自定义函数计算Jaccard相似度、对字符串向量计算Jaccard相似度、将Jaccard相似度转化为Jaccard距离
  8. R语言ggplot2可视化:ggplot2可视化分组散点图并使用geom_smooth函数在散点图图中为不同的散点簇添加对应的回归曲线
  9. R语言ggplot2可视化使用geom_ribbon()函数向ggplot2图添加置信度带(Confidence Band、Confidence Interval)
  10. R创建透视表(Pivot Tables)