pureftp+mysql+pureadmin

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章