● samba 漢字対応について

0. 目的

  漢字対応の主な目的は、

    (1) MS-Windows 上で、漢字ファイル名をどうしても扱う必要のあるアプリケーションがちゃ
        んと動作する。例えば、MS-WORD 5 などは、インストール時に漢字のファイル名を勝手
        につけてしまいます。こういった場合にちゃんと対応できるようにする。

    (2) UNIX は、最近ではほとんどのものが 8 bits のファイル名をサポートしていますが、
        中には、これをサポートしていないものもあります。このような場合でも、(1)の目的
        が果たせるようにする。

1. 利用方法

(1) 追加したパラメータ

  smb.conf ファイルの global セクションに以下のパラメータを設定できるようにしました。

    [global]
     ....
     coding system = <コード系>

  ここで指定されたコード系が UNIX 上のファイルシステムのファイル名のコードになります。
  設定できるものは、次のようになっています。

    sjis:  SHIFT JIS (MS 漢字コード) 
    euc:   EUC コード
    jis7:  7 bits JIS コードです。シフトコードは、それぞれ、以下の通りです。
	     漢字の始まり: \E $ B  か  \E $ @
             漢字の終り:  \E ( J  か \E ( B か \E ( H
           これらは、すでに存在しているファイル名の中の文字コードを読み込む時に使いま
           す。新しいファイルを作る時は、デフォルトで、
	     漢字の始まり: \E $ B
             漢字の終り:  \E ( J
           です。コンパイルのオプションで変更可能です。
	   また、半角カタカナは、
	     半角カタカナ開始: 0x0e
	     半角カタカナ終了: 0x0f
	   です。
    jis8: 8 bits JIS コードです。漢字のためのシフトコードは jis7 と同じです。半角カタ
	  カナにはシフトコードはつきません。
    junet: jis7 の半角カタカナのシフトコードが以下のように変わる以外、jis7 と同じです。
	     半角カタカナ開始: \E ( I
	     半角カタカナ終了: 漢字の終りと同じ
    hex:  7 bits の ASCII コード以外のコードを以下の形式で表す方式です。例えば、
	  'オフィス' という名前は、':83:49:83:74:83:42:83:58' のように、':' の後に２桁
          の16進数を続ける形式になります。

(2) smbclient のオプション

  クライアントプログラムでも、漢字や仮名を含んだファイルを扱えるように、次のオプション
  を追加しました。

    -t <ターミナルコード系>

  ここで、<ターミナルコード系>に指定できるものは、上の<コード系>と同じものです。

(3) デフォルト

  デフォルトのコード系は、コンパイル時に決まります。

2. コンパイル時の設定

  Makefile に設定する項目を以下に示します。

(1) KANJI フラグ

  コンパイルオプションに -DKANJI=\"コード系\" を指定します。このコード系は 1. で指
  定するものと同じです。例えば、-DKANJI=\"euc\" をFLAGSM に設定すると UNIX 上のファ
  イル名は、EUC コードになります。ここで指定したコード系は、サーバ及びクライアント
  プログラムのデフォルトに値なります。

(2) JIS コード用シフトコード

  -DJIS_KSO=\'@\'    漢字コードの開始シーケンスを \E$@ に変更します。
  -DJIS_KSI=\'B\'    漢字コードの終了シーケンスを \E(B に変更します。

  のようにデフォルトの漢字のシフトコードを変更することができます。このシーケンスは、新
  しいファイルを作るときなどに用います。

3. 制限事項

(1) 漢字コード
  smbd を動作させるホストの UNIX がサポートしていない漢字コードは、利用できないことが
  あります。変な動作をするようなら hex の指定をするのが良いでしょう。

(2) smbclient コマンド
  シフトコードなどの関係で、漢字や仮名を含んだファイル名の ls の表示が乱れることがあり
  ます。

(3) ワイルドカードについて
  ちゃんとしたスペックがよくわからなかったのですが、一応、DOS/V の動作と同じ動作を行な
  うようになっています。

4. その他

  hex 形式の変換及びUNIX 上でのファイル名の変換方法は、

    大木＠大塚・筑波 <ohki@gssm.otsuka.tsukuba.ac.jp>氏

  が作られたコードを利用しています。

1994年10月28日
藤田 崇  fujita@ainix.isac.co.jp

