Proftpd Allowoverwrite
proftpdで、allowoverwriteのon/offでクライントでの操作は以下の動作になる。
/default root
|- fileA
|-/DirectoryB
|-fileA
こうなっているところで、
default rootにfileAをコピーしようとする。
default rootのfileAをDirectoryBに移動しようとする。
AllowOverwrite = offの場合
クライアント | ローカルからアップ | サーバ上で階層を移動 |
---|---|---|
filezilla | 上書き拒否(警告あり) | 上書き拒否(警告なし) |
cyberduck | 上書き拒否(警告あり) | 上書き可能(警告あり) |
filezillaは同一階層での移動はRNFRで350が返ってもそのままRNTOを発行し、550が返ったら何もせずに諦める(ログを出していればログには出る)。
cyberduckは350が返ったら上書き警告を出して、ユーザがOKしたら、先に上書き先のfileAをDELETEしてからdefault rootのfileAをRNFR,RNTOで移動する。
AllowOverwrite = onの場合
クライアント | ローカルからアップ | サーバ上で階層を移動 |
---|---|---|
filezilla | 上書き可能(警告あり) | 上書き可能(警告なし) |
cyberduck | 上書き可能(警告あり) | 上書き可能(警告あり) |
filezillaはディレクトリ移動でも警告を出してくれればいいのに。
cyberdcukはallowoverwriteをoffにしてるんだから、ユーザに明示的に消させるようにすればいいのに。それと、サーバ上での移動はできるようにしてあるのに、ローカルからアップの時は上書き警告にOKしてもDELETEを発行しないので、allowoverwrite = offのサーバには上書きアップロードはできない。どうしてこうしてあるのかちょっとわからない……。
cyberduckは割りと直感的な挙動なのでexprolerとかFinderとかthunarみたいな一般的なファイラーとさほど違和感がありませんが、filezillaのディレクトリ移動は警告なしなのでちょっと怖い。
覚えておこう。