网络文件共享服务--FTP

ftp

ftp简介

网络文件共享服务主流的主要有三种,分别是ftp、nfs、samba。

FTP是File Transfer Protocol(文件传输协议)的简称,用于internet上的控制文件的双向传输。

FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

在FTP的使用当中,用户经常遇到两种概念:下载和上传

下载(Download)上传(Upload)
从远程主机拷贝文件至自己的计算机上将文件从自己的计算机上拷贝至远程主机上

ftp架构

FTP工作于应用层,监听于tcp的21号端口,是一种C/S架构的应用程序。其有多种客户端和服务端的应用程序,下面来简单介绍一下

客户端工具服务端软件
ftp lftp,lftpget wget,curl filezilla gftp(Linux GUI) 商业软件(flashfxp,cuteftp)wu-ftpd proftpd(提供web接口的一种ftp服务端程序) pureftp vsftpd(Very Secure) ServU(windows平台的一种强大ftp服务端程序)

ftp数据连接模式

ftp有2种数据连接模式:命令连接和数据连接

  • 命令连接:是指文件管理类命令,始终在线的持久性连接,直到用户退出登录为止
  • 数据连接:是指数据传输,按需创建及关闭的连接

其中数据连接需要关注的有2点,一是数据传输格式,二是数据传输模式

数据传输格式有以下两种:

  • 文件传输
  • 二进制传输

数据传输模式也有2种:

  • 主动模式:由服务器端创建数据连接
  • 被动模式:由客户端创建数据连接

两种数据传输模式的建立过程:

传输模式建立过程
主动模式命令连接: Client(1025)–> Server(21) 客户端以一个随机端口(大于1023)来连服务器端的21号端口 数据连接: Server(20/tcp) --> Client(1025+1) 服务器端以自己的20号端口去连客户端创建命令连接时使用的随机端口+1的端口号
被动模式命令连接: Client(1110) --> Server(21) 客户端以一个随机端口来连成服务器端的21号端口 数据连接: Client(1110+1) --> Server(随机端口) 客户端以创建命令连接的端口+1的端口号去连服务器端通过命令连接告知自己的一个随机端口号来创建数据连接

主动模式有个弊端,因为客户端的端口是随机的,客户端如果开了防火墙,
则服务器端去连客户端创建数据连接时可能会被拒绝

用户认证

ftp的用户主要有三种:

  • 虚拟用户:仅用于访问某特定服务中的资源
  • 系统用户:可以登录系统的真实用户
  • 匿名用户

vsftpd

此处我们要说的ftp应用程序是vsftpd,这也是在公司中用得最多的一款ftp软件。

vsftpd安装

[root@zyq ~]#: yum -y install vsftpd
......
Running transaction
  Preparing        :                                                       1/1 
  Installing       : vsftpd-3.0.5-5.el9.x86_64                             1/1 
  Running scriptlet: vsftpd-3.0.5-5.el9.x86_64                             1/1 
  Verifying        : vsftpd-3.0.5-5.el9.x86_64                             1/1 

Installed:
  vsftpd-3.0.5-5.el9.x86_64                                                    

Complete!

vsftpd配置

/etc/pam.d/vsftpd       //vsftpd用户认证配置文件
/etc/vsftpd/            //配置文件目录
/etc/vsftpd/vsftpd.conf     //主配置文件
[root@zyq ~]#: cd /etc/vsftpd/
[root@zyq vsftpd]#: ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh


//匿名用户(映射为ftp用户)的共享资源位置是/var/ftp
//系统用户通过ftp访问的资源位置为用户的家目录
//虚拟用户通过ftp访问的资源位置为给虚拟用户指定的映射成为的系统用户的家目录

vsftpd常见的配置参数:

