[README][SONY NEWSでコンパイルを通す][samba日本語対応について][INSTALL][COPYING][Makefile][戻る]

● samba 日本語対応について
1. 目的
2. 利用方法
3. コンパイル時の設定
4. 制限事項
5. 障害等のレポートについて
6. その他

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

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

を目的としています。そのため、日本語対応は、必要最小限しか行なっておりません。 日本語対応した samba を利用するためには、コンパイルする時に、必ず、KANJI の定義を追 加してください。このオプションを指定していない場合は、日本語のファイル名を正しく扱 うことはできません。(コンパイルについては、下記 3. を参照して下さい)

2. 利用方法
(1) 追加したパラメータ
  smb.conf ファイルの global セクションに以下のパラメータを設定できるようにしました。

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

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

    sjis:  SHIFT JIS (MS 漢字コード) 
    euc:   EUC コード
    hex:  7 bits の ASCII コード以外のコードを以下の形式で表す方式です。例えば、
	  'オフィス' という名前は、':83:49:83:74:83:42:83:58' のように、':' の後に2桁
          の16進数を続ける形式になります。
	  ここで、':' を他の文字に変更したい場合は、hex の後ろにその文字を指定します。
          例えば、@を変わりに使いたい場合は、'hex@'のように指定します。
    cap:  7 bits の ASCII コード以外のコードを以下の形式で表す方式という点では
          hexと同様ですが、CAP (The Columbia AppleTalk Package)と互換性を持つ変換
          方式となっています。hexとの違いは0x80以上のコードのみ':80'のように変換
          され、その他はASCIIコードで現されます。
          例えば、'オフィス'という名前は、':83I:83t:83B:83X'となります。

    JIS コードについては、以下の表を参照して下さい。
指定漢字開始漢字終了カナ開始 カナ終了英数開始備考
jis7 \E$B \E(J 0x0e 0x0f \E(J jis 7単位符号
junet \E$B \E(J \E(I \E(J \E(J 7bits コード
jis8 \E$B \E(J -- -- \E(J jis 8単位符号
j7bb \E$B \E(B 0x0e 0x0f \E(B
j7bj \E$B \E(J 0x0e 0x0f \E(J jis7と同じ
j7bh \E$B \E(H 0x0e 0x0f \E(H
j7@b \E$@ \E(B 0x0e 0x0f \E(B
j7@j \E$@ \E(J 0x0e 0x0f \E(J
j7@h \E$@ \E(H 0x0e 0x0f \E(H
j8bb \E$B \E(B -- -- \E(B
j8bj \E$B \E(J -- -- \E(J jis8と同じ
j8bh \E$B \E(H -- -- \E(H
j8@b \E@@ \E(B -- -- \E(B
j8@j \E$@ \E(J -- -- \E(J
j8@h \E$@ \E(H -- -- \E(H
jubb \E$B \E(B \E(I \E(B \E(B
jubj \E$B \E(J \E(I \E(J \E(J junetと同じ
jubh \E$B \E(H \E(I \E(H \E(H
ju@b \E$@ \E(B \E(I \E(B \E(B
ju@j \E$@ \E(J \E(I \E(J \E(J
ju@h \E$@ \E(H \E(I \E(H \E(H

いずれの場合も、すでに存在している名前に対しては、漢字の開始終了シーケンスは、以下のものを認識します。

	 漢字の始まり: \E$B  か  \E$@
         漢字の終り:  \E(J  か \E(B か \E(H

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

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

  ここで、<ターミナルコード系>に指定できるものは、上の<コード系>と同じものです。
(3) デフォルト
デフォルトのコード系は、コンパイル時に決まります。
3. コンパイル時の設定
Makefile に設定する項目を以下に示します。
(1) KANJI フラグ
コンパイルオプションに -DKANJI=\"コード系\" を指定します。このコード系は 2. で指定するものと同じです。例えば、-DKANJI=\"euc\" をFLAGSM に設定すると UNIX 上のファイル名は、EUC コードになります。ここで指定したコード系は、サーバ及びクライアントプログラムのデフォルトに値なります。

尚、オプション中の \ や " も忘れずに指定して下さい。

3. 制限事項
(1) 漢字コード
smbd を動作させるホストの UNIX がサポートしていない漢字コードは、利用できないことがあります。変な動作をするようなら hex の指定をするのが良いでしょう。
(2) smbclient コマンド
シフトコードなどの関係で、漢字や仮名を含んだファイル名の ls の表示が乱れることがあります。
(3) ワイルドカードについて
ちゃんとしたスペックがよくわからなかったのですが、一応、DOS/V の動作と同じ動作を行なうようになっています。
(4) ロングファイル名について
Windows NT/95 では、ロングファイル名が扱えます。ロングファイル名を 8.3 フォーマットで扱うために、mangling していますが、この方法は、NT や 95 が行なっている mangling とは異なりますので注意して下さい。
4. 障害等のレポートについて
日本語のファイル名に関して、文字化け等の障害があれば、私にレポートして頂ければ幸いです。ただし、オリジナルからの問題点や質問については、オリジナルの作者へ直接問い合わせるか、もしくはメーリングリストなどへレポートするようにして下さい。

レポートされる場合、利用されている環境(UNIX 及び PC 側のOSなど)とできましたら設定ファ イルやログなどを添付して頂けると幸いです。

5. その他
  コード変換は以下の方々が作られたプログラムを利用しています。

  hex 形式       大木@大塚・筑波 <ohki@gssm.otsuka.tsukuba.ac.jp>氏
  cap 形式       疋田 道郎 (michiro@po.iijnet.or.jp)(michiro@dms.toppan.co.jp)氏

  その他、たくさんの方々からいろいろと御教示いただきありがとうございました。今後ともよ
ろしくお願い致します。

1994年10月28日 第1版
1995年 8月16日 第2版
1995年11月24日 第3版
1996年 5月13日 第4版

藤田 崇  fujita@ainix.isac.co.jp