centos下pureftp配合mysql使用
pureftpd版本1.0.49,ip地址192.168.0.11,系统centos7,pureftpd安装目录为/usr/local/pureftpd,测试ftp用户os,密码123258,目录为/home/www。mysql5.6
mysql5.6安装方法,因为用于网上的云主机,所以是www用户组。www用户组ID为1000,ftp用户上传目录为/home/www
打开防火墙端口
firewall-cmd --add-service=ftp --permanent;
firewall-cmd --reload;
因本系统用户云主机上的,前端有nginx和php并都运行于www用户下的,所以上传的文件也就是需要属于www用户。
安装支持组件
yum -y install wget make gcc gcc-c++ gcc-g77 openssl openssl-devel
下载并编译pureftpd
wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.49.tar.gz
tar zxvf pure-ftpd-1.0.49.tar.gz
cd pure-ftpd-1.0.49
./configure --prefix=/usr/local/pureftpd CFLAGS=-O2 --with-mysql --with-puredb --with-quotas --with-cookie --with-virtualhosts --with-diraliases --with-sysquotas --with-ratios --with-altlog --with-paranoidmsg --with-shadow --with-welcomemsg --with-throttling --with-uploadscript --with-language=english --with-rfc2640 --with-ftpwho --with-tls
make &&make install
复制配置文件到pureftpd的etc目录
cp pureftpd-mysql.conf /usr/local/pureftpd/etc
编辑/usr/local/pureftpd/etc的pure-ftpd.conf
ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber 50
Daemonize yes
MaxClientsPerIP 10
VerboseLog no
DisplayDotFiles yes
AnonymousOnly no
NoAnonymous yes
SyslogFacility ftp
DontResolve yes
MaxIdleTime 15
MySQLConfigFile /usr/local/pureftpd/etc/pureftpd-mysql.conf
UnixAuthentication yes
LimitRecursion 10000 8
AnonymousCanCreateDirs no
MaxLoad 4
PassivePortRange 3500 4000
ForcePassiveIP 192.168.0.11
AntiWarez yes
Bind ,21
Umask 133:022
MinUID 100
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
AutoRename no
AnonymousCantUpload yes
PIDFile /var/run/pure-ftpd.pid
MaxDiskUsage 99
CustomerProof yes
编辑/usr/local/pureftpd/etc的pureftpd-mysql.conf,
MYSQLCrypt
md5(为md5保存方式)
MYSQLCrypt
cleartext (为明文方法)
以下是配置文件(注意在每个"L"和“R”)
MYSQLServer localhost
MYSQLPort 3306
MYSQLSocket /var/run/mysqld/mysqld.sock
MYSQLUser pureftpd
MYSQLPassword pureftpd
MYSQLDatabase pureftpd
MYSQLCrypt md5
MYSQLGetPW SELECT Password FROM pureftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetUID SELECT Uid FROM pureftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetGID SELECT Gid FROM pureftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetDir SELECT Dir FROM pureftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM pureftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM pureftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTASZ SELECT QuotaSize FROM pureftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTAFS SELECT QuotaFiles FROM pureftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
接下来配置mysql,进入mysql创建一个用户pureftpd和pureftpd密码及pureftpd数据库,你可以自定义
mysql -uroot -p123258
进入mysql后执行以下代码
CREATE DATABASE pureftpd;
grant all on pureftpd.* to pureftpd@"localhost" identified by 'pureftpd';
use pureftpd;
CREATE TABLE `pureftpd` (
`User` varchar(16) NOT NULL DEFAULT '',
`status` enum('0','1') NOT NULL DEFAULT '0',
`Password` varchar(64) NOT NULL DEFAULT '',
`Uid` varchar(11) NOT NULL DEFAULT '-1',
`Gid` varchar(11) NOT NULL DEFAULT '-1',
`Dir` varchar(128) NOT NULL DEFAULT '',
`ULBandwidth` smallint(5) NOT NULL DEFAULT '0',
`DLBandwidth` smallint(5) NOT NULL DEFAULT '0',
`comment` tinytext NOT NULL,
`ipaccess` varchar(15) NOT NULL DEFAULT '*',
`QuotaSize` smallint(5) NOT NULL DEFAULT '0',
`QuotaFiles` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`User`),
UNIQUE KEY `User` (`User`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
刷新并退出
FLUSH PRIVILEGES;
quit
接下来配置上传目录
mkdir -p /home/www
chown www:www -R /home/www
chmod 700 -R /home
启动ftp
/usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf
添加一个上传下载用户用户名为os,密码为123258,空间大小为100M如不限制为0,前提先进入mysql
mysql -uroot -p123258
进入pureftpd表
use pureftpd;
添加一个test的用户密码为loshub,gid和uid都为1000,目录为/home/www
use pureftpd;
INSERT INTO `pureftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('test', '1', MD5('loshub'), '1000', '1000', '/home/www', '0', '0', '', '*', '0', '0');
UID:ftp用户的ID。
GID:ftp用户组的ID。
Dir:ftp用户对应的根目录。
ULBandwidth:上传最大速度,单位为KB/s。
DLBandwidth:下载最大速度,单位为KB/s。
comment:备注。
ipaccess:可以连接ftp服务器的IP。“*”表示任何IP可以连接。
QuotaSize:最大存储空间,单位为MB。“0”表示不限制。
QuotaFiles:最大建立的文件数量。“0”表示不限制。
加入开机启动
vi /lib/systemd/system/pureftp.service
输入以下代码
[Unit]
Description=pureftp Service
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/pureftpd/sbin/pure-ftpd /usr/local/pureftpd/etc/pure-ftpd.conf
[Install]
WantedBy=multi-user.target
保存退出后创建软连
ln -s /lib/systemd/system/pureftp.service /etc/systemd/system/multi-user.target.wants/pureftp
载入启动
systemctl daemon-reload
systemctl enable pureftp
启动
systemctl start pureftp
停止
systemctl stop pureftp
重启
systemctl restart pureftp
参考文献:
本文系作者 @天边的云 原创发布在Loshub站点。未经许可,禁止转载。
暂无评论数据