Using Samba

Using Samba

Robert Eckstein, David Collier-Brown, Peter Kelly 共著
第一版 1999 年 11 月
1-56592-449-5, 注文番号: 4495
416 ページ, 34.95 ドル
ハードコピー版(英語)を購入する

目次


Previous: 5.5 ロックと Oplock Chapter 6 Next: 6.2 共有に対するアクセス権の制御
 

6. ユーザ、セキュリティ、ドメイン

この章は、Samba サーバでユーザを設定する方法に付いて記述する。このトピックは最初簡単に思われるかもしれない、しかしすぐに突然生じることができるいくつかの補助的な問題があることに気づくだろう。Samba 管理者の困難の一つは、ユーザの認証である。パスワードとセキュリティの問題は、Samba のメーリングリストであまりにも頻出する質問である。いろいろな認証機構がなぜうまく動作するのか(あるいはうまく動作しないのか)について学ぶことで、将来 Samba のユーザをデバッグする途方もない時間を節約することになる。

6.1 ユーザとグループ

始める前に前もって注意しておくが、Samba に対して Windows 98 や Windows NT 4.0 Workstation SP3 でアクセスしているのであれば、接続前にサーバを暗号化パスワードで構成しておく必要がある。そうしないと、クライアントは Samba サーバへのアクセスを拒否されることになる。これは Windows クライアントが暗号化されたパスワードを送信するためである。Samba はこれらを待ち受け、解読できるように構成する必要がある。 Chapter 2, UNIX システムへの Samba のインストールでこの問題と取り組んでいない場合は、この章の後半で Samba をどのように設定すべきかを提示する。

ユーザを一人設定することからはじめよう。クライアントのユーザを設定する最もシンプルな方法は、サーバ上に UNIX アカウント(とホームディレクトリ)を個別に作成し、Samba にユーザの存在を認識させる方式である。このためには、Samba の設定ファイル中にユーザのホームディレクトリに対応する共有を作成し、 valid users オプションを用いて、アクセス可能なユーザを制限すればよい。以下に一例を示す:

[dave]
		path = /home/dave
		comment = Dave's home directory
		writeable = yes
		valid users = dave

valid users オプションには、共有にアクセスを許可されるユーザを列挙する。 この例では dave というユーザだけが共有へのアクセスを許可される。以前の章で guest ok パラメータを用いれば、誰でもディスク共有へのアクセスを許可されると記述した。しかしゲストアクセスを許可したくないため、このオプションは記述していない。特定の共有に対して認証されたユーザとゲストユーザ、両方のアクセスを許可するようにもできる。両者の違いは、通常ファイルに対するアクセス権に現れる。

%H 変数により、ユーザのホームディレクトリを表記できることに注意してほしい。同様に設定では、UNIX のユーザ名を示す %u 変数や、クライアントのユーザ名を示す %U 変数も利用することが可能である。以下に例を示す。:

[dave]
	comment = %U home directory
	writeable = yes
	valid users = dave
	path = %H

どちらのオプションを用いても、クライアントからの指定によって Samba が利用する UNIX のユーザが path オプションで指定されたディレクトリに対して読み書きのアクセスが可能となる。言い方を代えれば、クライアントが共有に対する読み書きアクセス権を獲得する 前に、UNIX 側のユーザの持つ通常のファイルやディレクトリに対するアクセス権だけでなく、最初に Samba の認証機構(暗号化パスワード, valid users 等) を通過しないといけないということである。

一人のユーザだけがアクセス可能なホームディレクトリの場合、OS上でユーザアカウントを作成した時にアクセス権に注意すればよい。しかし、グループでアクセスするための共有ディレクトリを作成する場合は、動作させるためにもう少し段階を追って行う必要がある。accounting 部門に対するグループ共有を smb.conf ファイルに設定してみよう:

[accounting]
	comment = Accounting Department Directory
	writeable = yes
	valid users = @account
	path = /home/samba/accounting
	create mode = 0660
	directory mode = 0770

最初に気がつく点は、有効なユーザ(valid user)として個々のユーザ名を設定せず、 @account と設定している点であろう。これは、有効なユーザが UNIX の account グループのメンバーになることを示す。ユーザをグループのメンバーとするには、システムのグループファイル (/etc/group もしくは同等のもの)の accountグループのエントリに追加する必要がある。一度行われれば、Samba は追加されたユーザを共有に対する valid users として認識する。

