CentOS9系统部署pure-ftp_FortySun的博客-程序员秘密

技术标签: linux  Linux环境运维  

        通过Windows客户端上传文件到CentOS出现乱码,在网上搜索一些资料之后,发现pure-ftp支持编码转换功能,所以研究了一下进行部署,在此记录一下安装过程,进行整理,也防止其他人踩坑。

        准备安装包libiconv-1.17.tar.gz和pure-ftpd-1.0.50.tar.gz

  • 安装libiconv

1、将包拷贝到/usr/local/src目录,并解压

$tar -xzvf libiconv-1.17.tar.gz

2、进入解压目录

$cd libiconv-1.17

3、进入解压目录,进行安装

$ ./configure --prefix=/usr/local

$ make

$ make install

4、完成之后进行确认

$iconv –help

看到如下内容,代表安装成功

Usage: iconv [OPTION...] [FILE...]

Convert encoding of given files from one encoding to another.

Input/Output format specification:

-f, --from-code=NAME encoding of original text

-t, --to-code=NAME encoding for output

Information:

-l, --list list all known coded character sets

5、将.so库链接到系统库目录

ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/libiconv.so.2

ln -s /usr/local/lib/libiconv.so /usr/lib64/libiconv.so

ln -s /usr/local/lib/libiconv.so.2.6.1 /usr/lib64/libiconv.so.2.6.1

  • 安装pure-ftpd

1、安装编译工具包

yum install make gcc* gcc-c++ openssl openssl-devel bzip2 wget tar

2、下载pure-ftpd

cd /usr/local/src/

wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.50.tar.gz

3、安装pure-ftpd

mkdir -p /usr/local/pureftpd  #创建安装目录

cd /usr/local/src/

tar zxvf pure-ftpd-1.0.50.tar.gz

cd pure-ftpd-1.0.50

./configure --prefix=/usr/local/pureftpd --with-everything CFLAGS=-O2 --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-ftpwho --with-tls --with-rfc2640

make

make install

vi /etc/profile   #把pure-ftpd服务加入系统环境变量:在最后添加下面这一行

export PATH=$PATH:/usr/local/pureftpd/bin

4、配置pure-ftpd

4.1新建系统用户和组www,用户登录终端设为/sbin/nologin(即不能登录系统)

groupadd www

useradd -s /sbin/nologin -g www www

#此系统用户作为ftp虚拟用户的宿主用户

4.2创建FTP服务器虚拟用户访问目录

mkdir -p /data/ftp  #ftp虚拟用户主目录

mkdir -p /data/ftp/ftpuser  #ftp虚拟用户LgFtp的目录

chown  www.www  ftpuser02    -R  #设置ftp虚拟用户目录权限为宿主用户www所有

4.3创建虚拟用户

/usr/local/pureftpd/bin/pure-pw   useradd   LgFtp  -u  www  -d   /data/ftp/ftpuser

提示输入ftp虚拟用户密码:

Password:123123

Enter it again:123123

同样可以添加第二个用户

/usr/local/pureftpd/bin/pure-pw   useradd   ftpuser02  -u  www  -d  /data/ftp/ftpuser

-u选项将ftp虚拟用户和宿主用户www关联,虚拟用户登录后,会以宿主用户权限进行上传下载操作

-d选项后面是ftp虚拟用户的目录,每个ftp虚拟用户只能访问自己的目录

/usr/local/pureftpd/bin/pure-pw   mkdb  #生成虚拟用户数据文件

#虚拟用户数据存放文件

/usr/local/pureftpd/etc/pureftpd.passwd    #虚拟用户文件

/usr/local/pureftpd/etc/pureftpd.pdb         #虚拟用户数据文件

4.4修改pure-ftpd配置文件

mkdir -p /usr/local/pureftpd/var/run/  #创建进程文件存放目录

mkdir -p /usr/local/pureftpd/var/log/  #创建日志文件存放目录

vi   /usr/local/pureftpd/etc/welcome  #添加Pure-FTPd登录欢迎信息文件,内容可以自定义

Welcome to Pure-FTPd

:wq! #保存退出

mv /usr/local/pureftpd/etc/pure-ftpd.conf     /usr/local/pureftpd/etc/pure-ftpd.conf-bak   #备份配置文

可以用自己备的配置文件替换掉原来的配置文件。