参数作用
anonymous_enable=YES启用匿名用户登录
anon_upload_enable=YES允许匿名用户上传
anon_mkdir_write_enable=YES允许匿名用户创建目录,但是不能删除
anon_other_write_enable=YES允许匿名用户创建和删除目录
local_enable=YES启用本地用户登录
write_enable=YES允许本地用户有写权限
local_umask=022通过ftp上传文件的默认遮罩码
chroot_local_user=YES禁锢所有的ftp本地用户于其家目录中
chroot_list_enable=YES开启禁锢文件列表 需要与chroot_list_file参数一起使用
chroot_list_file=/etc/vsftpd/chroot_list指定禁锢列表文件路径 在此文件里面的用户将被禁锢在其家目录中
allow_writeable_chroot=YES允许被禁锢的用户家目录有写权限
xferlog_enable=YES是否启用传输日志,记录ftp传输过程
xferlog_std_format=YES传输日志是否使用标准格式
xferlog_file=/var/log/xferlog指定传输日志存储的位置
chown_uploads=YES是否启用改变上传文件属主的功能
chown_username=whoever指定要将上传的文件的属主改为哪个用户 此用户必须在系统中存在
pam_service_name=vsftpd指定vsftpd使用/etc/pam.d下的 哪个pam配置文件进行用户认证
userlist_enable=YES是否启用控制用户登录的列表文件: 默认为/etc/vsftpd/user_list文件
userlist_deny=YES是否拒绝userlist指定的列表文件中存在的用户登录ftp
max_clients=#最大并发连接数
max_per_ip=#每个IP可同时发起的并发请求数
anon_max_rate匿名用户的最大传输速率,单位是“字节/秒”
local_max_rate本地用户的最大传输速率,单位是“字节/秒”
dirmessage_enable=YES启用某目录下的.message描述信息 假定有一个目录为/upload,在其下创建一个文件名为.message, 在文件内写入一些描述信息,则当用户切换至/upload目录下时会自动显示.message文件中的内容
message_file设置访问一个目录时获得的目录信息文件的文件名,默认是.message
idle_session_timeout=600设置默认的断开不活跃session的时间
data_connection_timeout=120设置数据传输超时时间
ftpd_banner=“Welcome to chenlf FTP service.”定制欢迎信息,登录ftp时自动显示
匿名用户
anonymous_enable=YES  启用匿名用户登录
匿名用户不需要密码
[root@zyq vsftpd]#: vim /etc/vsftpd/vsftpd.conf 
anonymous_enable=YES    将NO改为YES	
重启服务并关闭防火墙
[root@zyq vsftpd]#: systemctl enable --now vsftpd
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
[root@zyq vsftpd]#: systemctl disable --now firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@zyq vsftpd]#: setenforce 0
[root@zyq vsftpd]#: vim /etc/selinux/config 

[root@zyq vsftpd]#: ss -antl
State   Recv-Q   Send-Q     Local Address:Port     Peer Address:Port  Process  
LISTEN  0        128              0.0.0.0:22            0.0.0.0:*              
LISTEN  0        128                 [::]:22               [::]:*              
LISTEN  0        32                     *:21                  *:*            

使用filezilla链接测试查看

发现不能上传,但是可以下载

在这里插入图片描述

anon_upload_enable=YES   允许匿名用户上传
[root@zyq vsftpd]#: vim /etc/vsftpd/vsftpd.conf 
anon_upload_enable=YES  取消此行注释
[root@zyq vsftpd]#: systemctl restart vsftpd

更改/pub文件属主
[root@zyq ftp]#: chown -R ftp /var/ftp/pub/
[root@zyq ftp]#: ll
total 0
drwxr-xr-x. 2 ftp root 17 Dec 13 15:19 pub
此时可以成功上传文件

在这里插入图片描述

anon_mkdir_write_enable=YES   允许匿名用户创建目录,但是不能删除
anon_other_write_enable=YES   允许匿名用户创建和删除目录
[root@zyq vsftpd]#: vim /etc/vsftpd/vsftpd.conf 
anon_mkdir_write_enable=YES   取消此行注释
anon_other_write_enable=YES   单独添加此行
[root@zyq vsftpd]#: systemctl restart vsftpd

查看pub目录下上传的文件权限信息和属主信息
[root@zyq ftp]#: cd pub/
[root@zyq pub]#: ll
total 28
-rw-r--r--. 1 ftp root    11 Dec 13 15:19 abc
-rw-------. 1 ftp ftp  24282 Dec 13 15:59 Linux基础命令.md

