Sambaサーバ構築、5つのべからず:2008年版

若葉マーク管理者に捧げる

LinuxやUNIXをWindowsのファイルサーバ/プリントサーバとしてしまうことができる「Samba」は、手軽にファイル共有環境を構築することができ、サーバ管理入門にもぴったりです。インターネット上の関連情報も豊富ですが、しっかり出所を確かめないと誤った設定を招く恐れがあります。

オープンソース・ソリューション・テクノロジ株式会社
代表取締役 チーフアーキテクト 小田切 耕司
2008/4/22


Windowsとのファイル交換を手軽に実現するSamba

 Sambaは、LinuxやUNIXをWindowsのファイルサーバ/プリントサーバとしてしまうことができるオープンソースソフトウェア(OSS)です。Sambaの導入によって、LinuxとWindowsが混在する環境で、手軽に情報共有を行えるようになります。

 Sambaは、大きく以下の4つの機能を提供します。

  • Windowsクライアント向けのファイルサーバ:SMB(Server Message Block)サーバおよびCIFS(Common Internet File System)サーバ
  • Windowsクライアント向けのプリンタサーバ
  • Windowsクライアントの認証統合を実現するドメインコントローラ
  • Linux/UNIXのOSやアプリケーションの認証をWindows Active Directoryへ統合するWinbind機能

 最近ではLinuxの利用者が増えたとはいえ、クライアントでは90%以上のユーザーがWindowsを使っています。このため、WindowsとLinuxとのファイル交換/認証統合を可能にするSambaは大変実用性が高く、企業ユーザーも多数います。またこれを踏まえて、Windowsのバージョンアップ追随や不具合対応のために、日々改良が続けられています。

関連記事:
参考 Samba 3.0の全貌 改訂版[前編]〜 Samba 3.0のインストールと国際化の現状 〜
http://www.atmarkit.co.jp/flinux/special/samba3b/samba01.html
参考 Samba 3.0の全貌 改訂版[後編]〜 Active Directory参加機能とセキュリティ拡張 〜
http://www.atmarkit.co.jp/flinux/special/samba3b/samba04.html
参考 Samba Tips!
http://www.atmarkit.co.jp/flinux/special/samba3b/samba01.html

うのみにしない! ネット上の情報

 Sambaの開発にはSamba Teamが当たっており、4月15日時点での最新のバージョンは3.0.28aです。本家Webサイトに各種リソースが用意されているほか、日本Sambaユーザー会では日本語の情報を得ることができます。

 Sambaの歴史は古く、1992年に開発されてから16年以上たっています。といいながら、まだ枯れているわけではありません。マイクロソフトによる仕様変更への追随と機能追加のために、Sambaの仕様変更もすさまじいものがあります。

 このため、1年前にSambaについて書かれたドキュメントですらすぐに古くなってしまい、陳腐化してしまう傾向があるので、注意が必要です。場合によっては、古い資料が初心者に害(設定誤り)を及ぼすケースもしばしば見受けられます。

 いまは、インターネット上でさまざまな資料が公開されており、特にSambaの構築手順を記したブログなどは星の数ほどあります。出来たてほやほやのサーバ管理者がまず参考にするのも、こうした資料ではないでしょうか?

 ところがこれらの資料は玉石混交です。中には、初心者による誤った資料や古くて役に立たない情報も多数含まれています。まとめた本人に悪気はないのでしょうが、一度その資料が検索エンジンの上位に登録されてしまうと、それが何度も参照され、同じ過ちを繰り返す人が多数発生してしまいます。実際、日本Sambaユーザー会のメーリングリストはいつも同じ質問(同じ過ち)であふれ返っています。

 この記事ではそうした背景を踏まえ、「昔は正しかったけれど、いまは時代遅れになってしまった情報」やメーリングリストで繰り返し質問されている事項を少しだけ紹介しようと思います。これからSambaサーバ構築にチャレンジする際には、ぜひ目を通してください。

 もちろん、私が書いているこの記事も、1年もすれば古い資料になってしまい、設定誤りの原因になる可能性があります。よって、以下のことに注意してください。

  • 今回の記事が対象とするのは、Samba 3.0.26以降3.2未満の内容です

    すでにサポート終了となったSamba 2.xやもうすぐリリースされるSamba 3.2以降には当てはまりせん。また、Samba 3.0.0〜3.0.23には不具合も多く、最新バージョンのSamba 3.0.28aと互換性のない部分が多々あります(バグが多いので(?)Samba 3.0.23以下は使わないようにしましょう)
  • この記事の有効期限は2008年いっぱいと考えてください

    Samba 3.2や4.0が出たら役に立たない可能性があります。

 では本題に移りましょう。この記事では以下の5つの「べからず」について解説しようと思います。

  • EUC、シフトJIS(SJIS)は使うべからず
  • smbpasswdファイルは使うべからず
  • smbpasswdコマンドは使うべからず
  • security=share/server/domainは使うべからず
  • smb.confを編集して共有の作成をするべからず

 いずれも、見出しを見て「えー、うそだ!」と思う方もいるかもしれません。注意を喚起するために少し大げさな表現になっていますが、例外もありますので、記事内容をよく読んで、技術的なバックグラウンドを理解し、見出しが真にいいたいことを理解していただきたいと思います。

