共有フォルダの運用パラメーター
共有フォルダ上のアクセス許可を継承したい
今回はSamba共有フォルダ設定に利用するパラメーターについて解説します。
Sambaでアクセス権を設定する場合は、smb.confに記載する共有アクセス許可とファイルシステムのパーミッションを利用します。さらに、CentOS 5.2であればこれらに加えext3のACLを利用します。
共有フォルダ上に作成したディレクトリ内にファイルを作成した場合、WindowsのNTFSであれば、上位のディレクトリのアクセス許可が継承されます。
Sambaの場合もこのアクセス許可の継承を利用できますが、デフォルトの設定では「継承が無効」(「inherit permission = no」「inherit acls = no」)になっています。また「create mask=0744」と「directory mask=0755」となっているため、同じグループのユーザーが書き込めない状態になります。よって運用を考えて、これらのパラメーターを適切に設定する必要があります。
1つのグループへのアクセス許可しか設定できないパーミッションでなく、複数グループへのアクセス許可を設定できるACLを利用する場合は、「inherit acls」パラメーターを利用します。「inherit acls = yes」とすることにより、上位のディレクトリに付与されているACLアクセス許可すべてが継承可能となりファイル、フォルダ作成時に自動的に付与されます。
inherit acls = yes
あわせて「create mask」と「directory mask」も意図するアクセス許可が可能なmask値を設定する必要があります。
デフォルトが「0744」となっていた「create mask」には、グループの書き込みアクセス許可「0020」を追加した「0764」以上を設定する必要があります。
create mask = 0764
「directory mask」も同様にデフォルトの「0755」にグループの書き込みアクセス許可「0020」を追加した「0775」以上を設定する必要があります。
directory mask = 0775
例として上記3つのパラメーターを設定したdevel共有フォルダにある「月次レポート」フォルダのアクセス許可を図1-1のように変更します。develグループが参照可能、devel-mgrグループがフルコントロールと設定しています。
さらに「月次レポート」フォルダ内に作成した「2008」フォルダのアクセス許可は、図1-2の通り上位のフォルダと同一のアクセス許可となっています。
force create modeとcreate maskの違い
先ほどから紹介してる「create mask」と「directory mask」は共有フォルダ上に作成できるアクセス許可の上限値を指定しています。共有フォルダ内に誰でも読めるファイルを格納したくない場合は、「create mask = 0760」としておくことで、ファイルのオーナーであっても、グループ以外のメンバーが読み込めるファイルを作成することはできません。「directory mask」も同様です。
しかし、ユーザーの操作により、「create mask」より低いアクセス権の設定は可能です。これを防ぎたい場合は、似たパラメーターである「force create mode」を使います。「force create mode」で指定されたアクセス許可以外のファイルは作成できず、アクセス許可の種類を変更することはできません。「force create mode = 660」とした場合は、グループのユーザーが書き込みできないファイルは作成できなくなります。