anon_umask='自定遮罩码' 更改文件权限信息
[root@zyq vsftpd]#: vim /etc/vsftpd/vsftpd.conf 
anon_umask=022   添加此行
[root@zyq vsftpd]#: systemctl restart vsftpd
使用filezilla上传文件查看
[root@zyq pub]#: ll
total 32
-rw-r--r--. 1 ftp root    11 Dec 13 15:19 abc
-rw-r--r--. 1 ftp ftp    848 Dec 13 16:12 LAMP源码编译安装.md 权限为644
-rw-------. 1 ftp ftp  24282 Dec 13 15:59 Linux基础命令.md
chown_uploads=YES是否启用改变上传文件属主的功能chown_username=whoever指定要将上传的文件的属主改为哪个用户 此用户必须在系统中存在
创建用户
[root@zyq pub]#: useradd tom
[root@zyq pub]#: ll
total 0
更改配置文件
[root@zyq vsftpd]#: vim /etc/vsftpd/vsftpd.conf 
chown_uploads=YES  取消注释
chown_username=tom 取消注释并更改指定的文件所属用户,这里更改为上面创建的tom用户
[root@zyq vsftpd]#: systemctl restart vsftpd

上传文件后查看文件所属主
[root@zyq ftp]#: cd pub/
[root@zyq pub]#: ll
total 24
-rw-------. 1 tom ftp 24282 Dec 13 16:51 Linux基础命令.md
此时发现该文件所属主为tom用户

在这里插入图片描述

本地用户
local_enable=YES 启用本地用户登录 默认开启
创建本地用户
[root@zyq ~]#: ls /home/
[root@zyq ~]#: useradd zyq
[root@zyq ~]#: echo 'redhat' | passwd --stdin zyq 
Changing password for user zyq.
passwd: all authentication tokens updated successfully.

[root@zyq ~]#: su - zyq
[zyq@zyq ~]$ ll
total 24
-rw-r--r--. 1 zyq zyq 24282 Dec 13 16:18 Linux基础命令.md

在这里插入图片描述

上面的方式对系统文件不太安全,可添加一下条件
chroot_local_user=YES   禁锢所有的ftp本地用户于其家目录中
[root@zyq vsftpd]#: vim /etc/vsftpd/vsftpd.conf 
chroot_local_user=YES  取消此行注释
allow_writeable_chroot=YES 单独添加此行
[root@zyq vsftpd]#: systemctl restart vsftpd
使用filezilla登录查看,发现不能看见用户之外的目录文件了

在这里插入图片描述

查看传输日志
xferlog_enable=YES   默认开启#是否启用传输日志,记录ftp传输过程
xferlog_std_format=YES  默认你开启#传输日志是否使用标准格式
[root@zyq ~]#: tail /var/log/xferlog 
Wed Dec 13 15:21:04 2023 1 ::ffff:192.168.227.1 11 /pub/abc a _ o a ? ftp 0 * c
Wed Dec 13 15:56:02 2023 1 ::ffff:192.168.227.1 11 /pub/abc a _ o a ? ftp 0 * c
Wed Dec 13 15:59:31 2023 1 ::ffff:192.168.227.1 24282 /pub/Linux\xE5\x9F\xBA\xE7\xA1\x80\xE5\x91\xBD\xE4\xBB\xA4.md b _ i a ? ftp 0 * c
Wed Dec 13 16:12:23 2023 1 ::ffff:192.168.227.1 848 /pub/LAMP\xE6\xBA\x90\xE7\xA0\x81\xE7\xBC\x96\xE8\xAF\x91\xE5\xAE\x89\xE8\xA3\x85.md b _ i a ? ftp 0 * c
Wed Dec 13 16:18:40 2023 1 ::ffff:192.168.227.1 24282 /home/zyq/Linux\xE5\x9F\xBA\xE7\xA1\x80\xE5\x91\xBD\xE4\xBB\xA4.md b _ i r zyq ftp 0 * c
虚拟用户(重点)
//虚拟用户的配置:
    //所有的虚拟用户会被统一映射为一个指定的系统帐号,访问的共享位置即为此系统帐号的家目录
    //各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定

    //虚拟用户帐号的存储方式:
    1.文件:编辑文件,此文件需要被编码为hash(加密)格式。
        奇数行为用户名
        偶数行为密码
    2.关系型数据库的表中:
        通过即时查询数据库完成用户认证
        mysql库:pam要依赖于pam_mysql软件,可以通过epel源yum安装
