Chapter 2. 手軽な始め方: 短気な方への手引き
Prev | Part I. 概要 | Next

## Chapter 2. 手軽な始め方: 短気な方への手引き

### John H. Terpstra

Samba Team

`<jht@samba.org>`

Samba HOWTO文書中に含めるものについての最初に提案を受けた時、だれかが問い合わせのためのサンプル設定をたくさん書いた。これは、動いているシステムからたくさんのエッセンスを提示することに由来するたくさんの価値を失わないで行う事が甚だしく難しい。それがドキュメントに抜けているものである。それをカバーする章の内容の中に設定の可能性の広範囲な説明がある。この章は、要求されたことに対する処方であると思いたい。

この章中の情報は、ほとんど完成したこの本のオリジナルバージョンの後に書かれた“Samba-3 by Example”という本と比較してとてもまばらである。“Samba-3 by Example”は最初の版の最終稿をレビューした結果をフィードバックしたものである。読者フィードバックが、オリジナルのレビュアにより反映が行われることを見ることは興味深かった。どの場合にも、経験あるネットワーク管理者がそこから得るものと同様、何が新しいかをより理解するための基礎的な調査に1ヶ月半かかった。“Samba-3 by Example”はその調査の結果である。この本のいくつかのページで提供されているものは、より包括的に“Samba-3 by Example”の第二版でカバーしている。両方のほんの第二版は同じ時期にリリースされた。

まとめると、“公式のSamba-3 HOWTO & リファレンスガイド”は自動車修理工の修理ガイドと同等のものとして意図されている。“Samba-3 by Example”は、どのように車を運転するかを説明するドライバ向けのガイドと同等である。もしもネットワークの設定例を完全にしたいのであれば、Samba-3 byExampleを参照すること。

## 機能と利点

基本的な動作するシステムを作成するために、Sambaは最小限の設定しか必要としない。この節では、簡単なものから複雑なものへ、おのおのを動かすために必要とされる設定ファイルの変更とすべてのステップを順番に提供する。徹底的に設定されたシステムは、追加の高機能な機能を使うだろう。それらの追加機能はこの文書の残りの部分で触れられている。

ここで使っている例は、数多くの人が設定の例のために要求したものに依っている。すべての識別子は問題がないようにしてあり、非現実的な存在しないサイトへ何らかの形で似ていることは計画的に行われている。

## 例題サイトの説明

最初の設定例中では、例外的な、簡単なシステム要求の場合を考えてみる。ほとんど取り組みを必要としないものを複雑にしようとする真の誘惑がある。

“匿名リードオンリ文書サーバ” はCD-ROMイメージを提供するのに十分かもしれないサーバのタイプか、ネットワーククライアントが使う用途向けの参考文書を提供する。この設定は“スタンドアロンサーバ”、“参照用文書サーバ”でも取り上げている。この設定の目的は、ゲストも含めて誰でもリードオンリでアクセスできる共有ボリュームを提供することである。

2番目の例は、コンピュータ上にインストールされた正しいプリンタドライバを持つのと同じくらい長く、誰でも印刷できるプリントサーバのための最低限の設定である。これは“スタンドアロンサーバ”, “集中印刷サーバ”で説明されているものと同じである。

次の例は、システム上にアカウントを持つユーザのみがアクセス可能な、安全なオフィス用ファイル/プリントサーバである。このサーバはワークグループのファイル/プリントサーバととてもよく似ているが、匿名でアクセスするマシンよりはより安全である。このタイプのシステムは、一般的に小さなオフィスの用途に適合している。サー派はネットワークログオン機能、ドメイン制御を提供しない。その代わりにネットワーク経由のストレージデバイス(NAS)とプリントサーバである。

最後の例は存在するMicrosoft Windowsネットワークを統合するか、それを完全に置き換えるより複雑なシステムである。これらはSambaドメイン制御(PDC/BDC)と同様なドメインメンバサーバとリモートの場所中にあるブランチオフィスでの、大きな分散ネットワーク中で詳細が説明されるものをカバーする。

## 動く例

設定の例はSambaが動くために必要なすべてをカバーするためにデザインされている。それはこのテキストの範囲を明らかに超えている、基本的なOSプラットフォームの設定をカバーしていない。

また、OSベンダによって提供されているパッケージにか、他の手段でSambaが正しくインストールされていることも仮定している。

### スタンドアロンサーバ

スタンドアロンサーバであるということは、それがドメインコントローラでないこと、 ドメイン制御下に参加していないと言う事実以上のことを何も暗示しない。これは 単純で、ワークグループ風のサーバであるか、ドメインセキュリティ管理下のメンバ であることができる。

例題が作成されている間、真のビジネスオフィスが、そのオフィスの大きさが 増えたり必要に応じて変わるようなことが起こると思うかもしれないのと同じ ように、システムガソのすばらしい能力に向かって進歩するすべての試みが行 われた。

