LinuCレベル3 300試験の例題と解説
392.5 国際化
■トピックの概要
このトピックの内容は以下の通りです。
<392.5 国際化>
重要度 1
<説明>
国際化された文字コードとコードページに対処できること。
<主要な知識範囲>
・国際化された文字コードとコードページを理解する
・非英語環境において、共有、ファイル、ディレクトリ名における、Windows と Linux / Unix の間での名前空間の相違を理解する
・非英語環境におけるユーザとグループの名前付け規則における、WindowsとLinux/UNIXの間での名前空間の相違を理解する
・非英語環境におけるコンピュータの名前付け規則における、WindowsとLinux/UNIXの間での名前空間の相違を理解する
<重要なファイル、用語、ユーティリティ>
・国際化
・文字コード
・コードページ
・smb.conf
・dos charset、 display charset および unix charset
■例題
Sambaの文字コードについての解説で間違っているものを選びなさい。
1. Sambaの文字コード設定が主に影響するのはファイル名やフォルダ名である
2. Windows側とLinux側で異なる文字コードを扱うことができる
3. マッピングファイルを使うことでWindows側の日本語ユーザー名でSambaにアクセスすることができる
4. Sambaで日本語のコンピュータ名を扱うことはできない
※この例題は実際のLinuC試験とは異なります。
解答と解説
答えは4. Sambaで日本語のコンピュータ名を扱うことはできない です。
Linuxでも、ファイル名やディレクトリ名に日本語を使うことができますが、Windows側とLinux側でファイル名、ディレクトリ名に使用している日本語の文字コードが異なると、いわゆる「文字化け」してしまうことになります。
使用する文字コードは、それぞれWindows側、Linux側で設定することができます。異なる文字コードを指定した場合、両者の間で文字コードの変換を行うことになります。一般的なsmb.confでの設定は、以下の通りです。
○Sambaの文字コード設定
dos charset = CP932
unix charset = UTF-8
dos charsetがWindows側の文字コードでいわゆるSJIS、unix charsetがLinux側の設定で、新たしめのディストリビューションの場合、UTF-8が使用されることが多いでしょう。ターミナルでファイル操作を行う場合、環境変数LANGでの文字コード設定がUTF-8になっていれば、文字化けせずに日本語ファイル名を扱うことができます。
ユーザー名やグループ名は、LinuxではASCII文字によることなど制限がありますが、Windowsでは日本語のユーザー名、グループ名が許されています。マッピングファイル(username mapやgroupname map)を使うことで、Windows側の日本語ユーザー名を、Linux側のユーザー名に対応させることができます。同様に、コンピュータ名もマッピングファイルで対応させることができます。
文字コードの変換や対応付けは、思わぬ動作を起こす場合もありますので、極力日本語を使用しない運用にするか、事前に使用したい日本語文字列が正しく処理されるかテストしておくと良いでしょう。