'注意:虚拟用户名不能与主机本地系统用户重名!'
创建编写一个虚拟用户密码文件
[root@zyq pub]#: cd /etc/vsftpd/
[root@zyq vsftpd]#: vim vu.list
[root@zyq vsftpd]#: cat vu.list 
admin
123
marry
456
此时密码文件可明文查看
[root@zyq vsftpd]#: ll
total 24
-rw-------. 1 root root  125 Oct 30 14:29 ftpusers
-rw-------. 1 root root  361 Oct 30 14:29 user_list
-rw-------. 1 root root 5102 Dec 13 16:49 vsftpd.conf
-rwxr--r--. 1 root root  352 Oct 30 14:29 vsftpd_conf_migrate.sh
-rw-r--r--. 1 root root   21 Dec 13 17:00 vu.list



安装db_load工具
查找工具由哪个包提供
[root@zyq vsftpd]#: yum provides *bin/db_load
Last metadata expiration check: 1:10:37 ago on Wed 13 Dec 2023 03:52:29 PM CST.
libdb-utils-5.3.28-53.el9.x86_64 : Command line tools for managing Berkeley DB
                                 : databases
Repo        : appstream
Matched from:
Other       : *bin/db_load
[root@zyq vsftpd]#: yum -y install libdb-utils
......
Installed:
  libdb-utils-5.3.28-53.el9.x86_64 
  
Complete!



加密
[root@zyq vsftpd]#: ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh  vu.list
[root@zyq vsftpd]#: db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db  
[root@zyq vsftpd]#: ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh  vu.db  vu.list
[root@zyq vsftpd]#: file vu*
vu.db:   Berkeley DB (Hash, version 9, native byte-order) 加密后的文件
vu.list: ASCII text  


更改没明文密码文件存放目录
[root@zyq vsftpd]#: ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh  vu.db


设置查看文件权限
[root@zyq vsftpd]#: ll
total 28
-rw-------. 1 root root   125 Oct 30 14:29 ftpusers
-rw-------. 1 root root   361 Oct 30 14:29 user_list
-rw-------. 1 root root  5102 Dec 13 16:49 vsftpd.conf
-rwxr--r--. 1 root root   352 Oct 30 14:29 vsftpd_conf_migrate.sh
-rw-r--r--. 1 root root 12288 Dec 13 17:06 vu.db
[root@zyq vsftpd]#: chmod 600 /etc/vsftpd/vu.db 
[root@zyq vsftpd]#: ll
total 28
-rw-------. 1 root root   125 Oct 30 14:29 ftpusers
-rw-------. 1 root root   361 Oct 30 14:29 user_list
-rw-------. 1 root root  5102 Dec 13 16:49 vsftpd.conf
-rwxr--r--. 1 root root   352 Oct 30 14:29 vsftpd_conf_migrate.sh
-rw-------. 1 root root 12288 Dec 13 17:06 vu.db 此时只有管理员可查看



添加虚拟用户的映射帐号、创建ftp根目录。例如要将使用的ftp根目录设置为/var/ftproot, 
映射帐号的名称为vftp,可以执行以下操作
[root@zyq vsftpd]#: useradd -d /data -s /sbin/nologin vftp
[root@zyq vsftpd]#: ll -d /data/
drwx------. 2 vftp vftp 62 Dec 13 17:13 /data/
[root@zyq vsftpd]#: chmod 755 /data/
[root@zyq vsftpd]#: ll -d /data/
drwxr-xr-x. 2 vftp vftp 62 Dec 13 17:13 /data/
(如果该目录空间不够,可以挂载该目录,到nfs共享存储,防止ftp崩了数据遗失)



为虚拟用户建立PAM认证
[root@zyq vsftpd]#: cd /etc/pam.d/
[root@zyq pam.d]#: ls
config-util       passwd         runuser-l         sudo          vlock
crond             password-auth  smartcard-auth    sudo-i        vmtoolsd
fingerprint-auth  postlogin      sshd              su-l          vsftpd
login             remote         sssd-shadowutils  system-auth
other             runuser        su                systemd-user
复制源文件
[root@zyq pam.d]#: cp  vsftpd vsftpd.bak
[root@zyq pam.d]#: vim vsftpd
[root@zyq pam.d]#: cat vsftpd
删除原文件内容,添加一下3行
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vu   认证
account required pam_userdb.so db=/etc/vsftpd/vu  账号
[root@zyq ~]#: systemctl restart vsftpd



使用虚拟用户进行登录就不能使用本地用户登录的方式
[root@zyq ~]#: mkdir -p /etc/vsftpd/vusers_dir
[root@zyq ~]#: cd /etc/vsftpd/
[root@zyq vsftpd]#: ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh  vu.db  vusers_dir
[root@zyq ~]#: vim /etc/vsftpd/vsftpd.conf 
在文件最后添加一下四行
guest_enable=YES
guest_username=vft
user_config_dir=/etc/vsftpd/vusers_dir
allow_writeable_chroot=YES
[root@zyq ~]#: systemctl restart vsftpd