更に、グループのメンバがアクセス可能な共有を、 path 設定オプションで指定したところに作成する必要もある。以下は( /home/samba が既に作成されているとして) accounting 部門のための共有ディレクトリを作成する UNIX のコマンド例になる:

# mkdir /home/samba/accounting
# chgrp account /home/samba/accounting
# chmod 770 /home/samba/accounting

この smb.conf ファイルの例には、二つのオプションがあるが、両方とも以前の章で説明した。それは create mode directory mode オプションである。これらのオプションは新規ファイルやディレクトリに与えられるうる最大限尾アクセス権を設定する。上記の場合、この共有に対するその他のユーザ(world)からの全てのアクセスを拒否する設定にしている(前述したように chmod コマンドで更に確実にできる)。

6.1.1 [homes] 共有

各ユーザの共有に話を戻そう。何人かのユーザのために、ホームディレクトリの共有を設定する必要がある場合、特別な共有である [homes] 共有の利用を考えるだろう。この共有については Chapter 5, ブラウジングと高度なディスク共有にて紹介している。 [homes] 共有を用いれば、必要なのは以下の設定だけである:

[homes]

	browsable = no
	writable = yes

[homes] 共有は Samba の設定ファイルにおける特別なセクションになる。ユーザが(UNCやWindows の Explorer を用いて) smb.conf ファイルに存在しない一般の共有に接続しようとすると、Samba は [homes] 共有が存在しないかを探す。存在した場合、指定された共有名をユーザ名だとみなして Samba サーバ上のパスワードデータベース (/etc/passwd や同様のもの) ファイルの検索が行われる。そのユーザが存在した場合、Samba はクライアントが自分のホームディレクトリに接続しようとしているユーザであると想定する。

実際に例を示そう。 sofia が Samba サーバ上の [sofia] という共有に接続しようとしているとする。設定ファイル中にそのような名前の共有は存在しないが、 [homes] 共有が存在しており、 sofia というユーザがパスワードデータベースに存在したとしよう。この場合 Samba は以下のような処理を行う:

  1. [sofia] という名前の新しいディスク共有を [homes] 共有で指定された pathオプションの値を用いて作成する。 section. path オプションが [homes] 共有で指定されていなかった場合、Samba はユーザのホームディレクトリを利用する。

  2. Samba は新しい共有のオプションをinitializes the new share's options from the defaults in [globals]セクションの定義を用いて初期化した上で、更に, browseable オプションを除いて、 [homes] に設定された値で上書きする。

  3. Samba は sofia のクライアントをその共有に接続させる。

[homes] 共有は a fast, painless way to create shares for your user community without having to duplicate the information from the password database file in the smb.conf これには、注意を喚起する必要がある問題点がある:

  • [homes] セクションは、マシン上の全てのアカウントに適用されるが、これは常に望ましいとは限らない。例えば root, bin, sys, uucpのような共有が作成される可能性がある。(グローバルな invalid users オプションを用いることでこれを防止できる。)

  • browseable 設定オプションの意味が、他の共有とは異なっている。この設定は、 [homes] セクションがローカルなブラウズリストに現れないことを意味しているに過ぎず、例えば [alice] という共有が現れなくなる訳ではない。 [alice] というセクションが作成された場合、 [globals] セクションで共有に対して設定された browsablese の値が用いられ、 [homes]セクションの設定は用いられない。

説明したように、ユーザの UNIX ホームディレクトリがサーバの /etc/passwd ファイルで設定されていれば、 [homes] 共有には path の設定は不要である。有効なホームディレクトリが存在しないことがないようにすること。Samba はユーザのホームディレクトリの実体を自動で作成することはせず、ユーザのディレクトリが存在しなかったり、アクセスできなかったりした時は、単にtree connect を拒否する。


Previous: 5.5 ロックと Oplock Next: 6.2 共有に対するアクセス権の制御
5.5 ロックと Oplock Book Index 6.2 共有に対するアクセス権の制御

O'Reilly Home | O'Reilly Bookstores | How to Order | O'Reilly Contacts
International | About O'Reilly | Affiliated Companies

© 1999, O'Reilly & Associates, Inc.