軟體環境:
pure-ftpd-1.0.36.tar.gz(pure-ftp)
PureAdmin-0.3.tar.gz(web管理)
pureftp.sql(虛擬帳號的資料庫匯入檔案)
pureftpd-mysql.conf(虛擬帳號連結資料庫的設定檔)
一.安裝Pure-ftp server
# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.gz
# tar -zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src/
# cd /usr/local/src/pure-ftpd-1.0.36/
#
./configure \
--prefix=/usr/local/pureftpd \
--with-mysql \
--with-shadow \
--with-pam \
--with-welcomemsg \
--with-uploadscript \
--with-cookie \
--with-virtualchroot \
--with-virtualhosts \
--with-diraliases \
--with-quotas \
--with-puredb \
--with-sysquotas \
--with-ratios \
--with-ftpwho \
--with-throttling
# make && make install
拷貝產生pureftp服務的主設定檔和服務指令碼:
# chmod a+x configuration-file/pure-config.pl
# cp configuration-file/pure-config.pl /usr/local/pureftpd/sbin/
# mkdir /usr/local/pureftpd/etc
# cp configuration-file/pure-ftpd.conf /usr/local/pureftpd/etc/
拷貝產生pureftp服務的啟動指令碼,並編輯修改相應參數:
# cp contrib/redhat.init /etc/init.d/pureftpd
# vim /etc/init.d/pureftpd
# chmod 755 /etc/init.d/pureftpd
# chkconfig --add pureftpd
# chkconfig pureftpd on
配置pure-ftp的主設定檔,添加虛擬帳號的登入環境參數:
# vim /usr/local/pureftpd/etc/pure-ftpd.conf
建立使用者的家目錄:
# mkdir /data/resources/ftpdata
# chmod -R 777 /data/resources/ftpdata/
# useradd virtualftp -d /data/resources/ftpdata/ -s /sbin/nologin -M
# chown virtualftp.virtualftp /data/resources/ftpdata/
虛擬帳號的認證配置:
# vim /usr/local/pureftpd/etc/pure-ftpd.conf
建立虛擬帳號與伺服器本地帳號的映射:
# cd /usr/local/pureftpd/bin/
# ./pure-pw useradd user1 -u virtualftp -g virtualftp -d /data/resources/ftpdata/user1 -m
說明:
user1是使用者名稱,-u virtualftp是其實際的linux使用者,-d指定起始目錄,並鎖定於該目錄。如果不鎖定,則用-D;如果需要不同的許可權,可以建立新的linux使用者與組,如果用的系統內建的ftp使用者,這樣的話還需修改設定檔pure-ftpd.conf中的MinUID為ftp使用者的UID 14,否則登入時會出現530錯誤;所以這裡建議建立另一個非系統內建的使用者做映射.
建立使用者資料庫:
# ./pure-pw mkdb /usr/local/pureftpd/pureftpf.pdb
二、安裝PureAdmin web管理
# tar -zxvf PureAdmin-0.3.tar.gz
# mv PureAdmin-0.3 /var/www/html/pureadmin
匯入資料檔案pureftp.sql到MySQL資料庫,因為小編使用的MYSQL是5.1以上的版本,所以PureAdmin的表結構的引擎並不能夠完全相容,要做出修改.
註:匯入前作如下修改.
INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','ftp',PASSWORD('passwd'),'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N','Y','Y','Y');
FLUSH PRIVILEGES;
CREATE DATABASE ftpusers;
USE ftpusers;
CREATE TABLE admin (
Username varchar(35) NOT NULL default '',
Password char(32) binary NOT NULL default '',
PRIMARY KEY (Username)
) ;
INSERT INTO admin VALUES ('admin',MD5('123456'));
CREATE TABLE `users` (
`User` varchar(16) NOT NULL default '',
`Password` varchar(32) binary NOT NULL default '',
`Uid` int(11) NOT NULL default '14',
`Gid` int(11) NOT NULL default '5',
`Dir` varchar(128) NOT NULL default '',
`QuotaFiles` int(10) NOT NULL default '500',
`QuotaSize` int(10) NOT NULL default '30',
`ULBandwidth` int(10) NOT NULL default '80',
`DLBandwidth` int(10) NOT NULL default '80',
`Ipaddress` varchar(15) NOT NULL default '*',
`Comment` tinytext,
`Status` enum('0','1') NOT NULL default '1',
`ULRatio` smallint(5) NOT NULL default '1',
`DLRatio` smallint(5) NOT NULL default '1',
PRIMARY KEY (`User`),
UNIQUE KEY `User` (`User`)
) ;
匯入資料,並授權:
# /etc/init.d/mysqld start
# mysql -rroot -p < pureftp.sql
mysql>grant all privileges on ftpusers.* to ftp@localhost identified by 'tmppasswd';
mysql> flush privileges;
mysql> quit
修改pureadmin的設定檔,修改資料庫的相關參數:
# vim /var/www/html/pureadmin/config.php
配置pureftpd-mysql.conf串連資料庫檔案:
# cp /usr/local/src/pure-ftpd-1.0.36/pureftpd-mysql.conf /usr/local/pureftpd/etc/
# vim /usr/local/pureftpd/etc/pureftpd-mysql.conf
三、瀏覽器登入測試
http://10.163.11.252/pureadmin (使用者名稱:admin,密碼:123456)
遇到的錯誤:
報錯:configure: error: PAM headers not found.
安裝 yum install pam-devel
報錯:configure: error: libmysqlclient is needed for MySQL support
安裝mysql:yum -y install mysql-server mysql-devel mysql