• Ubuntu 18.04安装配置pure-ftpd解决中文乱码问题


    之前用的是vsftpd配置ftp服务器,前面用的挺好,没什么问题,但是后面接收设备上传的文件夹时发现了一个大坑,当设备上传的文件夹名字中包含中文时,在Linux上显示的是乱码。。。各种转码都不行,折腾不止半天,始终解决不了,哔了狗!!最后搜索其它配置ftp服务器的工具,发现了pure-ftpd这个好东西,且这个文章(传送门)中说的很清楚,vsftpd不支持内部转码,默认使用UTF8存储,当使用windows上传文件时会出现乱码情况,因为windows中文默认使用GBK编码,而pure-ftpd可以设置客户端的编码格式,这样服务器可以知道接收的是什么编码格式的文字,从而进行后续处理以正常显示。

    1、安装

    sudo apt-get install pure-ftpd

    2、配置

    //新建一个文件夹作为ftp上传文件的目录

    sudo mkdir -p /home/ftp 

    //添加一个用户,用于ftp登录,这里有人说必须用ftp这个用户名,后面了解原理后再更新

    //值得注意的是这些为ftp新建的用户一般不会用于登录系统,所以命令-s 设置为/bin/false,不允许shell登录

    sudo useradd -d /home/ftp -s /bin/false ftp 

     //为ftp用户设置密码

    sudo passwd ftp

    //设置目录所属用户和用户组,前面并没有建ftp用户组,不用担心,这样设置后会自动创建ftp用户组

    sudo chown -R ftp:ftp /home/ftp/  

     //为ftp目录添加所有权限

    chmod -R 777 /home/ftp

    3、配置

    配置文件在/etc/pure-ftpd/conf目录下,配置方式比较奇怪,一个配置项新建一个文件,文件名字是配置项名字,内容是配置项参数。如安装完进到该目录下发现有个NoAnonymous文件,内容是no,表示允许匿名登录的意思。如果要添加其它设置就继续新建文件。我加了如下配置:

    1、最初我把NoAnonymous改成了no,允许匿名登录,上传文件没问题,但是上传文件夹时提示“550 Sorry, anonymous users are not allowed to create directories”错误,说匿名用户不允许创建目录,于是我就把参数值改成了yes,强制需要登录,为了保险同时又加了下面配置。

    2、AnonymousCanCreateDirs,意思是允许匿名用户创建文件夹,这时再上传文件夹就可以了。

    3、ChrootEveryone,作用是把每个用户限制在家目录下,不允许跳出,类似于vsftpd的chroot_local_user,这样每个用户上传文件时就上传到自己的文件夹下,不会互相冲突。

    4、ClientCharset,这个是设置客户端字符集的,前面说了,windows上传文件有中文时乱码,因为windows上中文是以GBK表示的,上传时也是如此,但是Linux上是UTF8啊,所以如果不加这个参数,上传文件夹时如果有中文和vsftpd一样,也会显示为乱码,于是就加个文件,内容设置为gbk,这样该软件就可以处理中文了,显示一切正常。

    还有其它配置,不过我目前用到的就这么简单,后面有时间学习了再继续更新。

  • 相关阅读:
    jqGrid 各种参数 详解
    JqGrid自定义(图片)列
    win10以前连接过的wifi密码怎么查看
    C# 文件操作常用方法总结
    js LocalStorage
    list互转datatable 支持Nullable转换
    UVA 515 King
    UVA 558 Wormholes
    UVA 10986 Sending email 最短路问题
    UVA 10801 Lift Hopping 最短路
  • 原文地址:https://www.cnblogs.com/daner1257/p/10451615.html
Copyright © 2020-2023  润新知