EUC、シフトJIS(SJIS)は使うべからず

 1998年に私がSamba 1.9日本語版を作ってから、Samba 2.0日本語版、Samba 2.2国際化版と、Sambaは長年、マルチバイト(特に日本語)に対応するように開発されてきました。

 一方クライアント側を見ると、Windows 95/98/Me系では「CP932」といわれるシフトJIS系の文字コードが使われてきましたが、Windows 2000/XP以降では「UNICODE(UCS2)」が利用されています。

 Samba 2.2までは、WindowsクライアントとはCP932(シフトJIS系)で通信し、Linux/UNIXのファイルに変換するところでEUCなどに変換していました。当時は、LinuxがまだシフトJISやUNICODEに対応していなかったため、Linux OSが問題を起こさないEUCが推奨されていたからです。

 ちなみに、SolarisやHP-UX、AIXなど一部のUNIXはそのころからシフトJISに対応していましたが、LinuxはいまだにシフトJISに対応していません。今後、上記のUNIXを含め、文字コードとしてUTF-8が主流になっていく中、(Red Hat)LinuxがシフトJISをサポートすることは期待できないでしょう。

 さて、このCP932からEUCへの変換は、Samba 2.xの内部にコード変換テーブルを持つことにより行われていました。しかしSamba 3.0からは、Windowsクライアントとの通信がUNICODEに変わりました。これを機にコード変換の処理も、Samba内部からglibcやlibiconvの外部ライブラリに任せることになりました。

 これにより、せっかくSamba 2.xでCP932からEUCへのマッピングを修正したのに、また日本語を正しく扱えなくなるという問題が発生したのでした。

 しかしこれも、Samba 3.0国際化版の開発により「EUCJP-MS」というマイクロソフト独自の文字コードをEUCにマッピングする方法で無事解決されました。このため、つい最近(具体的にいうとRed Hat Enterprise Linux 3)までは、EUCJP-MSを使う設定が推奨となっていました。

 ところが、Windows VistaやMac OS XでJIS X 0213(JIS2004)がサポートされるようになると、状況はまたまた一転します。これらの文字はEUCやシフトJISではマッピングできないのです。これらの文字をSambaで利用できるようにするには、Samba側でUNICODE(UTF-8)を使う必要があります。

画面1

画面1 Vistaからサポートされる特殊な文字

図1

図1 Sambaにおける文字コード変換の変遷

 Red Hat Enterprise Linux 4からはデフォルトのOS文字コードがUTF-8になってきていることに加え、今後のVistaやWindows 2008への対応を考えると、EUCやシフトJISは使わず、UTF-8を使うことが推奨されます。

 
1/2

Index
Sambaサーバ構築、5つのべからず:2008年版
− 若葉マーク管理者に捧げる −
Page 1
Windowsとのファイル交換を手軽に実現するSamba
うのみにしない! ネット上の情報
EUC、シフトJIS(SJIS)は使うべからず
  Page 2
smbpasswdファイルは使うべからず
smbpasswdコマンドは使うべからず
security=share/server/domainは使うべからず
smb.confを編集して共有の作成をするべからず
オープンソースの情報はソースや日付に注意

Linux Square全記事インデックス


 Linux Squareフォーラム サーバ構築・運用関連記事
連載:Heartbeatでかんたんクラスタリング(連載中)
オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します
特集:Apache 2.2でWebサイトをパフォーマンスアップ!
最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する
連載:実用 Apache 2.0運用・管理術(全8回)
本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える
連載:実用 BIND 9で作るDNSサーバ(全15回)
本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく
連載:実用qmailサーバ運用・管理術(全14回)
本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで
特集:Samba 3.0の全貌 改訂版
Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間