文章目录
1.实现一些杂项命令
-
模拟vsftpd使用CWD命令的方式,服务端会给客户端一个250的应答
-
vsftpd的CDUP指令的操作为:
客户端输入ctrl r
接着刷新一下
刚开始在cppcourse目录里面,现在在cppcourse目录外面
- 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权限
创建文件夹失败的情况
会提示550失败了
- vsftpd删除一个文件
DELE 绝对路径/相对路径
删除过后,会给客户端一个250的应答
- eg:
static void do_dele(session_t *sess)
- 测试:
删除成功
- eg:
static void do_rmd(session_t *sess)
-
测试:删除一个文件夹
若文件夹下面还有文件夹或者文件,但是这里没有实现递归删除文件及文件夹,这是因为我们只需要解析RMD命令即可,因为客户端会来删除,比如有一个tt文件夹,下面有aaa文件夹,客户端会删除,服务端只要做好命令解析即可
-
eg:
static void do_rest(session_t *sess)
-
测试:REST指令
-
eg:
static void do_size(session_t *sess)
-
测试:测试tt.cc的大小
-
eg:
static void do_rnfr(session_t *sess)
static void do_rnto(session_t *sess)
- 测试重命名功能:
重命名成功
如果在重命名之前,服务端没有收到RNFR命令,会给客户端一个503的应答