特定のグループ、ユーザにだけ見える共有を作成する

提供:Samba-JP
ナビゲーションに移動検索に移動
KB番号 J0117
最終更新日 2003/07/02
作成者 はせがわようすけ
最終更新者

対象

この文書は、以下のプロダクトに付いて説明したものです。

  • Samba 2.2.x
  • Samba 2.2.x 日本語版

説明

この文書では、include パラメータを使って、特定のグループやユーザからだけ見える共有を作成する方法を説明します。

設定方法

smb.conf の [global] セクションに以下のような設定を追加します。SWATからは設定できませんので、テキストエディタで直接 smb.conf を開く必要があります。

   [global]
   ....
   include = path/%G.conf
 
   [他の共有]
   ....

こうしておくと、クライアントからの接続時に %G がグループ名に展開され、include の行は path/グループ名.conf というファイルの内容に置き換わります。 そこで、path/グループ名.conf というファイルにはそのグループに見せたい共有の内容を定義しておきます。

[グループに対する共有] browseable = yes writeable = yes ....

同様に、%G に替えて %U を指定すると、path/ユーザ名.conf というファイルが読み込まれますので、特定のユーザにだけ見える共有を作成することが可能です。

このように、include と %変数を利用することで接続してくるユーザやグループに応じた柔軟な設定ができます。 %G や %U のほかに利用できる変数には以下のものがあります。

変数 意味
%U セッションのユーザ名(クライアントが接続時に送信したものであるが、 実際に接続したユーザ名と同じであるとは限らない)。
%G %U のプライマリグループ
%H %u で指定されたユーザのホームディレクトリ
%v Samba のバージョン
%h Samba が動作しているマシンのインターネットホスト名
%m クライアントマシンの NetBIOS 名(とても便利)
%L サーバの NetBIOS 名。これを用いることで、 クライアントから呼ばれた名前に応じて設定を変更することが可能となる。 これによりサーバは「2 つの顔」を持つことができる。

Samba をポート 445 で稼働させる場合、 クライアントから情報が送付されないため、このパラメータは利用できない。

%M クライアントマシンのインターネットホスト名
%N NIS のホームディレクトリサーバの名前。 これは NIS の auto.map エントリから取得される。 Samba が --with-automount オプションをつけて コンパイルされていない場合、このオプションは%Lと同じになる。
%p NIS auto.map エントリから取得された サーバのホームディレクトリのパス。NIS auto.map エントリは "%N:%p" のように分割されている。
%R プロトコルのネゴシエーションを経て選択された プロトコルレベル。これは CORE、COREPLUS、LANMAN1、LANMAN2、NT1 のいずれかの値をとる。
%d サーバプロセスのプロセスID
%a リモートマシンのアーキテクチャ。 100% 確実ではなく、一部のアーキテクチャだけが識別される。現在、認識されるものは、Samba、WfWg、Win95、WinNT、Win2k、WinXP、Win2K3 であり、 それ以外のものは "UNKNOWN" となる。
%I クライアントマシンの IP アドレス
%T 現在の日付と時間
%$(envvar) 環境変数 envar の値

特に、%I や %m を利用すると、ワークグループ構成や Windows9x からの接続であっても、特定の利用者に対して動作を変えることが用意にできます。

include オプションを利用し、クライアントマシンに応じて動作を変更する応用例としては、 SambaでWindows NT Server と同じ転送速度を確保する方法 などがあります。

本技術情報は、samba-jp:14479 からの一連のスレッドを元にして構成されています。