運用のパラメーターとまとめ
smb.confのTIPS:%変数(variable substitutions)
ユーザーやグループなどによって、動作を変えたい場合に有効なのが%変数機能です。この機能を利用すると、アクセスするユーザー名やグループ名によってアクセス制限や処理できる操作を制御することができます。
代表的な%変数には、図2のようなものがあります。ほかにも多数ありますので、詳細はsmb.confのmanページVARIABLE SUBSTITUTIONSの項を参照してください。
例えばイントラネットで自分のグループのpublic_htmlフォルダにアクセスする共有を設定する場合は、以下のようにpathパラメーターのグループ名が入る部分に%Gを設定します。
[public_html]
path = /home/%G/public_html
writable = yes
これでユーザーごとに自分が所属するグループのpublic_htmlディレクトリにアクセスできるpublic_html共有が設定されます。
smb.confのTIPS:includeによる設定ファイルの仕分け
Sambaのデフォルトの設定ファイルは/etc/samba/smb.confですが、smb.conf内にincludeパラメーターを指定することにより、複数の設定ファイルを利用することができます。記述場所はグローバルでも共有セクションでも可能です。
例えば共有設定が多いサーバーでは、各共有の設定をsmb.confに直接記述しないようにsmb.confにはincludeパラメーターだけ記述し、各共有の設定はinculdeされるファイルに記述することができます。これにより、smb.confの記述を簡潔にすることができます。
smb.confファイルには、以下のようにincludeパラメータを記述します。
include = /etc/samba/devel-group.conf
include = /etc/samba/sales-group.conf
devel-group.confファイルには、以下のように共有設定を行います。
[development]
path = /home/development
writable = yes
sales-group.confファイルには、以下のように共有設定を行います。
[sales]
path = /home/sales
writable = yes
また、上で紹介した%変数を利用して、アクセスするユーザーにより動的にincludeされる設定ファイルを変更できます。ただし%u、%P、%Sは利用できません。
実際の運用からみて、あまり良い例ではありませんが、全ユーザーの監査ログを取得すると負荷が高いため、ある特定のユーザーだけ監査を実施する場合を考えてみましょう。smb.confファイルの監査対象の共有設定に、以下の行を追加します。
include = /etc/samba/%U.conf
その後、/etc/samba/testuesr01.confを以下の内容で作成しておくと、testuser01がアクセスした時だけ監査ログが取得されます。そのほかの監査設定は前ページを参照してください。
vfs objects = full_audit
full_audit:success = open
full_audit:failer = open
testuser01以外のユーザー、例えばtestuser02がアクセスした時にはSambaは/etc/samba/testuser02.confをincludeしようとしますが、ファイルが存在しないのでtestuser02に対しては監査は実施されません。
では、最後に本連載で紹介したパラメーターをまとめて確認してみましょう。