cd /usr/ports/ftp/pure-ftpd
make install clean
#config 部分選擇支援 MYSQL、UTF-8
cd /usr/local/etc
cp pure-ftpd.conf.sample pure-ftpd.conf
設定Pure-FTPd
cd /usr/local/etc
cp pure-ftpd.conf.sample pure-ftpd.conf
chmod u+w pure-ftpd.conf
vi /usr/local/etc/pure-ftpd.conf
pure-ftpd 可設定的功能選項非常多,下面介紹幾個常用的參數:
# 所有人都 chroot 只有屬於管理群組 GID
# (下面的設定假設開放自訂的 admin 群姐 GID=1000) 的人才不 chroot
ChrootEveryone yesTrustedGID 1000
# 最多的連線數
MaxClientsNumber 50
# 同一個 IP 能夠連線的最高數量
MaxClientsPerIP 8
# 匿名 FTP 上載/下載的比率
# AnonymousRatio 1 10
# 所有用戶 上載/下載的比率
# UserRatio 1 10
# anonymous 使用者的頻寬速限,單位 KB/s
# AnonymousBandwidth 8
# 所有使用者(包括 anonymous) 的頻寬速限, 單位 KB/s
# UserBandwidth 8
# 如果要使用 PureDB user database 來建立虛擬帳號就加入下面這行
# 詳細的說明可以參考 README.Virtual-Users
# PureDB /usr/local/etc/pureftpd.pdb
建立MySQL設定檔
vim pureftpd-mysql.conf
# If you want to use the Socket connect methode comment out the
# Lines with MMYSQLServer and MYSQLPort.
# If you want to use the Port methode comment out the MYSQLSocket line
#MYSQLSocket /var/lib/mysql/mysql.sock
MYSQLServer localhost
MYSQLPort 3306
MYSQLUser ftp #MySQL使用者 最好是設定非root
MYSQLPassword password #密碼
MYSQLDatabase pureftpd
MYSQLCrypt cleartext
MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1"
MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1"
到此已設定完成,以下建立資料庫
DROP TABLE IF EXISTS ftpd;
CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Password varchar(64) NOT NULL default '',
Uid varchar(11) NOT NULL default '-1',
Gid varchar(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;
設定開機自動啟動
vim /etc/rc.conf
加入pureftpd_enable="YES"
啟用ftp
/usr/local/etc/rc.d/pure-ftpd start
資料庫欄位意義:
User: 使用者名稱
status: 使用者狀態,1為可登入,0為不可登入
Password: 密碼
UID: 系統的 UID,要大於100以上(Uid,Gid會影響上傳下載權限,基本上是都設一樣)
GID: 系統的 GID,要大於100以上
Dir: 登入系統的使用者目錄
ULBandwidth: 上傳頻寬,單位 KB/s
DLBandwidth: 下載頻寬,單位 KB/s
comment: 使用者身份簡介說明
ipaccess: 連線來源 IP限制,* 為不限制
QuotaSize:家目錄的大小限制,單位 MB,0為不限制
QuotaFiles: 檔案數量限制,0為不限制