或者vi   /usr/local/pureftpd/etc/pure-ftpd.conf  #编辑配置文件

加入如下内容:

ChrootEveryone               yes

BrokenClientsCompatibility   no

MaxClientsNumber             50

MaxClientsPerIP              8

VerboseLog                   no

DisplayDotFiles              yes

AnonymousOnly                no

SyslogFacility               ftp

DontResolve                  yes

MaxIdleTime                  15

LimitRecursion               10000 8

AnonymousCanCreateDirs       no

MaxLoad                      4

AntiWarez                    yes

Umask                        133:022

MinUID                       100

AllowUserFXP                 no

AllowAnonymousFXP            no

ProhibitDotFilesWrite        no

ProhibitDotFilesRead         no

AutoRename                   no

MaxDiskUsage                   99

CustomerProof                yes

#设置ftp端口,默认为21,0.0.0.0表示本机所有ip地址

Bind    0.0.0.0,21

#设置PureFTP被动端口

PassivePortRange   40000   40010

#禁止匿名用户上传文件( no表示允许上传)

AnonymousCantUpload    yes

#禁止匿名连接,仅允许认证用户连接

NoAnonymous   yes

#禁止系统用户认证

UnixAuthentication  no

#允许后台运行

Daemonize               yes

#虚拟用户数据文件

PureDB                    /usr/local/pureftpd/etc/pureftpd.pdb

#进程文件

PIDFile                   /usr/local/pureftpd/var/run/pure-ftpd.pid

#日志文件

AltLog                   clf:/usr/local/pureftpd/var/log/pureftpd.log

#Pure-FTPd登录欢迎信息

FortunesFile         /usr/local/pureftpd/etc/welcome

#支持加密传输

#TLS                       2   

#加密证书路径

#CertFile              /usr/local/pureftpd/ssl/pure-ftpd.pem

:wq! #保存退出

5、设置开机启动

vi /usr/lib/systemd/system/pure-ftpd.service    #设置pureftpd开机启动

将如下内容加入文件:

[Unit]

Description=Pure-FTPd FTP server

After=syslog.target network.target

[Service]

Type=forking

ExecStart=/usr/local/pureftpd/sbin/pure-ftpd --fscharset=utf-8 --clientcharset=gb2312   /usr/local/pureftpd/etc/pure-ftpd.conf

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s QUIT $MAINPID

[Install]

WantedBy=multi-user.target

输入如下命令:

:wq! #保存退出

systemctl enable pure-ftpd   #添加开机启动

systemctl start pure-ftpd.service  #启动

systemctl stop pure-ftpd.service  #停止

systemctl restart pure-ftpd.service  #重启

6、防火墙设置

IPtables 的设置方式:

vi /etc/sysconfig/iptables
#编辑iptables文件,添加如下内容,开启21端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4000:40010 -j ACCEPT


firewall 的设置方式:
firewall-cmd --zone=public --add-service=ftp --permanent



firewall-cmd --zone=public --add-port=21/tcp --permanent

firewall-cmd --zone=public --add-port=40000-40010/tcp –permanent

7、关闭SELINUX

#打开SELINUX配置文件
vim /etc/selinux/config
#修改配置参数
#注释  
#SELINUX=enforcing
#增加  
SELINUX=disabled

#修改完成后,需要重启!

8、使用ftp客户端进行连接

在Windows下使用ftp客户端软件(FileZilla、FlashFXP)连接ftp服务器

配置文件地址:pure-ftp配置文件-Linux文档类资源-CSDN下载

参考链接:CentOS 8.x/Rocky Linux 8.x编译安装配置Pure-FTPd服务器 | 系统运维

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ThortySun/article/details/124954133

智能推荐

改变CSV文件的编码 由gbk改为utf8_csv gbk转utf8_前方太黑暗的博客-程序员秘密

