網上關於proftpd的安裝文章實在是不少
首先下載源碼
proftpd
ftp:///distrib/source/proftpd
mod_quotatab
假定你的機器上已經安裝好了mysql
開始編譯安裝
將proftpd的源碼包解壓縮到某臨時目錄下
localhost proftpd # tar
解壓縮 mod_quotatab
localhost proftpd # tar
進入 mod_quotatab 目錄
localhost proftpd # cd mod_quotatab
把mod_quotatab中的文件拷貝到 proftpd 中的modules 目錄中
localhost mod_quotatab # cp *
在開始運行configure之前
進入 proftpd
localhost mod_quotatab # cd
修改 mod_sql_mysql
localhost contrib # vi mod_sql_mysql
找到#include 把他該為你實際路徑
如果你的mysql 安裝在 /usr/local/mysql 下
然後
localhost contrib # cd
localhost proftpd
localhost proftpd #
需要修改的三個地方
然後
make
make install 完成安裝
接下來
基本配置我就不多說了
mysql 用戶認證部分
在nf中加入以下內容
#設置MySQL認證
#數據庫聯接的信息
#Port是端口號
SQLConnectInfo DatabaseName@HostNameort UserName Password
#數據庫認證的類型
SQLAuthTypes Backend Plaintext
#指定用來做用戶認證的表的有關信息
SQLUserInfo FTPUSERS userid passwd uid gid homedir shell
SQLGroupInfo FTPGRPS groupname gid members
#設置如果shell為空時允許用戶登錄
RequireValidShell off
#數據庫的鑒別
SQLAuthenticate users groups usersetfast groupsetfast
#如果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
);
此表格是為了用戶認證所需要的
create table FTPGRPS (
grpname TEXT NOT NULL
gid SMALLINT NOT NULL
members TEXT NOT NULL
);
其中grpname是組的名稱
INSERT INTO FTPUSERS (userid
valueS (
按此格式你可以插入這每一個用戶添加一個記錄
如果你要想應用到更多的功能
INSERT INTO FTPGRPS VALUES (
四
在本例中
先建立FTPGRP組
groupadd –g
建立FTPUSR用戶
adduser –u
為FTPUSR建立HOME
mkdir /home/FTP
chown FTPUSR /home/FTP
chgrp FTPGRP /home/FTP
到這裡MYSQL認證部分就算基本配置好了
首先
#磁盤限額部分
QuotaDirectoryTally on
#磁盤限額單位 b
QuotaDisplayUnits
QuotaEngine on
#磁盤限額日志記錄
QuotaLog
# 打開磁盤限額信息
QuotaShowQuotas on
#以下是SQL調用語句
SQLNamedQuery get
bytes_out_avail
WHERE name =
SQLNamedQuery get
bytes_xfer_used
WHERE name =
SQLNamedQuery update
bytes_out_used = bytes_out_used + %{
files_in_used = files_in_used + %{
files_xfer_used = files_xfer_used + %{
WHERE name =
SQLNamedQuery insert
QuotaLimitTable sql:/get
QuotaTallyTable sql:/get
然後建立mysql 數據表
CREATE TABLE quotalimits (
name VARCHAR(
quota_type ENUM(
per_session ENUM(
limit_type ENUM(
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(
quota_type ENUM(
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 表中一些字段的含意
quota_type 磁盤限額的鑒別
bytes_in_avail 上傳最大字節數
From:http://tw.wingwit.com/Article/program/MySQL/201311/29348.html