#### 匿名リードオンリ文書サーバ

このタイプのサーバの目的は、共有リソース上にある任意の文書やファイルを 任意のユーザに有効にさせることである。共有リソースはCD-ROMでもファイル 領域でも可能である。

- ファイルシステムの共有位置は`/export`である。

- すべてのファイルはJack Baumbachと呼ばれるユーザが所有している。 Jackのログイン名はjackbである。そのパス ワードはm0r3pa1nである。 もちろんこれは例として使っているものである。すべての、この 文書の読者がこのことを知っているため、実環境でこれを使っては いけない。

Procedure 2.1. インストール手順: リードオンリサーバ

Example 2.1. 匿名リードオンリサーバ設定

# グローバルパラメータ
`[global]`
`workgroup = MIDEARTH`
`netbios name = HOBBIT`
`security = share`
`[data]`
`comment = Data`
`path = /export`
`read only = Yes`
`guest ok = Yes`

1. ユーザをシステムに登録する(ユーザのホームディレクトリも作る):

       root# useradd -c "Jack Baumbach" -m -g users -p m0r3pa1n jackb

2. ディレクトリを作りパーミッションと所有者を設定する:

       root# mkdir /exportroot# chmod u+rwx,g+rx,o+rx /exportroot# chown jackb.users /export

3. `/export`ディレクトリに共有したいファイルをコピーする。

4. 匿名リードオンリサーバ設定で 表示されているSamba設定ファイル(`/etc/samba/smb.conf`)を インストールする。

5. 以下のコマンドを実行して設定ファイルをテストする:

       root# testparm

   代替として、`smb.conf.master`と呼ばれるマスタ 設定ファイルから操作している場合、以下のコマンドシーケンスの方が より適切である:

       root#  cd /etc/sambaroot#  testparm -s smb.conf.master > smb.confroot#  testparm

   何らかのエラーメッセージが出力されるかもしれないことに注意。 エラー出力がない場合にのみ先に進むこと。上記の設定ファイルで 生成される典型的な出力の例は以下の通り:

       Load smb config files from /etc/samba/smb.confProcessing section "[data]"Loaded services file OK.Server role: ROLE_STANDALONEPress enter to see a dump of your service definitions[Press enter]# Global parameters[global]	workgroup = MIDEARTH	netbios name = HOBBIT	security = share[data]	comment = Data	path = /export	read only = Yes	guest only = Yes

6. OSプラットフォームに適した方法でSambaを起動する。その方法は プラットフォーム依存である。Sambaを起動することに関するそれ 以上の情報は、Starting Samba を参照のこと。

7. Microsoft Windowsクライアントをワークグループ MIDEARTHに設定し、コンピュータ名を ROBBINSに設定し再起動し、数分待ち、Windowsエクスプローラ を開いてマイネットワークをクリックする。そこにマシンHOBBIT がある。このマシンアイコンをクリックすると、 data共有が現れる。共有をクリック後、 `/export`ディレクトリ中にある、以前に そこにおいたファイルが現れる。

