smb.confのincludeを用いた,セッション毎の文字コードの使い分け
- おそらく以下に書いてあることは正しくありません。現バージョンのアプリケーションで何とか運用する苦肉の策です。sambaのバージョンがあがると実装(仕様?)が変わるかもしれませんので注意。後でマシンが飛んだときのメモ程度のつもりで。
- 上記のsamba鯖は、普通にeuc-jpのディレクトリもサービスしているので、アクセスしてくるディレクトリに応じて挙動を変えなければならない。しかし,文字コードの設定は[global]なのが悩みどころ。そこでincludeでアクセスしてきたマシン毎に挙動を変えます。(上記cifsマウントはLinuxマシン(つまり自分)しか用いないため,どのマシンか特定可能.
- 結論から書くと以下の設定になった.
- smb.conf
[global]
include = smb.%h.conf
include = smb.%m.conf
-
- smb.「Samba が動作しているマシンの インターネットホスト名(%h)」.conf (a)
[global]
unix charset = UTF-8
dos charset = CP932
display charset = CP932
[utf_dir]
comment = utf8 space
path = /hoge
-
- smb.「クライアントマシンの NetBIOS 名(%m)」.conf (b)
[global]
unix charset = EUC-JP*1
unix charset = eucJP-ms
dos charset = CP932
display charset = CP932
[homes]
comment = Home Directories
- 動作の概要。
- 実は、ここが今回一番しんどかった設定。しかし、この設定はsambaのバージョンがあがったら無効になるかも(泣)。smb.conf 上に矛盾する設定や二重に設定が書いてあったら、どっちが優先されるか、とか、そういう仕様はどこよめば分かるんじゃろう、、