10.3.1 [global]セクション
10.5 ファイルサーバーの構築
10.5.3 共有レベルのアクセス管理
Sambaをファイルサーバーとして運用するときには、複数の共有を作成して、グループ単位でアクセス可能な共
有を制限することが一般的なアクセス管理手法です。Sambaでは、さまざまなパラメータを用いて共有へのアクセ スを管理できます。また、共有内で作成されるファイルやディレクトリに関するルールもあわせて設定することで、柔 軟なアクセス管理を実現しています。
図10-6 homes共有機能によるファイル共有
10.5 ファイルサーバーの構築
(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権限を持ってファイル操作を行うことが可能になり ます。つまりすべての操作が許可されることになるため、設定や使用には細心の注意が必要です。
次の例は、共有[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パラメータには次の値を設定できます。
10.5 ファイルサーバーの構築
• 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パラメータが有効な場合のみ、有効となります。
• guest only
Yesを指定した場合、接続要求をすべてGuest接続として処理します。map to guestパラメータが有効な場合 のみ、有効となります。