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 流程图

164341556.jpg


(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

164307640.jpg

四、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

界面欣赏


164240143.jpg

164143145.jpg

164143951.jpg


4.3.4新建用户验证

164123661.jpg

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 验证

164105167.jpg

[root@zhao-Bftproot]# ll

总计 12

drwxr-xr-x2 virtualftp virtualftp 4096 05-10 16:20 user2