下面是还原之前配置的本地用户和匿名用户的配置文件
#chroot_local_user=YES
#allow_writeable_chroot=YES

#chown_uploads=YES
#chown_username=tom
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#anon_other_write_enable=YES

anon_umask=022 删除
[root@zyq vusers_dir]#: touch admin marry
[root@zyq vusers_dir]#: ls
admin  marry
[root@zyq vusers_dir]#: cat admin 
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
[root@zyq vusers_dir]#: cat marry 
[root@zyq ~]#: systemctl restart vsftpd
使用filezilla登录admin用户
可实现上传,下载,删除,创建
而marry用户不能实现这些操作,只能下载

'注意:使用虚拟用户时,原配置文件只能打开匿名访问功能:anonymous_enable=YES  虚拟用户是通过匿名访问的,所以必须开启匿名访问功能!!!'

在这里插入图片描述

在这里插入图片描述

设置zyq用户只有默认的下载权限,只需要创建一个名为zyq的空文件即可
[root@zyq vusers_dir]#: id zyq
uid=1000(zyq) gid=1000(zyq) groups=1000(zyq)
[root@zyq vusers_dir]#: touch /etc/vsftpd/vusers_dir/zyq

ftp&lftp&wget

filezilla只在windows上安装连接

而在企业运用中需要使用命令行界面来连接ftp

安装(实际使用中只需下载一个,推荐lftp)
[root@zyq ~]#: yum -y install ftp lftp

ftp

登录
[root@zyq ~]#: ftp 192.168.227.153
Connected to 192.168.227.153 (192.168.227.153).
220 (vsFTPd 3.0.5)
Name (192.168.227.153:root): admin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ?   查看命令
Commands may be abbreviated.  Commands are:

!               debug           mdir            sendport        site
$               dir             mget            put             size
account         disconnect      mkdir           pwd             status
append          exit            mls             quit            struct
ascii           form            mode            quote           system
bell            get             modtime         recv            sunique
binary          glob            mput            reget           tenex
bye             hash            newer           rstatus         tick
case            help            nmap            rhelp           trace
cd              idle            nlist           rename          type
cdup            image           ntrans          reset           user
chmod           lcd             open            restart         umask
close           ls              prompt          rmdir           verbose
cr              macdef          passive         runique         ?
delete          mdelete         proxy           send

下载
ftp> ls
227 Entering Passive Mode (192,168,227,153,57,180).
150 Here comes the directory listing.
-rw-r--r--    1 1002     1002        24282 Dec 13 10:16 Linux基础命令.md
226 Directory send OK.
ftp> get Linux基础命令.md
local: Linux基础命令.md remote: Linux基础命令.md
227 Entering Passive Mode (192,168,227,153,155,196).
150 Opening BINARY mode data connection for Linux基础命令.md (24282 bytes).
226 Transfer complete.
24282 bytes received in 2.8e-05 secs (867214.27 Kbytes/sec)
下载完成
[root@zyq ~]#: ls
anaconda-ks.cfg  Linux基础命令.md
下载到指定目录
ftp> lcd /opt/
Local directory now /opt
ftp> ls
227 Entering Passive Mode (192,168,227,153,109,250).
150 Here comes the directory listing.
-rw-r--r--    1 1002     1002        24282 Dec 13 10:16 Linux基础命令.md
226 Directory send OK.
ftp> get Linux基础命令.md
local: Linux基础命令.md remote: Linux基础命令.md
227 Entering Passive Mode (192,168,227,153,193,11).
150 Opening BINARY mode data connection for Linux基础命令.md (24282 bytes).
226 Transfer complete.
24282 bytes received in 2.9e-05 secs (837310.34 Kbytes/sec)
[root@zyq ~]#: ls /opt/
Linux基础命令.md  vu.list


