通过Windows客户端上传文件到CentOS出现乱码,在网上搜索一些资料之后,发现pure-ftp支持编码转换功能,所以研究了一下进行部署,在此记录一下安装过程,进行整理,也防止其他人踩坑。
准备安装包libiconv-1.17.tar.gz和pure-ftpd-1.0.50.tar.gz
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
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服务器
/** * 改变CSV文件的编码 由gbk改为utf8 * @author xuchangcheng * 2019年9月5日 * */public class ConversionCSVcoding { private final static String SOURCE_ENCODING = "GBK"; private final static String TARGET_...
1、数据库什么是数据库数据库 ( DataBase , 简称DB )概念 : 长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据 “仓库”作用 : 保存,并能安全管理数据(如:增删改查等),减少冗余…数据库总览 :关系型数据库 ( SQL )MySQL , Oracle , SQL Server , SQLite , DB2 , …关系型数据库通过外键关联来建立表与表之间的关系非关系型数据库 ( NOSQL )Redis , MongoDB , …非关
目录 Kubernetes之(十六)Dashboard认证访问 Dashboard部署 token认证 kube-config认证 总结 Kubernetes之(十六)Dashboard认证访问Dashboard:https://g...
今天是新公司报到的第一天,早上做了简短的入职培训及考核后,来到了10F办公室,我坐在一个人比较少的地方,看来这里是准备迎接更多的新人。打开电脑后发现除了共享盘的资料,自己的私人盘不能放.exe可执行文件,软件基本都只能装在系统盘,但是又没有管理员权限,所以有点郁闷,感觉电脑系统这么管理有点严格了。我认为开发环境应该给予程序员更自主的空间。同事传了个文档,跟着装了下ORACLE、PLSQ
信号的阻塞就是让系统暂时保留信号留待以后发送。(注意:不是不发送,而是延迟发送)一般情况下信号的阻塞只是暂时的,只是为了防止信号打断敏感的操作。1 信号集所有的信号阻塞函数都使用称作信号集的数据结构来表明受到影响的信号。每一个操作都包括两个阶段:创建信号集,传递信号集给特定的库函数。下面说明信号集和相关的数据类型:sigset_t:这个数据类型用来代表信号的集合,有两种方法对它进行初始
本文通过分析S32SDK 始终系统驱动,以便更好的使用MCU。
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...
深入分析InnoDB引擎的表存储结构前言前言上一篇我们分析了
摘要:题目描述杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。下面给出了杨辉三角形的前4行:1111211331给出n,输出它的前n行。输入格式输入包含一个数n。输出格式输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。样例输入4样例输出1111211331publicclassMain{publicstaticvoidmain(题目描述杨辉三角形又称
实验要求:实现下图的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电脑摄像头工具硬件:一台手机(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" >