上記の情報(#グローバルパラメータ以下)は `/etc/samba/smb.conf`ファイルの完全な内容を提供 する。

#### 匿名の読み書き可能な文書サーバ

以前の例からこの設定を発展系と見なすべきである。違いは、共有アクセスが jackbというユーザIDに、プライマリグループがjackbに強制的に設定されると いうことである。その他1つの改善点は、ユーザjackbを `smbpasswd`に追加することが出来るということである。 これを行うのには以下を実行する:

    root# smbpasswd -a jackbNew SMB password: m0r3pa1nRetype new SMB password: m0r3pa1nAdded user jackb.

`smbpasswd`ファイルへのこのユーザの追加は、エクス プローラのプロパティにおいて所有者がUser Unknown の代わりにjackbが表示されると言うことである。

完全な変更後の`smb.conf`ファイルは“変更後の匿名の読み書き可能な設定の smb.conf”である。

Example 2.2. 変更後の匿名の読み書き可能な設定の smb.conf

# Global parameters
`[global]`
`workgroup = MIDEARTH`
`netbios name = HOBBIT`
`security = SHARE`
`[data]`
`comment = Data`
`path = /export`
`force user = jackb`
`force group = users`
`read only = No`
`guest ok = Yes`

#### 匿名プリントサーバ

匿名プリントサーバは2つの目的で提供される:

- 1つの所から、すべてのプリンタに印刷を許可する。

- 制限された数のプリンタに対するアクセスのため、たくさんの ユーザのためにネットワークのトラフィック輻輳を減らす。

最も単純な匿名印刷サーバ中で、Windowsワークステーション上での正しい プリンタドライバのインストール要求は共通である。この場合、プリント サーバはスプーラに対して印刷ジョブを単に渡すだけに設定され、 スプーラはプリンタに対して素通しになるように設定される。別の言い方 をすると、プリントスプーラはプリンタに対して渡されたデータストリーム をフィルタリングもなんらかの処理もしない。

この設定中で、プリンタの追加ウィザードを使うのは好ましくなく、 また、自動ドライバダウンロードを行うのも望まない。そのため、 以下の設定でそれを無効にする。 “匿名プリントサーバのsmb.conf”は結果の `smb.conf`ファイルである。

Example 2.3. 匿名プリントサーバのsmb.conf

# Global parameters
`[global]`
`workgroup = MIDEARTH`
`netbios name = LUTHIEN`
`security = share`
`printcap name = cups`
`disable spoolss = Yes`
`show add printer wizard = No`
`printing = cups`
`[printers]`
`comment = All Printers`
`path = /var/spool/samba`
`guest ok = Yes`
`printable = Yes`
`use client driver = Yes`
`browseable = No`

上記の設定は理想的なものではない。よりよい機能を使っておらず、 故意にエレガントではない解決方法を提示している。しかし、これは 基本であり、これで印刷は出来る。SambaはCUPSによって提供される 直接印刷APIを使える。CUPSライブラリを、Sambaコンパイル時に指定 してリンクした場合、既定値の印刷システムはCUPSになる。princap name がCUPSを指定した場合、Sambaはすべての印刷機能のためにCUPSに直接 通信を行うため、CUPSライブラリAPIを使う。 `printing`の値をSYSVかBSDに設定して外部印刷 コマンドを強制的に使うことが可能で、パラメータ `printcap name`の値はCUPS以外の何かに設定 しなければならない。この場合、Windowsクライアントに対して有効に させるためのプリンタの一覧が含まれている任意のファイルの名前を設定 する。

### Note

Windowsユーザはローカルプリンタのインストールが必要で、ドライバの インストール後に通常使うプリンタを切り替える。通常使うプリンタは そのマシン上のネットワークプリンタに設定できる。

ディレクトリ`/var/spool/samba`が使えるように なっていることを確かめておくこと。以下の手順はこれを達成するため に行わなければならない:

- ディレクトリはスーパーユーザ(root)のユーザとグループに属さねば ならない:

      root# chown root.root /var/spool/samba

- ディレクトリのパーミッションは以下のようにスティッキービット を設定して「その他」をRWに設定しなければならない:

      root# chmod a+twrx /var/spool/samba

  スティッキービット設定の目的は、一時印刷ファイルを所有していない ユーザが誤用で制御を得てしまう可能性を防止するためである。

### Note

CUPSが有効になっているシステムで、中間のCUPSプリントフィルタ処理なしで、 直接プリンタに生データを渡す機能がある。このモードの操作を使うことが 要求される場合、生データを印刷するデバイスを設定することが必要である。 また、`/etc/mime.conv`と `/etc/mime.types`ファイル中のraw mime ハンドラを 有効にする必要もある。“application/octet-streamのためのraw印刷を明示的に有効にする”を参照のこと。

#### セキュアな読み書き可能ファイルと印刷サーバ

続いて、簡単なシステムからやや複雑なサーバの例に説明を進めよう。

新しいサーバは認証されたユーザのみ(すなわち、ローカルアカウントを持つ)が、 ホームディレクトリと同様にファイルを保存できる共用データ領域を必要とする。 また、誰でも使える1つのプリンタも提供する。

この仮想の環境(このデータを入手するための盗聴は無いものとする)中で、 使うのに難しくない、十分な安全性を持つ簡単な環境に サイトは依存する。

サイトユーザは Jack Baumbach, Mary Orvilleと Amed Sehkahである。おのおのは パスワード(これ以降の例では表示しない)を持つ。Maryはプリンタ管理者で、 共通の共有中のファイルの所有者である。

この設定は既定値であるユーザレベルのセキュリティを ベースとしていて、`/etc/samba/smbpasswd`中に Windows互換の暗号化パスワードを格納している。この設定にするための既定値 の`smb.conf`エントリは passdb backend = smbpasswd, guestである。 これが既定値になっているので、設定ファイルにこれを記述する必要はない。 guest バックエンドはSamba設定ファイル中で指定されるか否かに関わらす、 有効なpassdb backendに追加されることに注意。

Procedure 2.2. セキュアなオフィスサーバのインストール

Example 2.4. セキュアなオフィスサーバのsmb.conf

# Global parameters
`[global]`
`workgroup = MIDEARTH`
`netbios name = OLORIN`
`printcap name = cups`
`disable spoolss = Yes`
`show add printer wizard = No`
`printing = cups`
`[homes]`
`comment = Home Directories`
`valid users = %S`
`read only = No`
`browseable = No`
`[public]`
`comment = Data`
`path = /export`
`force user = maryo`
`force group = users`
`read only = No`
`[printers]`
`comment = All Printers`
`path = /var/spool/samba`
`printer admin = root, maryo`
`create mask = 0600`
`guest ok = Yes`
`printable = Yes`
`use client driver = Yes`
`browseable = No`

1. すべてのユーザをOSに追加する:

       root# useradd -c "Jack Baumbach" -m -g users -p m0r3pa1n jackbroot# useradd -c "Mary Orville" -m -g users -p secret maryoroot# useradd -c "Amed Sehkah" -m -g users -p secret ameds

2. “セキュアなオフィスサーバのsmb.conf”中で示されているようにSambaの `smb.conf`を設定する。

3. Microsoft Windowsパスワードデータベースに新規ユーザを追加する:

       root# smbpasswd -a rootNew SMB password: bigsecretReenter smb password: bigsecretAdded user root.root# smbpasswd -a jackbNew SMB password: m0r3pa1nRetype new SMB password: m0r3pa1nAdded user jackb.root# smbpasswd -a maryoNew SMB password: secretReenter smb password: secretAdded user maryo.root# smbpasswd -a amedsNew SMB password: mysecretReenter smb password: mysecretAdded user ameds.

4. CUPS Webインタフェースを使ってプリンタをインストールする。生データを 印刷するデバイスとしてMicrosoft Windowsクライアントで共有するプリンタ をインストールするようにすること。

5. OSの管理インタフェースを使ってSambaを起動する。それは以下の方法でも 手動で可能である:

       root#  nmbd; smbd;

   両方のアプリケーションは自動的にdaemonとして動く。daemonモードで開始 することを強制する、パラノイド的な`-D`フラグを追加 することも可能である。

6. `/export`ディレクトリを設定する:

       root# mkdir /exportroot# chown maryo.users /exportroot# chmod u=rwx,g=rwx,o-rwx /export

7. Sambaが正しく動いているかを調べる:

       root# smbclient -L localhost -U%Domain=[MIDEARTH] OS=[UNIX] Server=[Samba-3.0.20]Sharename      Type      Comment---------      ----      -------public         Disk      DataIPC$           IPC       IPC Service (Samba-3.0.20)ADMIN$         IPC       IPC Service (Samba-3.0.20)hplj4          Printer   hplj4Server               Comment---------            -------OLORIN               Samba-3.0.20Workgroup            Master---------            -------MIDEARTH             OLORIN

   以下のエラーメッセージはSambaが動作していないことを示している:

       root#  smbclient -L olorin -U%Error connecting to 192.168.1.40 (Connection refused)Connection to olorin failed

8. ユーザmaryoでOLORINに接続する:

       root# smbclient //olorin/maryo -Umaryo%secretOS=[UNIX] Server=[Samba-3.0.20]smb: \> dir.                              D        0  Sat Jun 21 10:58:16 2003..                             D        0  Sat Jun 21 10:54:32 2003Documents                      D        0  Fri Apr 25 13:23:58 2003DOCWORK                        D        0  Sat Jun 14 15:40:34 2003OpenOffice.org                 D        0  Fri Apr 25 13:55:16 2003.bashrc                        H     1286  Fri Apr 25 13:23:58 2003.netscape6                    DH        0  Fri Apr 25 13:55:13 2003.mozilla                      DH        0  Wed Mar  5 11:50:50 2003.kermrc                        H      164  Fri Apr 25 13:23:58 2003.acrobat                      DH        0  Fri Apr 25 15:41:02 2003		55817 blocks of size 524288. 34725 blocks availablesmb: \> q

ここまでのことで、設定の基礎を会得したかと思う。これからはより複雑な 例を見ていく。この節の残りの部分は、いままでの例で説明した手順の部分 は省略する。

### ドメインメンバサーバ

ここでは、経理部門が幸せにできるような、最も簡単なサーバ設定を題材にする。ユーザは 会計担当で、小難しい要求をしてくることに注意しよう。この部門のために1台のサーバ予算 がある。

ネットワークは社内情報サービスグループ(Information Services Group (ISG))で管理され、そこ に所属しているものとする。内部の製作は典型的な中規模の組織である。いつでもユーザの追加削 除を行っているという理由でISGを運営しているのがHuman Resources is of the opinion。 また、スタッフのために基本的なネットワークリソースアクセスを得るために、部門の管理者は 死力を尽くして戦わなければならない。けれども経理部門は違い、彼らは性格に彼らがほしい ものを手に入れる。そのため、これは場面を設定すべきである。

ここでは最後の例からのユーザを使うことにする。経理部門にはその部門のユーザが使える 汎用プリンタがある。また、小切手を印刷するための権限を持つ人のそばにその人だけが 使える小切手印刷プリンタもある。最高会計責任者(CFO)はオフィス内の個人用収納場所 中に配置して完全にそのプリンタの使用を制限したいと望んでいる。そのため、それは ネットワークプリンタである必要がある。

経理部門は中央のアプリケーションサーバから動かさなければならない SpytFullという会計アプリケーションを使っている。ソフトウェア は1台のサーバだけで動かすようにライセンスされていて、底にはワークステーション コンポーネントがなく、マップされた共有で動く。データはUNIXベースのSQLバックエンド にある。UNIXの専門家はそれをみて、それはUNIX屋の問題ではないと言う。

経理部門のマネージャ(maryo)はフォームレター(いやなメール)のために分離したファイル 格納領域と同じような汎用ファイリングシステムを希望している。フォームレター領域は マネージャを除いてすべての経理スタッフにはリードオンリにすべきである。汎用ファイ リングシステムは、経理のチームのメンバの、その人固有の階層構造ファイル領域を持つ 必要があるが、マネージャにはすべての領域にアクセスできることを希望している。各 ユーザは、個人に関連したファイルのための固有のホーム領域を持つが、それは部門の 作業に関連しない。

#### 設定例

サーバvalinorは会社のドメインのメンバサーバである。 経理部門はローカルサーバのみを持つ。ユーザのアカウントはドメインコント ローラ上にあり、そこにはデスクトッププロファイルとすべてのネットワーク ポリシファイルがある。

Example 2.5. メンバサーバのsmb.conf (Globals)

# Global parameters
`[global]`
`workgroup = MIDEARTH`
`netbios name = VALINOR`
`security = DOMAIN`
`printcap name = cups`
`disable spoolss = Yes`
`show add printer wizard = No`
`idmap uid = 15000-20000`
`idmap gid = 15000-20000`
`winbind use default domain = Yes`
`printing = cups`

Example 2.6. メンバサーバのsmb.conf (Shares and Services)

`[homes]`
`comment = Home Directories`
`valid users = %S`
`read only = No`
`browseable = No`
`[spytfull]`
`comment = Accounting Application Only`
`path = /export/spytfull`
`valid users = @Accounts`
`admin users = maryo`
`read only = Yes`
`[public]`
`comment = Data`
`path = /export/public`
`read only = No`
`[printers]`
`comment = All Printers`
`path = /var/spool/samba`
`printer admin = root, maryo`
`create mask = 0600`
`guest ok = Yes`
`printable = Yes`
`use client driver = Yes`
`browseable = No`

1. UNIX/Linuxサーバにユーザを追加してはならない。すべては中央の ドメインで行う。

2. メンバサーバのsmb.conf (globals)と メンバサーバのsmb.conf (shares and services)と一致するように`smb.conf`を設定する。

3. ドメインに参加する。注意:このステップが終わるまでSambaを起動してはいけない!

       root# net rpc join -Uroot%'bigsecret'Joined domain MIDEARTH.

4. `winbind`が設定されて動いている任意のシステム上で `nscd` daemonを停止する(シャットダウンする)ことを必ず行うこと。

5. OSプラットフォームの通常の方法で、Sambaを起動する。 手動で動かしたい場合は、rootになって以下の手順で起動する:

       root# nmbd; smbd; winbindd;

6. winbind経由でユーザとグループ名を解決するために、システム上にあるネーム サービススイッチ(NSS)制御ファイルを設定する。 `/etc/nsswitch.conf`中の以下の行を編集する。

       passwd: files winbindgroup:  files winbindhosts:  files dns winbind

7. `wbinfo`に対するパスワードを以下の方法で設定する:

       root# wbinfo --set-auth-user=root%'bigsecret'

8. ドメインユーザとグループの認証が以下を実行することで正しく解決されるかを 検証すること:

       root# wbinfo -uMIDEARTH\maryoMIDEARTH\jackbMIDEARTH\ameds...MIDEARTH\rootroot# wbinfo -gMIDEARTH\Domain UsersMIDEARTH\Domain AdminsMIDEARTH\Domain Guests...MIDEARTH\Accounts

9. `winbind`が動作しているかをチェックすること。以下は、 `getent`システムユーティリティ経由で正しいユーザ名の 解決を行っている例である:

       root# getent passwd maryomaryo:x:15000:15003:Mary Orville:/home/MIDEARTH/maryo:/bin/false

10. A final test that we have this under control might be reassuring:

        root# touch /export/a_fileroot# chown maryo /export/a_fileroot# ls -al /export/a_file...-rw-r--r--    1 maryo    users       11234 Jun 21 15:32 a_file...root# rm /export/a_file

11. ここまでで設定はほぼ終わり、この後、このサイト用にディレクトリ 構造を設定する:

        root# mkdir -p /export/{spytfull,public}root# chmod ug=rwxS,o=x /export/{spytfull,public}root# chown maryo.Accounts /export/{spytfull,public}

### ドメインコントローラ

この節の残りの部分は、ドメイン制御の設定に焦点を当てる。以下は2つの実装方法の例である。 ここでの例は、簡単に作れるが、ちゃんと動くものを提示するのが目的であることを思い出して ほしい。この本の残りではより大きな機能性とそれに付随する複雑性に注目する機会を手助け するべきである。

ドメインコントローラの設定は新しいtdbsamパスワードバックエンドを使う簡単な設定 で達成できる。このタイプの設定は小さなオフィスに適しているが、拡張性が制限され ていて(複製が出来ない)、ドメインの大きさと複雑さが増大するとパフォーマンスが 下がることが予想される。

tdbsamの使用は、PDC以外の必要性がないサイトにのみ最適である。ドメインが大きく なると、追加のドメインコントローラが必要となるのは必定である。Microsoftネット ワーク環境に過小なリソースを提供しようと試みてはいけない;ドメインコントローラは 基本的な認証サービスを提供する。以下は過小なリソースでのドメインコントロール 環境の症状である:

- ドメインログオンが断続的に失敗する。

- ドメインメンバサーバ上のファイルアクセスが断続的に失敗し、 パーミッション拒否エラーメッセージが出る。

より拡張性のあるドメインコントロール認証バックエンドオプションは、 Microsoft Active DirectoryかLDAPベースのバックエンドを使うことである。 Samba-3はドメインメンバサーバとして両方のオプションを提供する。PDC として、Samba-3はActive Directoryで有効な機能の完全な代替を提供でき ない。Samba-3は拡張性のあるLDAPベースの PDC/BDCソリューションを提供 できる。

tdbsam認証バックエンドは、外部手段を除いて、データベースの内容を複製 する機能は提供していない(すなわち、独立したSamba-3のためのSAM複製 手順はない)。

### Note

もしも1つ以上のドメインコントローラが必要ならば、tdbsam認証バックエンドは 使えない。

#### 例: エンジニアリングオフィス

ここで提供するエンジニアリングオフィスのネットワークサーバは、新しい tdbsamパスワードバックエンドの使い方をデモするように設計されている。 tdbsam機能はSamba-3で取り入れられた。Microsoft Windows NT4で可能な たくさんのユーザとマシンアカウント制御を提供するように設計された。 小さなネットワーク中で使うのには、これは安全である。

Example 2.7. エンジニアリングオフィスのsmb.conf (globals)

`[global]`
`workgroup = MIDEARTH`
`netbios name = FRODO`
`passdb backend = tdbsam`
`printcap name = cups`
`add user script = /usr/sbin/useradd -m %u`
`delete user script = /usr/sbin/userdel -r %u`
`add group script = /usr/sbin/groupadd %g`
`delete group script = /usr/sbin/groupdel %g`
`add user to group script = /usr/sbin/groupmod -A %u %g`
`delete user from group script = /usr/sbin/groupmod -R %u %g`
`add machine script = /usr/sbin/useradd -s /bin/false -d /var/lib/nobody %u`
# 注意: 以下は既定値のログオンスクリプトを指定する。
# ユーザ単位のログオンスクリプトは、pdbeditを使って、ユーザアカウント中で指定できる。
`logon script = scripts\logon.bat`
# This sets the default profile path. Set per user paths with pdbedit
`logon path = \\%L\Profiles\%U`
`logon drive = H:`
`logon home = \\%L\%U`
`domain logons = Yes`
`os level = 35`
`preferred master = Yes`
`domain master = Yes`
`idmap uid = 15000-20000`
`idmap gid = 15000-20000`
`printing = cups`

Example 2.8. エンジニアリングオフィスのOffice smb.conf (shares and services)

`[homes]`
`comment = Home Directories`
`valid users = %S`
`read only = No`
`browseable = No`
# Printing auto-share (makes printers available thru CUPS)
`[printers]`
`comment = All Printers`
`path = /var/spool/samba`
`printer admin = root, maryo`
`create mask = 0600`
`guest ok = Yes`
`printable = Yes`
`browseable = No`
`[print$]`
`comment = Printer Drivers Share`
`path = /var/lib/samba/drivers`
`write list = maryo, root`
`printer admin = maryo, root`
# Needed to support domain logons
`[netlogon]`
`comment = Network Logon Service`
`path = /var/lib/samba/netlogon`
`admin users = root, maryo`
`guest ok = Yes`
`browseable = No`
# For profiles to work, create a user directory under the path
# shown. i.e., mkdir -p /var/lib/samba/profiles/maryo
`[Profiles]`
`comment = Roaming Profile Share`
`path = /var/lib/samba/profiles`
`read only = No`
`profile acls = Yes`
# Other resource (share/printer) definitions would follow below.

1. tdbsamパスワードバックエンドを使う動作するPDCの設定は、 エンジニアリングオフィスのsmb.conf (globals)と エンジニアリングオフィスのsmb.conf (shares and services)にある:

2. OSで提供されているツールを使って、必要に応じUNIXグループを作成する:

       root# groupadd ntadminsroot# groupadd designersroot# groupadd engineersroot# groupadd qateam

3. OSで提供されている適当なツールを使ってシステム上にユーザアカウントを 作成する。同時にユーザ毎のホームディレクトリを作っておくこと。Samba 環境で使うときに要求されるグループのファイル、ディレクトリ、プリンタ のアクセス制御に対し、ユーザを追加する。

4. このシェルスクリプトを動かしてNTグループにおのおののUNIXグループを割り当 てる(スクリプトの名前は`initGroups.sh`とする)。

       #!/bin/bash#### Keep this as a shell script for future re-use			# First assign well known groupsnet groupmap add ntgroup="Domain Admins" unixgroup=ntadmins rid=512 type=dnet groupmap add ntgroup="Domain Users"  unixgroup=users rid=513 type=net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d# Now for our added Domain Groupsnet groupmap add ntgroup="Designers" unixgroup=designers type=dnet groupmap add ntgroup="Engineers" unixgroup=engineers type=dnet groupmap add ntgroup="QA Team"   unixgroup=qateam    type=d

5. `[NETLOGON]` 共有中で使うための `scripts`ディレクトリを作成する:

       root# mkdir -p /var/lib/samba/netlogon/scripts

   使用するログオンスクリプト(バッチまたはcmdスクリプト)をこの ディレクトリに配置する。

上記の設定で、ファイル共有とプリンタ共有を必要に応じて追加しなければ ならない、基本的なPDCシステムが提供される。

#### 大きな組織の場合

この節では、LDAPベースの認証バックエンドを使うSamba-3の設定の簡単な 紹介を行う。このことを行う主旨は、より高次のレベルのスケーラビリティ に適合するのを可能にするための、とても分散した環境と同じように、 PDC/BDCホストを可能にすることを提供することである。

##### プライマリドメインコントローラ

これは、LDAP認証バックエンドを使うSamba-3 PDCを動かすための 最小限の設定例である。OSが正しく設定されていることを仮定して いる。

Idealx スクリプト(か同等のもの)が、LDAPベースのPOSIXとSambaSamAccount を管理するのに必要である。Idealxスクリプトはサイト Idealxからダウンロードする ことが出来る。また、Sambaのリリースtarファイルから得ることも出来る。 Linuxディストリビューションは、Idealxスクリプトを `/usr/share/doc/packages/sambaXXXXXX/examples/LDAP/smbldap-tools` ディレクトリにインストールする傾向がある。 Idealxスクリプトバージョン`smbldap-tools-0.9.1`は よく動作することが知られている。

Example 2.9. PDC用のLDAPバックエンドを使うsmb.conf

# Global parameters
`[global]`
`workgroup = MIDEARTH`
`netbios name = FRODO`
`passdb backend = ldapsam:ldap://localhost`
`username map = /etc/samba/smbusers`
`printcap name = cups`
`add user script = /usr/local/sbin/smbldap-useradd -m '%u'`
`delete user script = /usr/local/sbin/smbldap-userdel %u`
`add group script = /usr/local/sbin/smbldap-groupadd -p '%g'`
`delete group script = /usr/local/sbin/smbldap-groupdel '%g'`
`add user to group script = /usr/local/sbin/smbldap-groupmod -m '%u' '%g'`
`delete user from group script = /usr/local/sbin/smbldap-groupmod -x '%u' '%g'`
`set primary group script = /usr/local/sbin/smbldap-usermod -g '%g' '%u'`
`add machine script = /usr/local/sbin/smbldap-useradd -w '%u'`
`logon script = scripts\logon.bat`
`logon path = \\%L\Profiles\%U`
`logon drive = H:`
`logon home = \\%L\%U`
`domain logons = Yes`
`os level = 35`
`preferred master = Yes`
`domain master = Yes`
`ldap suffix = dc=quenya,dc=org`
`ldap machine suffix = ou=People`
`ldap user suffix = ou=People`
`ldap group suffix = ou=People`
`ldap idmap suffix = ou=People`
`ldap admin dn = cn=Manager`
`ldap ssl = no`
`ldap passwd sync = Yes`
`idmap uid = 15000-20000`
`idmap gid = 15000-20000`
`printing = cups`

1. Sambaのソース`~/examples/LDAP/samba.schema` から入手し、`/etc/openldap/schema/` ディレクトリにそれをコピーする。

2. LDAPサーバを設定する。この例はOpenLDAP 2.1.xに対応している。 The `/etc/openldap/slapd.conf` file. Example slapd.conf File

       # Note commented out lines have been removedinclude         /etc/openldap/schema/core.schemainclude         /etc/openldap/schema/cosine.schemainclude         /etc/openldap/schema/inetorgperson.schemainclude         /etc/openldap/schema/nis.schemainclude         /etc/openldap/schema/samba.schemapidfile         /var/run/slapd/slapd.pidargsfile        /var/run/slapd/slapd.argsdatabase        bdbsuffix          "dc=quenya,dc=org"rootdn          "cn=Manager,dc=quenya,dc=org"rootpw          {SSHA}06qDkonA8hk6W6SSnRzWj0/pBcU3m0/P# The password for the above is 'nastyon3'directory     /var/lib/ldapindex   objectClass     eqindex cn                      pres,sub,eqindex sn                      pres,sub,eqindex uid                     pres,sub,eqindex displayName             pres,sub,eqindex uidNumber               eqindex gidNumber               eqindex memberUid               eqindex   sambaSID              eqindex   sambaPrimaryGroupSID  eqindex   sambaDomainName       eqindex   default               sub

3. `initdb.ldif`ファイルを作成する:

       # Organization for SambaXP Demodn: dc=quenya,dc=orgobjectclass: dcObjectobjectclass: organizationdc: quenyao: SambaXP Demodescription: The SambaXP Demo LDAP Tree# Organizational Role for Directory Managementdn: cn=Manager,dc=quenya,dc=orgobjectclass: organizationalRolecn: Managerdescription: Directory Manager# Setting up the container for usersdn: ou=People, dc=quenya, dc=orgobjectclass: topobjectclass: organizationalUnitou: People# Set up an admin handle for People OUdn: cn=admin, ou=People, dc=quenya, dc=orgcn: adminobjectclass: topobjectclass: organizationalRoleobjectclass: simpleSecurityObjectuserPassword: {SSHA}0jBHgQ1vp4EDX2rEMMfIudvRMJoGwjVb# The password for above is 'mordonL8'

4. LDAPデータベース中に初期データを投入する:

       root# slapadd -v -l initdb.ldif

5. OSにインストールされている方法か適当なツールを使ってLDAP サーバを起動する。

6. `/usr/local/sbin`ディレクトリ中にIdealx スクリプトファイルをインストールし、システム設定に合わせて、 smbldap_conf.pmを設定する。

7. このバックエンドを制御する`smb.conf`ファイルの例は PDC用のLDAPバックエンドを使うsmb.conf にある。必要に応じて追加する。

8. `secrets.tdb`ファイルにLDAPパスワードを 追加すると、SambaはLDAPデータベースを更新できるようになる:

       root# smbpasswd -w mordonL8

9. 必要に応じてユーザとグループを追加する。Sambaツールを使った ユーザとグループの追加は必要に応じて、自動的にLDAPバックエ ンドとOSに追加される。

##### バックアップドメインコントローラ

“リモートのLDAPを使うBDCのsmb.conf” ではBDCの設定例を示している。`smb.conf` ファイルがBDC上で必要でないsmbldap-toolsスクリプトを 指定していないことに注意。必要に応じて追加の共有とプリンタを 追加する。

Example 2.10. リモートのLDAPを使うBDCのsmb.conf

# Global parameters
`[global]`
`workgroup = MIDEARTH`
`netbios name = GANDALF`
`passdb backend = ldapsam:ldap://frodo.quenya.org`
`username map = /etc/samba/smbusers`
`printcap name = cups`
`logon script = scripts\logon.bat`
`logon path = \\%L\Profiles\%U`
`logon drive = H:`
`logon home = \\%L\%U`
`domain logons = Yes`
`os level = 33`
`preferred master = Yes`
`domain master = No`
`ldap suffix = dc=quenya,dc=org`
`ldap machine suffix = ou=People`
`ldap user suffix = ou=People`
`ldap group suffix = ou=People`
`ldap idmap suffix = ou=People`
`ldap admin dn = cn=Manager`
`ldap ssl = no`
`ldap passwd sync = Yes`
`idmap uid = 15000-20000`
`idmap gid = 15000-20000`
`printing = cups`

1. BDCが固有のLDAPサーバを持つかどうかを決める。もしもBDCが LDAPサーバであるならば、以下の`smb.conf`を示されたように 変更する。既定値の リモートのLDAPを使うBDCのsmb.conf 中の設定は、中央のLDAPサーバを使う。

2. “リモートのLDAPを使うBDCのsmb.conf”中にあるようにNETLOGONとPROFILES ディレクトリを設定する。

Prev | Up | Next
Chapter 1. SAMBAのインストールとテスト方法 | Home | Part II. サーバ設定の基本