CentOS7使用pure-ftpd搭建ftp服务

 1.安装pure-ftpd

#yum源并不包含pure-ftpd,需要安装epel扩展源

[root@jiaozi ~]# yum install -y epel-release

CentOS7使用pure-ftpd搭建ftp服务

# yum install -y pure-ftpd

安装时发现缺少libmysqlclient.so.18依赖,用find命令检查一下,发现确实没有该依赖。

[root@jiaozi ~]# find / -name libmysqlclient.so*

CentOS7使用pure-ftpd搭建ftp服务

CentOS7使用pure-ftpd搭建ftp服务

原因是我在安装mysql的时候没有全部安装,只安装了部分功能,现在只需要找到mysql对应的mysql-community-libs-compat的rpm包进行安装即可。

若安装mysql时不是下载的.rpm-bundle.tar文件,则需要去官网下载安装即可。(https://downloads.mysql.com/archives/community/)

[root@jiaozi ~]# cd /usr/local/src/mysql-5.7.34/

#安装mysql-community-libs-compat包
[root@jiaozi mysql-5.7.34]# rpm -ivh mysql-community-libs-compat-5.7.34-1.el7.x86_64.rpm

CentOS7使用pure-ftpd搭建ftp服务

CentOS7使用pure-ftpd搭建ftp服务

回到家目录,再次执行yum install -y pure-ftpd命令,安装成功。

[root@jiaozi ~]# cd ~

[root@jiaozi ~]# yum install -y pure-ftpd

CentOS7使用pure-ftpd搭建ftp服务

2.配置pure-ftpd

说明

在启动pure-ftpd之前,需要先修改配置文件/etc/pure-ftpd/pure-ftpd.conf。

#找到PureDB /etc/pure-ftpd/pureftpd.pdb这一行,删除这一行前面的#号
[root@jiaozi ~]# vim /etc/pure-ftpd/pure-ftpd.conf

CentOS7使用pure-ftpd搭建ftp服务

启动pure-ftpd

[root@jiaozi ~]# systemctl start pure-ftpd

查看服务状态

[root@jiaozi ~]# ss -naltp |grep pure-ftpd
LISTEN     0      9            *:21                       *:*                   users:(("pure-ftpd",pid=17836,fd=4))
LISTEN     0      9         [::]:21                    [::]:*                   users:(("pure-ftpd",pid=17836,fd=5))

3.建立账号

为了安全,pure-ftpd使用的账号并非linux的系统账号,而是虚拟账号。

#创建虚拟账户,-u是将虚拟用户ftp_usera与系统用户pure-ftp关联在一起,也就是说,使用ftp_usera账号登录ftp后,会以pure-ftp的身份来读取和下载文件,-d是指定ftp_usera账户的家目录,这样可以使用户ftp_usera只能访问其家目录/data/ftp/。

[root@jiaozi ~]# mkdir -p /data/ftp
[root@jiaozi ~]# useradd -u 1010 pure-ftp
[root@jiaozi ~]# chown -R pure-ftp:pure-ftp /data/ftp
[root@jiaozi ~]# pure-pw useradd ftp_usera -u pure-ftp  -d /data/ftp
Password: 
Enter it again: 

创建用户信息数据库文件

[root@jiaozi ~]# pure-pw mkdb

#列出当前账号
[root@jiaozi ~]# pure-pw list
ftp_usera           /data/ftp/./   

安装lftp客户端

[root@jiaozi ~]# yum install -y lftp

#安装完成
已安装:
  lftp.x86_64 0:4.4.8-12.el7_8.1                                                                    

作为依赖被安装:
  gnutls.x86_64 0:3.3.29-9.el7_6   nettle.x86_64 0:2.7.1-9.el7_9   trousers.x86_64 0:0.3.14-2.el7  

完毕!

4.测试链接

[root@jiaozi ~]# touch /data/ftp/123.txt
[root@jiaozi ~]# lftp ftp_usera@127.0.0.1
口令: 
lftp ftp_usera@127.0.0.1:~> ls      
ls: 登录失败: 530 Login authentication failed

出现登录失败的问题。查了一下原来是我没有输入密码,在“口令”后面输入自己设置的ftp密码就行了。

[root@jiaozi ~]# lftp ftp_usera@127.0.0.1
口令: 
lftp ftp_usera@127.0.0.1:~> ls      
drwxr-xr-x    2 1010       pure-ftp         4096 Jun 11 16:50 .
drwxr-xr-x    2 1010       pure-ftp         4096 Jun 11 16:50 ..
-rw-r--r--    1 0          0                   0 Jun 11 16:50 123.txt
lftp ftp_usera@127.0.0.1:~> help
    !<shell-command>                     (commands)
    alias [<name> [<value>]]             attach [PID]                         bookmark [SUBCMD]
    cache [SUBCMD]                       cat [-b] <files>                     cd <rdir>
    chmod [OPTS] mode file...            close [-a]
    [re]cls [opts] [path/][pattern]      debug [<level>|off] [-o <file>]      du [options] <dirs>
    exit [<code>|bg]                     get [OPTS] <rfile> [-o <lfile>]
    glob [OPTS] <cmd> <args>             help [<cmd>]
    history -w file|-r file|-c|-l [cnt]  jobs [-v] [<job_no...>]              kill all|<job_no>
    lcd <ldir>                           lftp [OPTS] <site>
    ln [-s] <file1> <file2>              ls [<args>]                          mget [OPTS] <files>
    mirror [OPTS] [remote [local]]       mkdir [-p] <dirs>                    module name [args]
    more <files>                         mput [OPTS] <files>                  mrm <files>
    mv <file1> <file2>                   [re]nlist [<args>]                   open [OPTS] <site>
    pget [OPTS] <rfile> [-o <lfile>]     put [OPTS] <lfile> [-o <rfile>]      pwd [-p]
    queue [OPTS] [<cmd>]                 quote <cmd>
    repeat [OPTS] [delay] [command]      rm [-r] [-f] <files>                 rmdir [-f] <dirs>
    scache [<session_no>]                set [OPT] [<var> [<val>]]            site <site-cmd>
    source <file>                        torrent [-O <dir>] <file|URL>...
    user <user|URL> [<pass>]             wait [<jobno>]                       zcat <files>
    zmore <files>
lftp ftp_usera@127.0.0.1:/> exit

参考:

https://blog.csdn.net/weixin_36171533/article/details/84974478

上一篇:利用 Django 动态展示 Pyecharts 图表数据的几种方法


下一篇:基于MATLAB的深度自动编码器的无监督轴承异常检测