您的位置:首页 > 数据库 > SQL

pureftp+mysql+pureadmin

2013-05-10 16:33 549 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql pureftp pureadmin