python-3.x - vsftpd 支持 mlsd 命令吗?

标签 python-3.x ftplib vsftpd

vsftpd 是否支持 mlsd 命令(如果支持)我该如何启用它?或者有没有其他方法可以使用 python ftplib 从目录中获取文件名和时间戳列表?尝试过 nlst 它只提供文件名,对于我必须发送 MDTM 的每个文件,有什么方法可以避免它吗?

最佳答案

没有。事实并非如此。

源代码列出了以下功能(在文件 features.c 中):

void
handle_feat(struct vsf_session* p_sess)
{
  vsf_cmdio_write_hyphen(p_sess, FTP_FEAT, "Features:");
  if (tunable_ssl_enable)
  {
    if (tunable_sslv2 || tunable_sslv3)
    {
      vsf_cmdio_write_raw(p_sess, " AUTH SSL\r\n");
    }
    if (tunable_tlsv1)
    {
      vsf_cmdio_write_raw(p_sess, " AUTH TLS\r\n");
    }
  }
  if (tunable_port_enable)
  {
    vsf_cmdio_write_raw(p_sess, " EPRT\r\n");
  }
  if (tunable_pasv_enable)
  {
    vsf_cmdio_write_raw(p_sess, " EPSV\r\n");
  }
  vsf_cmdio_write_raw(p_sess, " MDTM\r\n");
  if (tunable_pasv_enable)
  {
    vsf_cmdio_write_raw(p_sess, " PASV\r\n");
  }
  if (tunable_ssl_enable)
  {
    vsf_cmdio_write_raw(p_sess, " PBSZ\r\n");
    vsf_cmdio_write_raw(p_sess, " PROT\r\n");
  }
  vsf_cmdio_write_raw(p_sess, " REST STREAM\r\n");
  vsf_cmdio_write_raw(p_sess, " SIZE\r\n");
  vsf_cmdio_write_raw(p_sess, " TVFS\r\n");
  vsf_cmdio_write_raw(p_sess, " UTF8\r\n");
  vsf_cmdio_write(p_sess, FTP_FEAT, "End");
}

未列出MLSD

此外,这是使用 Python 的 ftplib 连接到 vsftpd 服务器的 session 日志:

*cmd* 'USER ftp'
*put* 'USER ftp\r\n'
*get* '230 Login successful.\n'
*resp* '230 Login successful.'
*cmd* 'TYPE A'
*put* 'TYPE A\r\n'
*get* '200 Switching to ASCII mode.\n'
*resp* '200 Switching to ASCII mode.'
*cmd* 'PASV'
*put* 'PASV\r\n'
*get* '227 Entering Passive Mode (127,0,0,1,159,93).\n'
*resp* '227 Entering Passive Mode (127,0,0,1,159,93).'
*cmd* 'MLSD'
*put* 'MLSD\r\n'
*get* '500 Unknown command.\n'
*resp* '500 Unknown command.'

关于python-3.x - vsftpd 支持 mlsd 命令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52032468/

相关文章:

python - 使用 Python 和 ftplib 检查 FTP 服务器上的对象是文件还是目录

python - Python 和 ftplib 的 FTP 上传错误。

linux - 用户无法上传文件,即使使用 vsftpd 为他们设置了权限

python - 在 python 中使用//

python - 如何将元音的大写保持在同一位置?

python - 递归检测数字是否为阶乘

python - 是否有隐式导入/加载的模块?

python - 在Python ftplib中在上传文件的名称中使用变量

ftp - 在 nixos 上运行 ftp 服务器

ubuntu - 设置 VSFTPD 用户对 apache2 的 html 目录具有写入权限