pureftp+mysql+pureadmin
如果文檔內的軟件下載鏈接不可用時,可以在http://down.51cto.com/data/785958 裏面下載
一、安裝環境準備
1.1 LAMP環境準備
LAMP的版本:
linux: Centos 5.8 X64
apache:Apache/2.2.23
php:PHP 5.3.20
mysql:mysql5.1.65
1.2檢查LAMP版本
查看Linux版本
[root@zhao ~]# cat /etc/redhat-release
CentOS release 5.8 (Final)
[root@WEB-A ~]# uname -m
x86_64
查看apache 版本
[root@zhao ~]# /application/apache/bin/apachectl -v
Server version: Apache/2.2.23 (Unix)
Server built:Jan 10 201309:52:51
查看php版本
[root@zhao ~]# /application/php/bin/php -v
PHP 5.3.20 (cli) (built: Jan 10 2013 14:21:42)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
查看MySQL版本
[root@zhao tools]# mysqladmin-u root -p123456 version
mysqladminVer 8.42 Distrib 5.1.65, forunknown-linux-gnu on x86_64
Copyright (c) 2000, 2011,Oracle and/or its affiliates. All rights reserved.
Oracle is a registeredtrademark of Oracle Corporation and/or its
affiliates. Other names maybe trademarks of their respective
owners.
Server version5.1.65-log
Protocol version10
ConnectionLocalhost via UNIX socket
UNIX socket/application/mysql5.1.65/tmp/mysql.sock
Uptime:1 hour 53 min 1 sec
Threads: 1Questions: 112Slow queries: 0Opens: 15Flush tables: 1Open tables:9Queries per second avg: 0.16
1.3用yum源安裝apache,php,mysql
yum install -y httpd php php-mysql mysqlmysql-server mysql-devel
service httpd start
service mysqld start
mysqladmin -u root -p password '123456'
二、安裝Pure-FTPd
2.1 Pure-FTPd 簡介
Pure-FTPd 是一款免費(BSD)的,安全的,高質量和符合標準的FTP服務器。 側重於運行效率和易用性。 它提供了簡單的答案,他滿足了大衆化的需求,包括普通用戶以及主機供應商們。
實現功能:通過web管理ftp用戶,實現新增、刪除、密碼修改、上傳/下載限速、磁盤限額、文件數量等。
2.2 Pure-FTPd 流程圖
(1)下載pureftpd
cd /home/zhao/tools/
wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.gz
或者 http://download.pureftpd.org/pub/pure-ftpd/releases/
tar -zxvf pure-ftpd-1.0.36.tar.gz
cd pure-ftpd-1.0.36
(2)編譯安裝
./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--with-language=simplified-chinese
//各編譯選項的含義,可以參考./configure –help
./configure \
--prefix=/usr/local/pureftpd \ //安裝目錄
--with-mysql \ //ftp服務器支持mysql驗證
--with-shadow \ //支持本地的
--with-pam \ //支持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 \ //溢值
--with-language=simplified-chinese //支持簡體中文
make &&make install
…………………………………………………………………………………………………
checking for mysql_init in -lmysqlclient... no
configure: error: libmysqlclient is needed for MySQL support
編譯時候若出現上面的提示,則安裝mysql和mysql-devel RPM包,這裏爲了簡便,直接使用rpm方式解決
yum -y install mysql mysql-devel
編譯安裝pure-ftpd出現configure: error: Your MySQL client libraries aren’t properlyinstalled錯誤
若編譯方式安裝mysql數據庫,前面的編譯選項可以改"--with-mysql=/usr/local/mysql",並將/usr/local/mysql目錄下的頭文件和開發庫文件加入ld.so.conf,該文件維護着系統的動態鏈接庫
echo "/usr/local/mysql/">> /etc/ld.so.conf
ldconfig
三、創建配置文件:
mkdir /usr/local/pureftpd/etc
cppureftpd-mysql.conf /usr/local/pureftpd/etc/
cp configuration-file/pure-ftpd.conf /usr/local/pureftpd/etc/
cp configuration-file/pure-config.pl /usr/local/pureftpd/sbin/
chmod +x /usr/local/pureftpd/sbin/pure-config.pl
3.1 配置虛擬用戶登錄環境
mkdir /home/ftproot
chmod -R777 /home/ftproot //可能會引起登錄時報421錯誤
useraddvirtualftp -d /home/ftproot -s /sbin/nologin -M //創建接下來的虛擬用戶對應的系統用戶
chownvirtualftp:virtualftp /home/ftproot
3.2修改配置文件使支持mysql認證
grep -v '^#'/usr/local/pureftpd/etc/pure-ftpd.conf |uniq|grep -v '^#'
//修改主配置文件如下,各項配置的含義可以參考配置文件註釋
ChrootEveryoneyes
TrustedGID99
BrokenClientsCompatibility yes
MaxClientsNumber5
Daemonizeyes
MaxClientsPerIP3
VerboseLogno
DisplayDotFilesyes
AnonymousOnlyno
NoAnonymousyes
SyslogFacilityftp
DontResolveyes
MaxIdleTime5
MySQLConfigFile/usr/local/pureftpd/etc/pureftpd-mysql.conf
LimitRecursion10000 8
AnonymousCanCreateDirsno
MaxLoad4
AntiWarezyes
Umask133:022
MinUID99
AllowUserFXPno
AllowAnonymousFXPno
ProhibitDotFilesWriteno
ProhibitDotFilesReadno
AutoRenameno
AnonymousCantUploadno
PIDFile/var/run/pure-ftpd.pid
MaxDiskUsage99
CustomerProofyes
IPV4Onlyyes
CreateHomeDiryes
配置文件詳細解釋
# vim pure-ftpd.conf
# 將每個用戶限制在自己的home目錄下
ChrootEveryone yes
# 兼容ie等比較非正規化的ftp客戶端。默認:no
BrokenClientsCompatibility yes
# 最大用戶連接數。默認:50
MaxClientsNumber 2000
# 後臺模式(守護進程模式)
Daemonize yes
# 同一個IP允許連接數(可以防止迅雷、快車等程序瘋狂開線程)。默認:8
MaxClientsPerIP 20
# 如果要記錄所有的客戶端命令,請設置爲‘yes’該選項可以將日誌同步複製到日誌服務器。默認:no
VerboseLog yes
# 顯示隱藏文件。默認:yes
DisplayDotFiles yes
# 不允許驗證用戶。只作爲匿名ftp服務器。默認:no
AnonymousOnly no
# 不允許匿名用戶連接。只允許驗證用戶連接。默認:no
NoAnonymous no
# 該選項是說將何種類型的日誌同步寫入到syslog中。
# 類型包括(auth, authpriv, daemon, ftp, security, user, local*)
# 默認是"ftp"如果不想將ftp的日誌顯示在/var/log/message中。則禁用即可: "none"
SyslogFacility none
# 顯示 cookies
# FortunesFile /usr/share/fortune/zippy
# 在日誌文件中不解析主機名。日誌越詳細所需要的帶寬也就越大。如果服務器的
# DNS解析有問題或者服務器的負載過大,建議將該選項配置yes。默認爲:yes
DontResolve yes
# 最大空閒時間。單位:分鐘 (默認 = 15 分鐘)
MaxIdleTime 15
# LDAP 配置文件
# LDAPConfigFile /etc/pureftpd-ldap.conf
# MySQL 配置文件 (詳情見 README.MySQL)
# MySQLConfigFile /etc/pureftpd-mysql.conf
# Postgres 配置文件 (詳情見 README.PGSQL)
# PGSQLConfigFile /etc/pureftpd-pgsql.conf
# PureDB 用戶數據庫 (詳情見 README.Virtual-Users)
# PureDB /etc/pureftpd.pdb
# pure-authd 的 socket 路徑 (詳見README.Authentication-Modules)
# ExtAuth /var/run/ftpd.sock
# 如果要使用PAM驗證,取消下面行的註釋
# PAMAuthentication yes
# 如果要使用/etc/passwd 文件驗證。取消下面行的註釋
# UnixAuthentication yes
# 注意:LDAPConfigFile, MySQLConfigFile, PAMAuthentication 與 UnixAuthentication
# 只能啓用一個,但他們可以聯合使用。例如:你啓用了 MySQLConfigFile 之後又啓用了
# UnixAuthentication那麼同一時刻只有SQL server 可用。如果SQL authentication 失敗,
# 例如用戶沒有找到,那麼系統會重試其他的方式來驗證,這時候它就會找/etc/passwd 和
# /etc/shadow文件. 如果通過 SQL 驗證的結果是因爲密碼錯誤,那麼就不會在進行下面的
# 驗證了。由此得知,驗證方法可以寫多個,但同一個時刻只有一個工作,且當驗證時找不
# 到信息時纔會進行下一個驗證方式。但當驗證錯誤時就終止驗證了。
# 'ls' 遞歸限制。第一個參數是最大可顯示的文件數。第二個參數是子文件夾深度
LimitRecursion 2000 8
# 匿名用戶是否可以創建新文件夾
AnonymousCanCreateDirs no
# 如果系統負載超過下面所給的數字,那麼匿名用戶將無法下載
MaxLoad 4
# 在被動連接模式下爲其分配的端口範圍。便於制定防火牆配置。
PassivePortRange 45000 50000
# 強制某個IP地址工作在 PASV/EPSV/SPSV 模式. - for NAT.
# ForcePassiveIP 192.168.0.1
# 匿名用戶上傳/下載比率
# AnonymousRatio 1 10
# 所有用戶上傳/下載比率。該選項可以取代上面的選項
# UserRatio 1 10
# 禁止下載所有者爲‘ftp’的文件。例如:那些匿名用戶上傳後未被本地管理員驗證的文件。
AntiWarez yes
# 用來監聽的IP地址和端口 (默認=所有 IP 和 21 端口).
# Bind 127.0.0.1,21
# 匿名用戶最大帶寬限制,單位 KB/s
AnonymousBandwidth 200
# 所有用戶的最大帶寬限制(包括匿名)單位 KB/s
# 沒有必要同時開啓 AnonymousBandwidth 和 UserBandwidth
# UserBandwidth 8
# 新建文件默認掩碼. <文件掩碼>:<目錄掩碼>
# 爲了安全起見可以設置爲 177:077
Umask 133:022
# 驗證登錄用戶的最小UID
MinUID 100
# 僅允許認證用戶進行 FXP 傳輸
AllowUserFXP no
# 對匿名用戶和非匿名用戶允許進行匿名 FXP 傳輸
AllowAnonymousFXP no
# 用戶不能刪除/寫入隱藏文件,即便是文件的擁有者也不允許。
# 如果 TrustedGID 選項爲 enabled 文件所屬組用戶可以訪問隱藏文件
ProhibitDotFilesWrite no
# 禁止讀取隱藏文件 (如 .history, .ssh...)
ProhibitDotFilesRead no
# 永不覆蓋文件。如果上傳的文件已經存在,系統會自動將其命名爲file.1, file.2, file.3, ...
AutoRename yes
# 不允許匿名用戶上傳文件 (no = 允許上傳)
AnonymousCantUpload no
# 僅允許來自以下IP地址的非匿名用戶連接。你可以使用這個指令來打開幾個公
# 網IP來提供匿名FTP,而保留一個私有的防火牆保護的IP來進行遠程管理。你
# 還可以只允許一內網地址進行認證,而在另外一個IP上提供純匿名的FTP服務。
#TrustedIP 10.1.1.1
# 如果你要在登陸日誌的每一行添加PID標記,去掉下行的註釋
#LogPID yes
# 使用類似於Apache格式創建一個附加的日誌文件,如:
# fw.c9x.org - jedi[13/Dec/1975:19:36:39] "GET /ftp/linux.tar.bz2" 200 21809338
# 這個日誌文件可以被www流量分析工具來處理
AltLog clf:/var/log/pureftpd.log
# 使用優化過的格式爲統計報告創建一個額外的日誌文件
# AltLog stats:/var/log/pureftpd.log
# 使用標準的W3C格式創建一個額外的日誌文件。(與大部分的商業日誌分析器兼容)
# AltLog w3c:/var/log/pureftpd.log
# 不允許使用chmod命令.用戶不能修改他們上傳文件的屬性
#NoChmod yes
# 允許用戶恢復和上傳文件,但不能夠上除他們
#KeepAllFiles yes
# 用戶主目錄不存在的話,自動創建目錄
#CreateHomeDir yes
# 啓用虛擬磁盤配額。第一個參數是最大文件數,第二個參數是總共的大小,單位是MB
# 如: 1000:10 限制每個用戶最大文件1000個且不能超過10MB
#Quota 1000:10
# 如果你在編譯 pure-ftpd 時加入了‘standalone’選項,那麼你可以更改pid文件位置
# 默認目錄 /var/run/pure-ftpd.pid
#PIDFile /var/run/pure-ftpd.pid
# 如果你在編譯 pure-ftpd 時加入了 pure-uploadscript 選項,這個指令將會使
# pure-ftpd 發送關於新上傳的情況信息到 /var/run/pure-ftpd.upload.pipe,
# 這樣 pure-uploadscript 就能讀然後調用一個腳本去處理新的上傳。
#CallUploadScript yes
# 這個選項對於匿名上傳的服務器是很有用的。/var/ftp 在 /var 裏時,需要保留一定
# 磁盤空間來保護日誌文件。當所在磁盤分區使用超過百分之 X 時,將不在接受新的上傳。
MaxDiskUsage 99
# 如果不想讓用戶來重命名文件,請將其設置爲yes
#NoRename yes
# 'customer proof' : 選項可以阻止普通用戶因誤操作而執行的錯誤命令
# 如:'chmod 0 public_html', 這是有效的命令,但執行完命令之後用戶
# 就將他們自己的文件鎖定了,這時你的麻煩就來了,你需要給用戶解決這
# 些由於用戶而造成的愚蠢問題。如果你確信的你用戶都具有一些unix基礎
# 知識的話,那麼該選項就沒有必要設置,否則建議啓用它。
CustomerProof yes
# 所有用戶都做同樣的限制。只有編譯時加入了--with-peruserlimits 選項
# 纔可以啓用。格式爲: <每一個用戶最大許可的進程>:<匿名用戶最大進程>
# 例如:3:20 同一個認證用戶最大可以有3個同時活動的進程。而且同時最多
# 只能有20個匿名用戶進程
# PerUserLimits 3:20
# 當文件上傳時,服務器上之前已經有一個同名的文件時,舊的文件既不會被移動
# 也不會被刪除。在新文件上傳完畢之前會將上傳的部分暫時放到一個臨時的文件
# 中,當上傳完畢之後會自動的切換到新上傳的文件。例如:當服務器上有一個PHP
# 腳本正在執行,但我現在要上傳一個新的PHP腳本,那麼當我在上傳完畢之後纔將
# 舊的文件切換到新的文件。而不是像某些程序那樣在開始上傳的時候就將舊的文件
# 覆蓋掉了,這樣做的目的就是可以最大程度的減少正在運行中的程序錯誤。該選項
# 與虛擬配額不能同時使用。
# NoTruncate yes
# 該選項可以接受3個可選值:
# 0 : 禁用 SSL/TLS 加密層 (默認).
# 1 : 同時接受傳統的和加密的連接
# 2 : 拒絕沒有經過 SSL/TLS 安全驗證的連接,包括匿名連接
# 在沒有確定下面三個問題之前不要盲目的取消註釋:
# 1) 編譯PureFTPd時是否啓用了 SSL/TLS 支持 (--with-tls),
# 2) 系統中是否包含一個有效的證書
# 3) 開啓後只有兼容的客戶端才能登陸
# TLS 1
# 在 standalone 模式下只監聽IPV4的地址 (與禁用 IPv6 相同)
# 默認是IPV4與IPV6同時監聽
# IPV4Only yes
# 在 standalone 模式下只監聽IPV6的地址 (與禁用 IPv4 相同)
# IPV6Only yes
# 文件名的UTF-8支持
# FileSystemCharset big5
# ClientCharset big5
/usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf //試啓動pureftpd服務
Running: /usr/local/pureftpd/sbin/pure-ftpd -A -a99 -c5 -B -C3 -D -E -fftp -H-I5 -lmysql:/usr/local/pureftpd/etc/pureftpd-mysql.conf -L10000:8 -m4 -s-U133:022 -u99 -g/var/run/pure-ftpd.pid -k99 -Z -4
3.3 修改mysql認證文件
# cat /usr/local/pureftpd/etc/pureftpd-mysql.conf| grep-v "#" | grep -v"^$"
MYSQLServerDB_ip//數據庫服務器
MYSQLPort3306//數據庫連接端口
MYSQLSocket/application/mysql/tmp/mysql.sock
MYSQLUserftp//連接數據庫用戶
MYSQLPasswordredhat//連接數據庫密碼
MYSQLDatabaseftpusers//連接的數據庫庫名
MYSQLCryptmd5//密碼加密方式
MYSQLGetPWSELECTPassword FROM users WHERE User="\L" //密碼驗證使用的表名MYSQLGetUIDSELECTUid FROM users WHERE User="\L" //UID驗證使用的表名
MYSQLGetGIDSELECTGid FROM users WHERE User="\L" //GID驗證使用的表名
MYSQLGetDirSELECTDir FROM users WHERE User="\L" //目錄驗證使用的表名
3.4 添加pureftpd爲系統服務
啓動pureftpd
/usr/local/pureftpd/sbin/pure-config.pl/usr/local/pureftpd/etc/pure-ftpd.conf
啓動自動運行
cd /home/zhao/tools/pure-ftpd-1.0.36/contrib/
[root@mysql-B contrib]# ls
MakefileMakefile.inpure-vpopauth.plsuse.init
Makefile.ampure-stat.plredhat.initxml_python_processors.txt
cp redhat.init /etc/init.d/pureftpd
chmod 755 /etc/init.d/pureftpd
vim /etc/init.d/pureftpd
四、pureadmin 0.21 簡介
pureadmin是pureftpd的後臺管理程序,可以通過此程序去管理mysql 數據庫的帳戶。程序以perl cgi 方式運行,採用了模板結構。
4.1 pureadmin 0.21有以下功能
1、用戶管理 2、用戶自助註冊(需要在系統裏打開)3、用戶可自主修改密碼 4、 查看當前在線用戶 5、查看用戶空間使用情況 6、採用模塊方式、模板美觀。 7、程序提示等大部分由英文改爲中文 8、增加了圖片驗證碼
4.2運行環境
1、linux/unix 系統 2、perl 5.6 以上 3、系統需要有下面的perl 模塊(大部份系統以自帶)4、apache/mysql
需求列表
apache
gd
jpeg
mysql-client
mysql-server
p5-DBD-mysql
p5-DBI
p5-GD
p5-GD-Barcode
p5-Storable
p5-gettext
perl
png
4.3 安裝方法
4.3.1導入mysql數據庫
cd /home/zhao/tools/
wget http://www1.yiyou.org/docs/PureAdmin_03_php/pureftp.sql
vim pureftp.sql
導入前,建議修改docs/pureftp.sql 文件裏的 passwd 紅色部分,這是mysql 的用戶密碼,如果經驗不足,可以不修改。
導入前需要修改此sql文件的15行:前2個減號空一格
15---------------------------------------------------------
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) VALUES('localhost','ftp',PASSWORD('passwd'),'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N');
mysql -uroot -p <docs/pureftp.sql
50 INSERT INTO admin VALUES ('admin',MD5('passwd'));
[root@zhao docs]# mysql -u root -p123456 < pureftp.sql導入數據
[root@zhao docs]# mysql -u root -p123456
mysql> show databases;查看ftpusers 數據庫
+--------------------+
| Database|
+--------------------+
| information_schema |
| ftpusers|
| mysql|
| test|
+--------------------+
4 rows in set (0.16 sec)
mysql> use ftpusers;
Database changed
mysql> show tables;查看錶
+--------------------+
| Tables_in_ftpusers |
+--------------------+
| admin|
| users|
+--------------------+
2 rows in set (0.00 sec)
mysql> select * from admin;
+----------+----------------------------------+
| Username | Password|
+----------+----------------------------------+
| admin| e2798af12a7a0f4f70b4d69efbc25f4d |
+----------+----------------------------------+
1 row in set (0.01 sec)
4.3.2修改pureadmin的配置文件配置web管理程序
cd /home/zhao/tools/
wget http://www1.yiyou.org/docs/PureAdmin_03_php/PureAdmin-0.3.tar.gz
[root@localhosttools]# tar -zxvf PureAdmin-0.3.tar.gz -C /application/apache/htdocs/
[root@localhosttools]# cd /application/apache/htdocs/
[root@localhosthtdocs]# mv PureAdmin-0.3 pureadmin
[root@localhosthtdocs]# cd pureadmin/
[root@localhostpureadmin]# vim config.php
<?php
$cfg['dbhost']='localhost'; //mysql host,一定要跟上面一樣
$cfg['dbname']='ftpusers';//mysql db name 所用的庫;與前面導入的sql中要一致>
$cfg['dbuser']='ftp'; //mysqluser 登錄mysql的帳號
$cfg['dbpasswd']='tmppasswd'; //mysql password 登錄mysql的密碼
//ftp config
$cfg['page']=10; 每頁顯示的用戶數量
//ftp passwd type :TEXT/CRYPT/MD5
$cfg['passwdtype']='MD5'; 認證模式<要與pureftpd-mysql.conf中一致>
//ftp default
$cfg['uid']=500; //uid 映射虛擬用戶的UID,即剛創建的virtualftp用戶
$cfg['gid']=500; //gid 同上
$cfg['dir']='/home/ftproot/'; //dir 默認家目錄
$cfg['qf']=0; //quotafiles 文件個數限制,0爲不限制
$cfg['qs']=100; //quotasize 總文件大小
$cfg['ul']=0; //ULBandwidth 上傳速率限制
$cfg['dl']=200; //DLBandwidth 下載速率限制
$cfg['ur']=0; //ULRatio 上傳比
$cfg['dr']=0; //DLRatio 下載比
$cfg['status']=1; //status 狀態,1爲激活;0爲禁止
$cfg['ip']= '*'; //ipaddress 可訪問IP,*爲所有
?>
4.3.3完成安裝
打開瀏覽器,輸入http://your_ip/ftp 即可訪問 默認用戶名:admin 密碼爲:passwd
界面欣賞
4.3.4新建用戶驗證
4.3.5錯誤集錦
530 錯誤
99%是數據庫連接信息錯誤,http://www.vpser.net/manage/lnmp-pureftpd-cp.html裏已經說過localhost 和 127.0.0.1 在mysql鏈接的時候是不一樣的!
如果確認用戶名和密碼沒錯,登錄phpmyadmin查看ftp登錄用戶是localhost還是 127.0.0.1
421錯誤
CreateHomeDir yes 允許用戶登錄後自動創建家目錄<必須>
啓動故障
[root@zhao-Betc]# /usr/local/pureftpd/sbin/pure-ftpd -j -lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb
無法啓動standalone server: ??????
解決方法:
vi pure-ftpd.conf
#Bind 127.0.0.1,21
改成:
Bind 192.168.100.202,21
五、用pureDB認證
5.1 修改配置文件支持pureDB認證
vi /usr/local/pureftpd/etc/pure-ftpd.conf
修改126行爲:
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
修改214行爲
Bind192.168.1.11,21
5.2 添加用戶user1舉例
pure-pw useradd user1 -u virtualftp -gvirtualftp -d /home/ftproot/user1 -m
說明:
user1是用戶名,-u virtualftp是其實際的linux用戶,-d指定起始目錄,並鎖定於該目錄。如果不鎖定,則用-D;如果需要不同的權限,可以建立新的linux用戶與組
如果用的系統自帶的ftp用戶,這樣的話還需修改配置文件pure-ftpd.conf中的MinUID爲ftp用戶的UID 14,否則登錄時會出現530錯誤;所以這裏建議創建另一個非系統自帶的用戶做映射
設置環境變量
echoPATH=$PATH:/usr/local/pureftpd/bin/ >>/etc/profile
source /etc/profile
5.3 建立用戶數據庫:
pure-pwmkdb /usr/local/pureftpd/etc/pureftpd.pdb
說明:今後每添加或修改用戶數據庫都應該執行一次mkdb
5.4 虛擬用戶的信息
以每個用戶一行的方式存放在相應的文件中,其格式如下所示:
<account>:<password>:<uid>:<gid>:<gecos>:<homedirectory>:<upload bandwidth>:<download bandwidth>:<uploadratio>:<download ratio>:<max number of connections>:<filesquota>:<size quota>:<authorized local IPs>:<refused localIPs>:<authorized client IPs>:<refused client IPs>:<timerestrictions>
其中,除了帳號、口令、 uid 、 gid 和 home 目錄之外,其它的可以是空值
5.5 pure-pw 創建用戶的語法規範如下:
pure-pwuseradd <login> [-f <passwd file>] -u <uid> [-g <gid>]
-D/-d<home directory> [-c <gecos>]
[-t<download bandwidth>] [-T <upload bandwidth>]
[-n <maxnumber of files>] [-N <max Mbytes>]
[-q<upload ratio>] [-Q <download ratio>]
[-r<allow client host>[/<mask>][,<allow clienthost>[/<mask>]]...]
[-R <denyclient host>[/<mask>][,<deny client host>[/<mask>]]...]
[-i<allow local host>[/<mask>][,<allow clienthost>[/<mask>]]...]
[-I <denylocal host>[/<mask>][,<deny local host>[/<mask>]]...]
[-y <maxnumber of concurrent sessions>]
[-z<hhmm>-<hhmm>] [-m]
如果pure-ftpd啓動時加入 -j(--createhome) 選項,則不需要創建/ftproot/tony目錄。系統會在該用戶第一次登陸時自動創建
參數說明
-t 下載帶寬限制
-T 上傳帶寬限制
-n 最大文件數目
-N 磁盤配額(單位M)
-q 上傳速度限制
-Q 下載速度限制
-r 允許某些ip/網段的客戶端訪問
-R 拒絕某些ip/網段的客戶端訪問
-i 允許本地某些ip/網段訪問(allow local host)
-I 拒絕本地某些ip/網段訪問(deny local host)
-y 同時最大連接數目
-z 允許連接服務器的時間段,格式hhmm-hhmm,如 -z 0412-1618代表用戶只能在凌晨4點12分至下午4點18分連接服務器
-f passwd_file
-F puredb_file
-m 不必重啓Pure-FTPd以及重新生成puredb_file文件
5.6 更改用戶的語法
pure-pw usermod <user> -n '' :禁用文件配額
pure-pw usermod <user> -N '' :禁用文件大小配額
pure-pw usermod <user> -q '' -Q '' :禁用 ratio
pure-pw usermod <user> -t '' :禁用下載帶寬限制
pure-pw usermod <user> -T '' :禁用上傳帶寬限制
pure-pw usermod <user> <-i,-I,-ror -R> '' :禁用 IP 過濾
pure-pw usermod <user> -z '' :禁用時間段約束
pure-pw usermod <user> -y '' :禁用併發數限制
5.7 刪除一個用戶
pure-pw userdel <login> [-f <passwdfile>] [-m]
這時,用戶的信息會被從指定的 passwd 文件中刪除,但是用戶的 home 目錄會被保留,需要手工刪除
5.8 更改一個用戶口令
pure-pw passwd <login> [-f<passwd file>] [-m]
5.9 顯示用戶信息
/etc/pureftpd.passwd 文件中記錄的信息不方便用戶的閱讀
因此 pure-ftpd 提供了顯示用戶信息的命令
其語法是: pure-pw show <login> [-f <passwdfile>]
5.10 後臺運行服務
使得pure-ftpd支持虛擬用戶,需要在編譯的時候加入選項--with-puredb 。這時,可以通過在啓動服務是的 ’-l’ 參數來設置。如:
/usr/local/pureftpd/sbin/pure-ftpd -j-lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb &
5.11 驗證
[root@zhao-Bftproot]# ll
總計 12
drwxr-xr-x2 virtualftp virtualftp 4096 05-10 16:20 user2