10.3.1 [global]セクション
10.5 ファイルサーバーの構築
10.5.3 共有レベルのアクセス管理
Sambaをファイルサーバーとして運用するときには、複数の共有を作成して、グループ単位でアクセス可能な共
有を制限することが一般的なアクセス管理手法です。Sambaでは、さまざまなパラメータを用いて共有へのアクセ スを管理できます。また、共有内で作成されるファイルやディレクトリに関するルールもあわせて設定することで、柔 軟なアクセス管理を実現しています。
(1) 共有へのアクセス制限
smb.confファイルの各共有セクションごとに、アクセス管理のためのパラメータを設定できます。主要なパラメー
タについて説明します。
• write list
このパラメータに設定されたユーザーとグループは共有上のファイルに対して、更新権と参照権が与えら れます。このパラメータに設定されたユーザーは、read onlyパラメータがyesに設定されている共有に対し ても、更新権を持ちます。グループ名で指定するときには、「@グループ名」の形式で指定します。
• read list
このパラメータに指定されているユーザーは、read onlyパラメータの設定に関係なく参照権しか与えられま せん。write listパラメータと同様にグループ名での指定も可能です。なお、write listパラメータとread list パラメータの両方に指定されたユーザーは、write listパラメータの設定が優先されます。
• invalid users
このパラメータに設定されたユーザーは、この共有にアクセスできなくなります。
• valid users
既定値では、何も指定されていません。このパラメータが設定されていない状態であれば、どのユーザー でも共有にアクセスできます。いったん、このパラメータに値が設定されると、このパラメータに設定されて いないユーザーは、共有にアクセスできなくなります。invalid usersパラメータとvalid usersパラメータの両 方に同じユーザーが指定された場合、invalid usersの設定が優先されます。
• admin users
このパラメータに設定したユーザーは、この共有内ではroot権限を持ってファイル操作を行うことが可能に なります。つまりすべての操作が許可されることになるため、設定や使用には細心の注意が必要です。
10.5 ファイルサーバーの構築 次の例は、共有[project]に対して、projectグループのメンバーとmanagerグループのメンバーが参照・更新可 能で、testグループのメンバーは参照のみが可能になるように設定をしています。その他のユーザーはアクセスが 拒否されます。
[project]
path = /var/samba/project read only = no
browseable = yes
write list = @project, @manager read list = @test
valid users = @project, @manager, @test
(2) ファイル・ディレクトリ作成時の権限制限
ユーザーが共有上に新しくファイルを作成するとき、その他のユーザーとのアクセス権の兼ね合いで、ある属性 を強制したいことがあります。このような場合に備えて、共有単位でファイルやディレクトリの新規作成時の属性を 管理できます。
• create mask
ファイルを作成する際のファイル属性のマスクを4桁の8進数で指定します。既定値は0744です。このマ スク値として設定されていないビットは、新規に作成するファイルの属性から削除されます。したがって、既 定値の0744のマスクであれば、所有者の参照権・更新権・実行権、グループの参照権、その他の参照権 以外の属性は必ず削除されます。
• directory mask
ディレクトリを作成する際のディレクトリ属性のマスクを4桁の8進数で指定します。既定値は0755です。こ のマスク値として設定されていないビットは、新規に作成するディレクトリの属性から削除されます。したがっ て、既定値の0755のマスクであれば、グループの更新権、その他の更新権は必ず削除されます。グルー プ内のメンバーが自由にディレクトリ内を操作するためには、既定値を0775に変更しておかなければなら ないでしょう。
• force create mode
ファイルに対して強制的に付与したいビットを指定します。create maskパラメータの処理の後でビットが追 加されるので、必ず指定したい属性がある場合に利用します。
• force directory mode
ディレクトリに対して強制的に付与したいビットを指定します。directory maskパラメータの処理の後でビット が追加されるので、必ず指定したい属性がある場合に利用します。
• force user
この共有上でファイル操作を行う際のユーザー権限として、このパラメータに指定したユーザーが強制的 に利用されます。したがって、共有内のファイルの所有者が、パラメータに指定したユーザーのみとなりま す。ただし、共有への接続時には、通常どおり接続を行ったユーザー権限で認証が行われます。
• force group
force userと同様に、ファイル操作を行う際のグループ権限を強制的に設定できます。
(3) Guest接続
共有に接続する際、ユーザー認証に失敗した場合に、Guest(ゲスト)接続と呼ばれる形態で共有に接続するこ とが可能です。Guest接続を可能にするためには、まず[global]セクションのmap to guestパラメータを設定し なければなりません。map to guestパラメータには次の値を設定できます。
• Never
パスワードが不正な場合の接続を許可しません。したがって、Guest接続を行うことができません。この値が 既定値です。
• Bad User
ユーザーが存在して、かつパスワードが間違っている場合には、接続を拒否します。一方、ユーザーが存 在しない場合には、Guest接続として接続します。
• Bad Password
パスワードが一致しない場合には、Guest接続として接続します。このときに、ユーザー側にはパスワードを 間違えたことが伝えられないため、Guestとして接続していることを判断できません。その結果、通常と異な る権限でファイル操作を行い、操作が拒否されることがあるので、利用の際には注意が必要です。
また、[global]セクションでは、Guest接続時に利用するユーザーアカウントをguest accountパラメータで指 定できます。既定値はnobodyとなっています。
map to guest = Bad User guest account = nobody
続いて、各共有ごとにGuest接続を許可するかどうか指定します。
• guest ok
ゲスト接続を許可する場合にYesを指定します。map to guestパラメータが有効な場合のみ、有効となりま
10.5 ファイルサーバーの構築
• guest only
Yesを指定した場合、接続要求をすべてGuest接続として処理します。map to guestパラメータが有効な場 合のみ、有効となります。