0
点赞
收藏
分享

微信扫一扫

(P15)miniftpd项目实战15:实现一些杂项命令


文章目录

  • ​​1.实现一些杂项命令​​

1.实现一些杂项命令

  • 模拟vsftpd使用CWD命令的方式,服务端会给客户端一个250的应答
  • (P15)miniftpd项目实战15:实现一些杂项命令_重命名

  • vsftpd的CDUP指令的操作为:
    客户端输入ctrl r
  • (P15)miniftpd项目实战15:实现一些杂项命令_服务端_02


  • (P15)miniftpd项目实战15:实现一些杂项命令_服务端_03

接着刷新一下

(P15)miniftpd项目实战15:实现一些杂项命令_服务端_04


刚开始在cppcourse目录里面,现在在cppcourse目录外面

(P15)miniftpd项目实战15:实现一些杂项命令_服务端_05

  • eg:

实现的命令有:CWD,CDUP
static void do_cwd(session_t *sess)
static void do_cdup(session_t *sess)

  • vsftpd创建一个目录


    创建目录成功,给客户端一个257的应答
  • eg:

static void do_mkd(session_t *sess)

  • 测试:在tt文件夹内创建文件夹失败的情况
    首先去掉tt文件夹w权限

创建文件夹失败的情况

(P15)miniftpd项目实战15:实现一些杂项命令_客户端_06


会提示550失败了

(P15)miniftpd项目实战15:实现一些杂项命令_重命名_07

  • vsftpd删除一个文件

    DELE 绝对路径/相对路径
    删除过后,会给客户端一个250的应答
  • eg:

static void do_dele(session_t *sess)

  • 测试:
    删除成功
  • eg:

static void do_rmd(session_t *sess)

  • 测试:删除一个文件夹
    若文件夹下面还有文件夹或者文件,但是这里没有实现递归删除文件及文件夹,这是因为我们只需要解析RMD命令即可,因为客户端会来删除,比如有一个tt文件夹,下面有aaa文件夹,客户端会删除,服务端只要做好命令解析即可
  • (P15)miniftpd项目实战15:实现一些杂项命令_重命名_08


  • (P15)miniftpd项目实战15:实现一些杂项命令_客户端_09


  • (P15)miniftpd项目实战15:实现一些杂项命令_服务端_10

  • eg:

static void do_rest(session_t *sess)

  • 测试:REST指令
  • (P15)miniftpd项目实战15:实现一些杂项命令_服务端_11


  • (P15)miniftpd项目实战15:实现一些杂项命令_重命名_12

  • eg:

static void do_size(session_t *sess)

  • 测试:测试tt.cc的大小
  • (P15)miniftpd项目实战15:实现一些杂项命令_客户端_13


  • (P15)miniftpd项目实战15:实现一些杂项命令_重命名_14

  • eg:

static void do_rnfr(session_t *sess)
static void do_rnto(session_t *sess)

  • 测试重命名功能:


    重命名成功

    如果在重命名之前,服务端没有收到RNFR命令,会给客户端一个503的应答



举报

相关推荐

0 条评论