このFTPコマンドがヤバい

とあるFTPサーバにWinSCPで接続してて気づいたんだけど、ディレクトリのパーミッションがこんな風に表示されている。

flcdmpe

ふるくだんぺ? なんじゃらほい?
自分の記憶では、今までは確かこんなだった。

rwxrwxr-x

実際、今でもファイルはこんな感じで表示されるのだが、なぜかディレクトリは「flcdmpe」なのだ。
こいつあ、WinSCPのバグだぜ! ヒャッハー!(と、この時は思った)

と、思ったんだけど、ネットで探してもあまりバグの指摘が無い。
さらに調べたところ、以下のことが分かった。

  • flcdmpeというのは MLSD というFTPコマンド由来であること

MLSDコマンドの結果はこんな感じになる。

modify=20130622012659;perm=flcdmpe;type=dir;unique=802UE40003;UNIX.group=101;UNIX.mode=0755;UNIX.owner=20397; etc

"a" はファイルだぜ。
"c" はディレクトリだぜ。
"d" は削除できるブツだぜ。
"e" はCWDで入れるディレクトリだぜ。
"f" はリネームできるブツだぜ。
"l" はLISTできるディレクトリだぜ。
"m" はMKDで子ディレクトリを作れるぜ。
"p" は中のブツを削除できるディレクトリだぜ。
"r" はRETRできるファイルだぜ。
"w" はSTORできるファイルだぜ。

つまり "flcdmpe" とは、「リネームできて一覧できて削除出来て子供作れて中も消せてcdできる、何でもアリのディレクトリだぜ」ということらしい。

  • WinSCPのログインダイアログの「設定」で「環境」-「FTP」のなかに「ディレクトリ一覧にMLSDコマンドを使用する」という項目があって、通常「自動」になっている。これを「オフ」にすると、今まで通りのrwxrwsr-x形式で表示されることが分かった。


要するに、WinSCPを使っていて、「flcdmpe?なにコレ、キモい」と思ったら、接続設定でMLSDをオフにすれば治るよ、というお話。

ていうかコレ、WinSCPでMLSDをまともに扱えないならデフォルトでオフになってるべきじゃないのかな・・・。