1.安装pure-ftpd
#yum源并不包含pure-ftpd,需要安装epel扩展源
[root@jiaozi ~]# yum install -y epel-release
# yum install -y pure-ftpd
安装时发现缺少libmysqlclient.so.18依赖,用find命令检查一下,发现确实没有该依赖。
[root@jiaozi ~]# find / -name libmysqlclient.so*
原因是我在安装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
回到家目录,再次执行yum install -y pure-ftpd命令,安装成功。
[root@jiaozi ~]# cd ~
[root@jiaozi ~]# yum install -y pure-ftpd
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
启动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