「samba3」の編集履歴(バックアップ)一覧に戻る
samba3 - (2006/12/25 (月) 17:41:53) の編集履歴(バックアップ)
samba2 までは、
[global]
client code page = 932
coding system = SJIS/EUC/CAP/HEXなど
の2つのパラメーターを使用してきた。samba2では文字コード変換をsambaが行ってきた。
これをsamba3で設定しても動かないと悩んでいたわけだが、このページの説明を読むと、パラメーター自体が変わった。文字コード変換はOSの標準関数により変換が行われている。
肝心なコマンドはこちら。
[global]
unix charset = CP932/EUCJP-MS/UTF-8など
dos charset = CP932
display charset = CP932/EUCJP-MS/UTF-8など
unix charset: UNIX上のファイルシステムに用いられている文字コード(符号化形式)。ただし、Sambaが内部的に使用する文字コードやsmb.confをはじめとする各種設定ファイルの文字コードも同時に変更される
dos charset: Windows側で利用されている文字コードを指定。日本語を利用する場合は、CP932または同等の文字コードを設定する
display charset: SWATの画面に表示される文字コードを指定。日本語を使用する場合に指定する文字コードは、Sambaのバージョンによって異なる
各パラメータの値には、iconv()関数がサポートする各種ロケール名を指定してください(注)。
iconv()関数の実装により、サポートされているロケール名は異なります。本稿では、GNU libiconvおよびglibc付属のiconv()に前述した日本語対応パッチを適用したものを例に説明します。
日本語ファイル名を用いる場合の典型的な設定は、以下のようになります。
[global]
unix charset = EUCJP-MS/CP932/UTF-8
dos charset = CP932
display charset = CP932
Samba 3.0.2以降の場合は、display charsetをunix charsetと同じ値に設定する必要がある。
■CAPとHEXのサポート
Samba 2.2系列まではcoding systemパラメータにCAPやHEXといった値があり、広く用いられています。しかし、これらはその性格上iconv()関数ではサポートされないため、Samba 3.0系列のVFS機能を使用してサポートするようになった。
CAPについては、
[global]
unix charset = CP932
[cap_share1]
vfs objects = cap
Samba 3.0系列におけるCAP(およびHEX)のサポート vfs_capモジュールを有効にする。capは必ず小文字で指定すること。なおHEXモジュールがインストールされた環境でHEXを有効にするには、capの代わりにhexと指定すればよい。
のように、unix charsetとしてCP932を指定したうえで共有単位にvfs_capというVFSモジュールを併用することにより実現します。
HEXについては、Samba本体に同梱されていないため、Samba 3.0国際化プロジェクトの成果物に同梱されているHEXモジュールを使用する必要があります。設定方法などは、CAPと同様です。