[samba-jp:22005] Re: 【質問】AIXにおけるsambaの文字コード設定について

SATOH Fumiyasu fumiyas @ osstech.jp
2013年 6月 10日 (月) 14:37:10 JST


さとうふみやす @ OSSTech です。

At Mon, 3 Jun 2013 14:50:36 +0900,
Masataka Taguchi wrote:
> 現在下記バージョンのAIXおよびsamba(expansion packに同梱)を使用しておりま
> す。
> 
> AIX:7100-01-05-1228(oslevel -sの出力結果)
> samba.base    3.3.12.0
> bos.iconv.com  7.1.1.15

Samba 3.3 はもう本家で保守されていませんし、IBM は
extension pack のパッケージを保守する気がないようなので、
お薦めできないです。

> ここで、sambaの文字コードをデフォルトの「UTF-8」から「SJIS」へ変換しようと
> 思い、
> /usr/lib/smb.comfファイルの[global]セクションに下記3行を追加しました。
> 
> unix charset = IBM-943 
> dos charset = IBM-943 
> display charset = IBM-943 
> 
> その後sambaを再起動したところ、下記のワーニングが出力されました。
> 
> init_iconv: Conversion from UTF-16LE to IBM-943 not supported  
> init_iconv: Attempting to replace with conversion from UTF-16LE to ASCII   

extension pack の samba.base パッケージは文字エンコーディングの
変換に AIX の iconv(3) を利用しますが、こいつが「UTF-16LE」に
対応していないためです。「UTF-16le」には対応しています。

どういうことかというと、

  * AIX の iconv(3) は文字エンコーディング指定の大文字・小文字を
    区別する。
  * AIX の iconv(3) は「UTF-16le」は受け付ける。「UTF-16LE」は
    受け付けない。
  * Samba は iconv(3) を利用して UTF-16LE ⇔各種文字エンコーディング
    変換を行なう。iconv(3) を呼び出すときに「UTF-16LE」を指定する。

> ※IBM-943部分を「CP932」に変えても状況は変わりませんでした。 

AIX の iconv(3) は CP932 に対応していません。
対応するエンコーディング名は `iconv -l` をどうぞ。

> この状態でWINDOWS(SJIS)からファイル作成すると、ファイル名が文字化けしてし
> まいます。

今時の Windows は CIFS で SJIS (CP932) は使いませんよ。

> こちらの原因につきまして、どのようなことが考えられますでしょうか。(現在の
> sambaのバージョンではSJIS変換はサポートされていないのでしょうか)

解決案としては、以下かなぁ。

  * AIX のロケールを日本語 UTF-8 (JA_JP) にする。
    smb.conf で unix charset, dos charset, display charset は指定しない。
  * samba.base パッケージの smbd をバイナリーエディタで開いて
    「UTF-16LE」を「UTF-16le」に置換する。
  * 「UTF-16LE」対応の GNU libiconv をビルド & インストールして
    Samba も自前でビルド & インストールする。
  * うち (OSSTech) の Samba を購入する。:-)

-- 
-- Name: SATOH Fumiyasu @ OSS Technology Corp. (fumiyas @ osstech co jp)
-- Business Home: http://www.OSSTech.co.jp/
-- GitHub Home: https://GitHub.com/fumiyas/
-- PGP Fingerprint: BBE1 A1C9 525A 292E 6729  CDEC ADC2 9DCA 5E1C CBCA


samba-jp メーリングリストの案内