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

参考文献:

https://www.cnblogs.com/zjutzz/p/4993106.html

分类: FTP服务器 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录