-1

別の興味深い問題があります。私の会社は最近、FTP と SFTP のニーズを処理するために ProFTP に切り替えました。主に RHEL 5 サーバーを実行しています。ユーザーは問題なくログインし、ファイルを転送できます (ほとんどの場合:-P)。

ただし、ファイル転送操作を実行した後、(FTP セッションで) 個々のファイルをリストする必要があるクライアントの 1 つで、奇妙な問題が発生しました。ディレクトリ全体を「ls」で問題なく一覧表示できますが、正確なファイル名 (および/またはワイルドカード) を使用すると、一覧表示に失敗します。

ncftp を使用して Windows ワークステーションで問題を再現できましたが、Linux ワークステーションでは再現できませんでした。両方のクライアントのデバッグをオンにし、サーバー側で完全な FTP コマンド ログを有効にした後、Linux FTP クライアントが LIST コマンドを使用しているのに対し、ncftp は MSLD コマンドを使用していることを発見しました。

Linux クライアント:

ftp> debug

Debugging on (debug=1).

ftp> ls file.txt

ftp: setsockopt (ignored): Permission denied

---> PASV

227 Entering passive mode (X.X.X.X).

---> LIST file.txt
150 Opening ASCII mode data connection for file list

-rw-r--r--   1 0        root      9318400 Aug 28 07:29 file.txt
226 Transfer complete

ncftp (Windows) クライアント:

ncftp / > debug

ncftp / > ls file.txt
> ls file.txt


Cmd: PASV

227: Entering passive mode (X.X.X.X).

Cmd: MLSD file.txt
550: 'file.txt is not a directory

List failed.

これまでに収集できたものから、MLSD と MLST は従来の FTP LIST コマンドの拡張バージョンです。しかし、個々のファイルを一覧表示する場合、クライアントは MLSD コマンドではなく MLST コマンドをサーバーに発行するべきではありませんか? これまでに読んだ内容からディレクトリ全体を一覧表示するには、MLSD を使用する必要があります。

また、デバッグ モード (ncftp を含む) の複数のクライアントを使用して古い FTP サーバー (VSFTP を実行) に接続し、すべてに対して古い LIST コマンドを使用してそれらがすべてであることを確認し、完全に機能しました。これがサーバー側で強制されたからなのか、それとも偶然なのか、私にはわかりません。

また、MLSD/MLST が機能するには mod_facts を有効にする必要があることも読みました。私のproftpdバージョンがそれをサポートしていること、およびサーバーで有効になっていることを確認しました:

[root@server ~]# proftpd -v

ProFTPD Version 1.3.5


From proftpd.conf:
# Adding support for extended FTP listing commands (e.g. MLST, MLSD, etc)

LoadModule mod_facts.c

<IfModule mod_facts.c>
        FactsAdvertise off
</IfModule>

また、FactsAdvertise のオフとオフを切り替えて、サービスをリロードしようとしましたが、ncftp クライアントはまだ個々のファイルの MLSD を実行したいと考えています!

したがって、私の2つの基本的な質問は次のとおりです。

  • proftpd を MLSD/MLST コマンドでうまく動作させるにはどうすればよいですか? また、それが面倒な場合は. .
  • 従来の LIST コマンドを使用するように、ProFTP サーバーに接続する FTP クライアントを強制するにはどうすればよいですか。これは、古い FTP サービス (VSFTP) の場合と同様です。

前もって感謝します!

4

2 に答える 2

0

申し訳ありませんが、これがまだ開いていることを忘れていました。ProFTP fourms でこれに対する修正が見つかりました。

https://forums.proftpd.org/smf/index.php?topic=11604.0

于 2014-09-30T01:29:31.297 に答える