/** * 改变CSV文件的编码 由gbk改为utf8 * @author xuchangcheng * 2019年9月5日 * */public class ConversionCSVcoding { private final static String SOURCE_ENCODING = "GBK"; private final static String TARGET_...

狂神说java~MYSQL学习笔记_sqlyog报错2026_小小程序猿·的博客-程序员秘密

1、数据库什么是数据库数据库 ( DataBase , 简称DB )概念 : 长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据 “仓库”作用 : 保存,并能安全管理数据(如:增删改查等),减少冗余…数据库总览 :关系型数据库 ( SQL )MySQL , Oracle , SQL Server , SQLite , DB2 , …关系型数据库通过外键关联来建立表与表之间的关系非关系型数据库 ( NOSQL )Redis , MongoDB , …非关

Kubernetes之(十六)Dashboard认证访问_weixin_30326745的博客-程序员秘密

目录 Kubernetes之(十六)Dashboard认证访问 Dashboard部署 token认证 kube-config认证 总结 Kubernetes之(十六)Dashboard认证访问Dashboard:https://g...

2012-6-4_vickie1989的博客-程序员秘密

今天是新公司报到的第一天,早上做了简短的入职培训及考核后,来到了10F办公室,我坐在一个人比较少的地方,看来这里是准备迎接更多的新人。打开电脑后发现除了共享盘的资料,自己的私人盘不能放.exe可执行文件,软件基本都只能装在系统盘,但是又没有管理员权限,所以有点郁闷,感觉电脑系统这么管理有点严格了。我认为开发环境应该给予程序员更自主的空间。同事传了个文档,跟着装了下ORACLE、PLSQ

信号的阻塞_信号打断阻塞什么意思_uestczshen的博客-程序员秘密

信号的阻塞就是让系统暂时保留信号留待以后发送。(注意:不是不发送,而是延迟发送)一般情况下信号的阻塞只是暂时的,只是为了防止信号打断敏感的操作。1 信号集所有的信号阻塞函数都使用称作信号集的数据结构来表明受到影响的信号。每一个操作都包括两个阶段:创建信号集,传递信号集给特定的库函数。下面说明信号集和相关的数据类型:sigset_t:这个数据类型用来代表信号的集合,有两种方法对它进行初始

NXP S32K1 时钟系统Driver使用_nxp 取系统时钟_mcucpp的博客-程序员秘密

本文通过分析S32SDK 始终系统驱动,以便更好的使用MCU。

随便推点

canvas根据角度画射线_canvas 光照射线_daily886的博客-程序员秘密

let ctx_line = canvas.getContext("2d"); let centerX = canvas.width/2; //中心点 let centerY = canvas.height/2; //中心点 let arc_radius = 100; //半径 //画射线 let x1,y1; arc_radiu...

蓝桥杯 基础练习 杨辉三角形 java_一叶之修的博客-程序员秘密

摘要:题目描述杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。下面给出了杨辉三角形的前4行:1111211331给出n,输出它的前n行。输入格式输入包含一个数n。输出格式输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。样例输入4样例输出1111211331publicclassMain{publicstaticvoidmain(题目描述杨辉三角形又称

DNS和Web服务的配置与访问_cisco packet tracer怎样修改服务器名称_Yolo.H的博客-程序员秘密

实验要求:实现下图的DNS和Web设置,以及pc1对Web服务器的访问实验软件:Cisco Packet Tracer1:选择要件并更名从左下方选项框中选择:Routers中的2620XM Router;Switches中的2960-24TTSwitchEnd Devices中的PC-PT(两个),Server-PT(两个)改名:将一个Server-PT更改名字为DNS Server(意指:之后更改这个的DNS)将另一个Server-PT更改名字为Web Ser

手机摄像头变成PC电脑摄像头_怎么用手机摄像头代替电脑摄像头_jiujiangluck的博客-程序员秘密

手机摄像头变成PC电脑摄像头工具硬件:一台手机(Android,IOS),一根数据线(或者处于同一局域网),一台PC机(Windows,Linux(Ubuntu18.04))软件:DroidCam Mobile client PC client安装手机端和Windows 安装比较傻瓜, Ubuntu 安装按照英文教程安装就可以了使用如果使用网络就没有很麻烦,只要让两个客户端处于同一局域网即可启动使用USB数据线连接,Android 手机需要开启开发者调试模式(可能有的小伙伴找不到这个功能,

所有表单路由跳转时,弹出二次确认框_风吹过你怎么样了的博客-程序员秘密

简述在表单页面,用户点击按钮跳转时,需要弹出二次确认框来进行二次确认,由于有很多这种需求,从而写了一个统一的确认框,统一调用。1. 二次确认框代码 notSave.vue<template> <el-dialog :visible.sync="visible" width="400px" class="remove-confirm" :before-close="handleClose" @click="handleClose" &gt

推荐文章

热门文章

相关标签