68user's page 掲示板

Prev< No. 3372> Next  [最新発言に戻る] [過去ログ一覧]
No. 3372 # 68user 2003/10/16 (木) 00:22:37
>>3371 gaji
なるほど、ftpd の挙動が変わったのですね。

> ls -aやdirなどは/bin/lsで処理され、lsはftpdの内部コマンドで
> 処理される事が多い。
そういう実装が多かった、というのは確かかもしれません。
ただ、ProFTPD のように /bin/ls に一切頼らない ftp
サーバもありますので、あくまで「多かった」という程度
だと思います。

> ftpのNLSTが内部コマンドを使用するか、/bin/lsを使用するかは
> 設定可能なものでしょうか。
Solaris8, Solaris9 の ftpd を見る限りでは、そのような
設定はできないようです。
    http://www.freebsd.org/cgi/man.cgi?query=ftpd&&manpath=SunOS+5.8&format=html
    http://www.freebsd.org/cgi/man.cgi?query=ftpd&&manpath=SunOS+5.9&format=html

> ftp> ls ?????.txt local.txt
> 200 PORT command successful.
> 550 ?????.txt: No such file or directory.
もしクライアント側が LIST を発行しているとしたら
(ftp -d で確認できます)、LIST に対して 550 を返すのは
RFC 違反ではないかなぁと思いました。

      http://hp.vector.co.jp/authors/VA002682/rfc959j.htm より引用

      以下の表では、それぞれのコマンドごとの成功・失敗の応答を一覧表にしてあ
      る。これらは、確実に忠実でなくてはならない。サーバーは応答中の文章を変更
      してもよいが、その意味、コード番号により示される動作と指定されたコマンド
      応答シーケンスは変更してはならない。

      コマンド応答シーケンス
              LIST
                    125, 150
                          226, 250
                          425, 426, 451
                    450
                    500, 501, 502, 421, 530

この解釈が正しいなら、Sun に文句を言えば直してくれる
かもしれません。

ただ、ftp は規格が曖昧で、実装依存の塊みたいなものなので、
ls してクライアント側で grep した方が後々のためにもよい
かもしれません。ファイルに落として grep するとか、
      ftp> ls . "|grep ^.....\.txt$ >hoge"
とするとか。

Prev< No. 3372> Next  [最新発言に戻る] [過去ログ一覧]