上传
ftp> put vu.list 
local: vu.list remote: vu.list
227 Entering Passive Mode (192,168,227,153,115,154).
150 Ok to send data.
226 Transfer complete.
21 bytes sent in 3e-05 secs (700.00 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (192,168,227,153,115,195).
150 Here comes the directory listing.
-rw-r--r--    1 1002     1002        24282 Dec 13 10:16 Linux基础命令.md
-rw-r--r--    1 1002     1002           21 Dec 13 10:19 vu.list
226 Directory send OK.
[root@zyq ~]#: ls /opt/
Linux基础命令.md  vu.list

创建目录
ftp> mkdir abc
257 "/jerry" created
ftp> ls
227 Entering Passive Mode (192,168,227,153,228,117).
150 Here comes the directory listing.
-rw-r--r--    1 1002     1002        24282 Dec 13 10:16 Linux基础命令.md
drwxr-xr-x    2 1002     1002            6 Dec 13 10:21 abc
-rw-r--r--    1 1002     1002           21 Dec 13 10:19 vu.list
226 Directory send OK.
[root@zyq ~]#: ls /data/   在ftp所映射的匿名用户家目录
jerry  Linux基础命令.md  vu.list
删除目录
'rmdir只能删除空目录'
ftp> rmdir abc
250 Remove directory operation successful.

删除文件
ftp> delete Linux基础命令.md
250 Delete operation successful.

lftp

[root@zyq ~]#: lftp -u admin,123 192.168.227.153
lftp admin@192.168.227.153:~> 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 [OPTS] [<level>|off]
    du [options] <dirs>                  edit [OPTS] <file>
    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 [OPTS] <dirs>
    module name [args]                   more <files>
    mput [OPTS] <files>                  mrm <files>
    mv <file1> <file2>                   mmv [OPTS] <files> <target-dir>
    [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 [OPTS] <file|URL>...         user <user|URL> [<pass>]
    wait [<jobno>]                       zcat <files>
    zmore <files>
lftp admin@192.168.227.153:~> 
查看,下载,删除,上传(put只能上传文件)
lftp admin@192.168.227.153:~> ls
-rw-r--r--    1 1002     1002           21 Dec 13 10:19 vu.list
lftp admin@192.168.227.153:/> lcd /root/
lcd ok, local cwd=/root
lftp admin@192.168.227.153:/> get vu.list 
21 bytes transferred
lftp admin@192.168.227.153:/> ls
-rw-r--r--    1 1002     1002           21 Dec 13 10:19 vu.list
lftp admin@192.168.227.153:/> rm -rf vu.list 
rm ok, `vu.list` removed

下载目录
lftp admin@192.168.227.153:/> lcd /opt/
lcd ok, local cwd=/opt
lftp admin@192.168.227.153:/> mirror test abc
New: 1 file, 0 symlinks
24282 bytes transferred
lftp admin@192.168.227.153:/> ls 
-rw-r--r--    1 1002     1002        24282 Dec 13 10:35 Linux基础命令.md
drwxr-xr-x    2 1002     1002            6 Dec 13 10:35 test

退出
quit

不进去执行命令
[root@zyq ~]#: lftp -u admin,123 192.168.227.153 -e 'ls;quit'
-rw-r--r--    1 1002     1002        24282 Dec 13 10:35 Linux基础命令.md
drwxr-xr-x    2 1002     1002           34 Dec 13 10:37 test
[root@zyq ~]#: lftp -u admin,123 192.168.227.153 -e 'rm -rf test;quit'
rm ok, 2 files removed
[root@zyq ~]#: lftp -u admin,123 192.168.227.153 -e 'ls;quit'
-rw-r--r--    1 1002     1002        24282 Dec 13 10:35 Linux基础命令.md


使用wget下载
[root@zyq ~]#: wget --ftp-user admin --ftp-password 123 192.168.227.153:/Linux 基础命令.md
--2023-12-13 18:52:03--  ftp://192.168.227.153//Linux%E5%9F%BA%E7%A1%80%E5%91%BD%E4%BB%A4.md
           => ‘Linux基础命令.md.1’
Connecting to 192.168.227.153:21... connected.
Logging in as admin ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> SIZE Linux基础命令.md ... 24282
==> PASV ... done.    ==> RETR Linux基础命令.md ... done.
Length: 24282 (24K) (unauthoritative)

Linux基础命令.md.1  100%[==================>]  23.71K  --.-KB/s    in 0s      

2023-12-13 18:52:03 (837 MB/s) - ‘Linux基础命令.md.1’ saved [24282]

[root@zyq ~]#: ls
anaconda-ks.cfg  Linux基础命令.md  Linux基础命令.md.1  vu.list

  • 31
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值