FreeBSD標準ftpdで日本語ファイル名を扱うテスト
家庭内LAN用に作成した FreeBSD サーバで
httpd は設定したので、今度は ftpd を設定しようと思いました。
wu-ftpd がいまいちなので ProFTPD かな?とも思ったのですが
せっかく標準で ftpd がついているんだからこれでなんとかならないか
考えていました。
ログは /etc/syslog.conf でファシリティ ftp.* を
/var/log/ftp.log にとるようにして
ftpd -l -l -l とでもしておけば、とりあえずはOKです。
あと newsyslog.conf も設定しておくほうがいいですね。
でも、問題なのが日本語ファイル名です。
というのも、Ubuntu の Nautilus で ftp アクセスし
ディレクトリを作ろうとすると、「未タイトルのフォルダ」を一度作成して
rename する動作をするようなのですが、rename で必ず失敗するため、
「未タイトルのフォルダ」という名前のディレクトリが作成されてしまいます。
新しいファイルを作成する場合も同様です。
さらに日本語を含むファイル名があるとディレクトリ一覧の取得も
できなくなる場合がありました。
ただ、ログインシェルで、csh 系なら .cshrc に
setenv LANG ja_JP.utf8 と書いておけば
「未タイトルのフォルダ」の中に移動することは可能なのです。
この挙動に疑問を持ったので、クライアント環境を他のにしようと思い
.cshrc に setenv の設定をした状態で Windows ソフトの FFFTP で
ファイル名のコードを UTF-8N に設定すると
「未タイトルのフォルダ」の rename が可能になりました。
Windows から日本語を含むファイル名を転送したり、
FFFTP で日本語のディレクトリやファイルを作成したりしても
エラーはでなかったのでもしかしたらそれっぽく動いているのかもしれません。
ちなみに、ssh でログインして ls -w とすると日本語名で
ちゃんと表示されました。
(ターミナルの文字コードは UTF8 に設定しています)
Nautilus の rename がうまく動作していないだけかもしれません。
結論としては...
FreeBSD の標準の ftpd でも日本語ファイル名が扱える場合があるが
ログインシェルの環境変数 LANG と接続するクライアントソフトの
文字コードの調整が必要みたいです。
でも、使い込んでいるわけではないので思わぬ現象が発生するかも?
といったところです。
文字コードの問題はなんでこんなにややこしいんでしょうかね?
UTF-8 のような考え方(?)で世界共通コードができれば悩まなくて済むと思うのですが...
httpd は設定したので、今度は ftpd を設定しようと思いました。
wu-ftpd がいまいちなので ProFTPD かな?とも思ったのですが
せっかく標準で ftpd がついているんだからこれでなんとかならないか
考えていました。
ログは /etc/syslog.conf でファシリティ ftp.* を
/var/log/ftp.log にとるようにして
ftpd -l -l -l とでもしておけば、とりあえずはOKです。
あと newsyslog.conf も設定しておくほうがいいですね。
でも、問題なのが日本語ファイル名です。
というのも、Ubuntu の Nautilus で ftp アクセスし
ディレクトリを作ろうとすると、「未タイトルのフォルダ」を一度作成して
rename する動作をするようなのですが、rename で必ず失敗するため、
「未タイトルのフォルダ」という名前のディレクトリが作成されてしまいます。
新しいファイルを作成する場合も同様です。
さらに日本語を含むファイル名があるとディレクトリ一覧の取得も
できなくなる場合がありました。
ただ、ログインシェルで、csh 系なら .cshrc に
setenv LANG ja_JP.utf8 と書いておけば
「未タイトルのフォルダ」の中に移動することは可能なのです。
この挙動に疑問を持ったので、クライアント環境を他のにしようと思い
.cshrc に setenv の設定をした状態で Windows ソフトの FFFTP で
ファイル名のコードを UTF-8N に設定すると
「未タイトルのフォルダ」の rename が可能になりました。
Windows から日本語を含むファイル名を転送したり、
FFFTP で日本語のディレクトリやファイルを作成したりしても
エラーはでなかったのでもしかしたらそれっぽく動いているのかもしれません。
ちなみに、ssh でログインして ls -w とすると日本語名で
ちゃんと表示されました。
(ターミナルの文字コードは UTF8 に設定しています)
Nautilus の rename がうまく動作していないだけかもしれません。
結論としては...
FreeBSD の標準の ftpd でも日本語ファイル名が扱える場合があるが
ログインシェルの環境変数 LANG と接続するクライアントソフトの
文字コードの調整が必要みたいです。
でも、使い込んでいるわけではないので思わぬ現象が発生するかも?
といったところです。
文字コードの問題はなんでこんなにややこしいんでしょうかね?
UTF-8 のような考え方(?)で世界共通コードができれば悩まなくて済むと思うのですが...
この記事は 2007年12月24日 21時43分57秒 にカテゴリ サーバ へ投稿しました












