Samba は、Windows クライアントと UNIX ライクなプラットフォームとの間にシームレスなファイル・サービスと印刷サービスを提供する無料のオープンソース・ソフトウェア・スイートです。AIX、BSD UNIX、Linux、IBM 390、そして OpenVMS などの UNIX ライクなプラットフォームで実行することが可能な Samba は、ホスト・サーバーにインストールされた TCP/IP プロトコルを使用します。ホスト・マシンはこのサーバー・ソフトウェアを構成すると、Windows クライアントからアクセスできるようにファイルとプリンターを共有設定にすることができます。

注意: 本記事で紹介しているパッケージおよび内容では Samba 利用時の日本語ファイル名はサポートされておりません。

Radhika Parameswaran, Senior Software Development Engineer, IBM

Radhika Parameswaran は BITS Pilani の大学院の卒業生で、彼女はここで学士や大学院生の指導も務めていました。2004年に IBM に入社した彼女は、AIXオペレーティング技術を専門としています。現在取り組んでいるのは、AIX での SMB ファイル・システム関連の製品です。



2008年 11月 25日

はじめに

Samba は、Windows クライアントと UNIX ライクなプラットフォームとの間にシームレスなファイル・サービスと印刷サービスを提供する無料のオープンソース・ソフトウェア・スイートです。

AIX、BSD UNIX、Linux、IBM 390、そして OpenVMS などの UNIX ライクなプラットフォームで実行することが可能な Samba は、ホスト・サーバーにインストールされた TCP/IP プロトコルを使用します。ホスト・マシンはこのサーバー・ソフトウェアを構成すると、Windows クライアントからアクセスできるようにファイルとプリンターを共有設定にすることができます。

AIX バージョンの Samba で使用できる重要な機能には以下のものがあります。

  • SMIT を使用したバイナリーのインストール
  • SMB ベースのファイル・サービスと印刷サービス
  • 共有とユーザーの作成
  • Web ベースのシステム・マネージャー、SWAT (Samba Web Administration Tool) を使用した構成と保守
  • トレースおよびログ機能
  • ファイル送信用 API サポート
  • 長い AIX ユーザー名とファイル名のサポート
  • リソース・ブラウジング・プロトコル (隣接ネットワーク)
  • パススルー認証
  • ゲスト・ログオン・サポート
  • 共有およびドメイン・レベルのセキュリティー・サポート
  • ユニコード・サポート
  • 多重化 SMB サポート (Windows 端末サポート)
  • NETBIOS 未使用の接続
  • SMB 署名
  • Active Directory サポート
  • ディレクトリー変更通知
  • MSDFS サポート
  • AIX Classic および NFSv4 ACL のサポート
  • ネットワーク・ログオン・サポート (ユーザー・プロファイルのローミングも含む)
  • サーバー・レベルのセキュリティー (ドメイン・コントローラー機能)
  • ラージ・ファイル・サポート
  • DOS ファイル属性マッピング
  • 自動接続解除
  • ブラウズ・マスター・サポート

AIX バージョンの Samba に提供されていない機能には以下のものがあります。

  • LDAP サーバーまたはクライアントとしての Samba
  • Active Directory サーバーとしての Samba
  • Kerberos サーバー・サポート
  • DCE/DFS サポート
  • DNS 更新サポート
  • 自動マウント/smbmount サポート
  • PAM サポート
  • NISPLUS サポート
  • クラスター・サポート

ハードウェアおよびソフトウェア要件

6100-02 Technology Level 以降を備えた AIX をサポートするマシンであれば、どのマシンでも Samba は稼働します。サーバーの最少メモリー要件は以下のとおりです。

  • 30MB の RAM
  • ネットワークに接続された TCP/IP 対応 LAN アダプター

各クライアント PC についての要件は、LAN アダプターがインストールされていること、ネットワークに物理的に接続されていること、そして Windows 98、Server 2003、NT®、Vista®、XP® などの Windows フレーバーのいずれかがインストールされていることです。

Samba は Fast Connect との互換がないことに注意してくだい。したがって、Fast Connect の既存のバージョンはアンインストールする必要があります。

AIX での Samba には以下のパッケージが必要です。

パッケージとインストールに関する要件
イメージファイルセット説明
Samba.baseSamba.baseSamba サーバー
Samba.license S amba.licenseSamba ライセンス
Samba.man Samba.manSamba のマニュアル・ページ

構成と管理

SWAT の構成

Samba サーバーと接続できるようにするためには、ユーザーおよび共有を作成しなければなりません。共有に関する情報を保管する構成ファイルは /usr/lib/smb.conf です。このファイルを編集するには、AIX でテキスト・エディターを使用することも、SWAT インターフェースを使用することもできます。

SWAT を構成する手順は、以下のとおりです。

  1. 以下の行を /etc/inetd.conf に追加します。
    swat    stream  tcp     nowait  root    /usr/sbin/swat        swat
  2. 以下の行を /etc/services に追加します。
    	swat            910/tcp
  3. 以下のコマンドを実行して inetd を更新して上記の内容を反映します。
    	$ refresh -s inetd

SWAT の構成が完了すると、ブラウザーで以下の URL を指定することで SWAT に接続できるようになります。

http://samba_server.my.domain.:910

SWAT ページでは、すべての構成パラメーターのヘルプを表示することができます。これらのマニュアル・ページには、AIX コマンドラインから man コマンドを使用してアクセスすることもできます。

Samba サーバーの起動

Samba には nmbd と smbd という 2 つのデーモンがあります。Samba が正常に機能するには、この 2 つのデーモンが実行中でなければなりません。

nmbd は、Windows 95/98/ME、Windows NT、Windows 2000、Windows XP、LanManager クライアントなどの SMB/CIFS クライアントが生成する NetBIOS over IP ネーム・サービス・リクエストを認識し、それに応答することのできるサーバーです。このデーモンは Windows Network Neighborhood ビューを構成するブラウジング・プロトコルにも参加します。

smbd はファイル共有と印刷サービスを Windows クライアントに提供するサーバー・デーモンで、SMB (または CIFS) プロトコルを使用してファイル・スペースと印刷サービスをクライアントに提供します。

これらのデーモンは、コマンドラインから以下を実行すると起動します。

$ nmbd
$ smbd

デーモンのログは、/var ディレクトリーにそれぞれ log.nmbd、log.smbd として配置されます。

/etc/inittab に以下のエントリーを追加することで、システムのリブート時に自動的にデーモンを起動することもできます。

mkittab nmb:2:once:/usr/sbin/nmbd
mkittab smb:2:once:/usr/sbin/smbd

これで、リブートの度に 2 つのデーモンが起動され、プロセス・リストに表示されることになります。

# ps -ef | grep mbd
root 667870 708792   0 12:49:24      -  0:00 smbd
root 675974      1   0 12:49:24      -  0:00 nmbd
root 708792      1   0 12:49:24      -  0:00 smbd

ユーザーの作成

新規ユーザーを作成するには、SWAT の Password メニュー、または pdbedit ユーティリティーを使用します。

# pdbedit -a guest
new password:
retype new password:

新しく追加するユーザーは基本的に AIX ユーザーです。既存のユーザーのパスワードは、以下のように smbpasswd ユーティリティーを使って変更することができます。

$ smbpasswd -U guest

共有の作成

新しい共有を作成するには、smb.conf ファイルを編集するか、SWAT の Shares メニューを使用します。以下は、smb.conf での共有定義の一例です。

[samba]
        path = /samba

smb.conf のテスト

testparm ユーティリティーを使用して smb.conf の内容をテストすることができます。エラーが表示された場合には、smb.conf を編集してエラーを解決し、以下の testparm ユーティリティーでもう一度テストして確認することができます。

# testparm /usr/lib/smb.conf
Load smb config files from /usr/lib/smb.conf
Processing section "[tmp]"
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        workgroup = USERS

[samba]
        path = /samba

接続のテスト

AIX マシンで共有との接続を一覧表示するには、smbclient ユーティリティーを使用します。

# smbclient -L //beas.in.ibm.com/samba 
Password:
Anonymous login successful
Domain=[USERS] OS=[UNIX] Server=[Samba 3.0.25b]

        Sharename       Type      Comment
        ---------       ----      -------
        tmp             Disk
        public          Disk
        IPC$            IPC       IPC Service (Samba 3.0.25b)
Anonymous login successful
Domain=[USERS] OS=[UNIX] Server=[Samba 3.0.24]

        Server               Comment
        ---------            -------
        BEAS                 Samba 3.0.24

        Workgroup            Master
        ---------            -------
        USERS

smbclient ユーティリティーを使って共有に接続することもできます。

# smbclient //beas.in.ibm.com/samba -U root
Password: Domain=[BEAS] OS=[UNIX] Server=[Samba 3.0.24]
smb: \>

カレント・ディレクトリーを確認する方法は以下のとおりです。

smb: \> pwd
Current directory is \\beas.in.ibm.com\samba

サーバーのシャットダウン

以下に、Samba サーバーをシャットダウンするためのコマンドを記載します。

smbcontrol smbd shutdown
smbcontrol nmbd shutdown

共有との接続解除

サーバー・マシンから共有との接続を解除するには、以下のコマンドを実行します。

smbcontrol <process id of smbd> close-share <sharename>

以下に例を示します。

# smbcontrol 352494 close-share homes
# smbcontrol 352494 close-share  guest

クライアントで開いているファイルが 1 つでもある場合、これらのコマンドを実行しても接続は解除されないことに注意してください。

クライアントのタイムアウト

クライアントのタイムアウトを設定するには、サーバー・マシンから以下のコマンドを実行します。

# smbcontrol --timeout=100 smbd close-share tmp

タイムアウトに設定した時間が過ぎると、クライアントが切断されます。

別の方法として、以下のように smb.conf にタイマーを設定することもできます。

	[global]
   dead time = 1

上記は、クライアントに接続し、ドライブを 1 分間アイドル状態にしてからドライブを切断する例です。

クライアントへの ping

サーバー・マシンからクライアントに ping を送信するには、以下のコマンドを実行します。

	smbcontrol <pid of smbd> close-share <sharename>

以下はその一例です。

#  smbcontrol 352494 ping
PONG from pid 352494

クライアントからのレスポンスは PONG メッセージです。

トレースおよびログ機能

Samba では、nmbd と smbd 両方のデーモンのログを提供します。nmbd ログは /var/log.nmbd に追加され、smbd ログは /var/log.smbd に追加されます。


重要な機能と構成

このセクションでは Samba の重要な機能をいくつか取り上げ、それぞれの構成方法を説明します。

ユーザー・レベルのセキュリティー

前のセクションで触れたユーザーの認証は、ユーザー・レベルのセキュリティーです。この場合、ユーザーは Samba サーバーの中で定義されます。クライアントはサーバーに定義されているユーザーのうちの 1 つを使用して認証を行います。smb.conf でのグローバル・オプションは以下のようになります。

[global]
	security = user

上記は Samba サーバーでのデフォルト・オプションです。

共有レベルのセキュリティー

nobody、Administrator などからなる標準内部ユーザー・リストは、Samba 内で作成されます。ファイルやプリンター・リソースへのアクセスは、これらの標準ユーザーのいずれかとして認証された場合に許可されます。

リソースへのアクセスを特定のユーザーにのみ許可する場合は、smb.conf で以下のように構成します。

[global]
  security = share

[tmp]
  only user = yes
user = ann
path = /tmp

[samba]
	   path = /samba

上記の構成例では、/tmp にはユーザー ann だけがアクセスできる一方、/samba にはゲスト・ユーザーがアクセスできることになります。

only user オプションは、Samba が共有への接続を許可する際に、Samba の内部リストにまとめられたユーザー (nobody、Administrator など) ではなく、ユーザー名オプションに指定された個人のみを基準として共有レベルのセキュリティーを使用するかどうかを指定します。このオプションのデフォルト値は no です。

サーバー・レベルのセキュリティー

サーバー・レベルのセキュリティーでは、認証を別のサーバーに渡すことができます。これは、パススルー認証とも呼ばれます。以下は、smb.conf での構成例です。

[global]
 workgroup = IN.IBM.COM
 encrypt passwords = yes
 security = server
 password server = jhelum.in.ibm.com

[share2]
  comment = mnt
  path = /home/mary/mnt2
  read only = No
  valid users = mary

[share1]
  comment = mary
  path = /home/mary/mnt1
 writeable = yes
 valid users = nobody

上記の例では、ユーザー「mary」に share2 へのアクセスを許可し、「nobody」に share1 へのアクセスを許可しています。

ドメイン・コントローラーの機能

ドメイン・コントローラーは、その特定ドメイン内にあるすべてのマシン (Windows と AIX の両方) の認証を行います。ドメインは通常、同一サブネットに関連します。Samba はドメイン・コントローラーとして機能することが可能です。その場合、smb.conf には以下に記載するコードが含まれていなければなりません。

[global]
    workgroup = SAMBA
    security = user
    domain master = yes	
    local master = yes
    preferred master = yes
    os level = 65
    domain logons = yes
    add machine script = /usr/sbin/useradd -d /var/lib/nobody -g 100 %u

Windows クライアントの設定には、Samba ドメインを結合し、Samba ドメインからリモート・ユーザー・リストへのアクセス許可を追加します。これらのユーザーは Windows に存在していなくても構いませんが、Samba ドメインには存在している必要があります。

Samba がドメイン・コントローラーで、Windows がそのドメインのメンバーとなります。したがって、ドメインが選択され、ユーザー名とパスワードが Windows クライアントから入力されると、認証リクエストは Samba サーバーに送られることになります。別の Samba サーバーへのパススルーを実装し、そのサーバーをドメイン・コントローラーにするには以下のようにします。

[global]
 	    security = server
       	    password server = jhelum.in.ibm.com

上記では、Samba サーバーを実行している jhelum がドメイン・コントローラーとなるので、認証は jhelum に渡されます。

smb.conf に追加するドメイン・コントローラーが不明な場合には、Samba サーバーが追加するドメイン・コントローラーをドメイン内で検索することも可能です。そのための smb.conf での設定は以下のようになります。

    password server = *

Active Directory サポート

AD (Active Directory) サーバーが Windows にインストールされている場合、すべての接続要求を Active Directory サーバーにリダイレクトして認証を行うように Samba を構成することができます。

その方法を以下に説明します。

AD と Samba の両サーバーで、rocky というユーザーをそれぞれ別のパスワードを設定して作成します。AD が Windows クライアント 9.124.101.235 にインストールされている場合には、smb.conf を以下のように構成します。

 [global]
        WORKGROUP = mygroup
        security = server
        password server = 9.124.101.235

[tmp]
        path = /tmp
        msdfs root = yes
        public = yes

[rocky]
        path = /home/rocky
        public = yes

2 つの異なるパスワード (Samba 用と AD 用) を使ってユーザー rocky をマッピングすると、Samba と AD の両方が認証を行うことになります。

マルチユーザー・ログオン

マルチユーザー・ログオン機能では、複数のクライアントが 1 つのサーバー接続で共有リソースにアクセスできるようにします。

この機能をテストするには、Windows マシンに Windows Terminal Server をインストールします。そのマシンをリブートして、任意のドライブを Samba サーバーに割り当てます。この Windows マシンに、「リモート デスクトップ」サービスを使用して別のクライアントから接続してみてください。

割り当てられたドライブが表示され、このドライブには通常と同じ方法でアクセスできるはずです。つまり、パスワード・プロンプトなしでログインすることができます。

やり取りが行われるのは、マッピングされたクライアントと Samba サーバーとの間でのみです。このとき 2 番目のクライアントの IP はどこにも表示されませんが、それでもクライアントと Samba サーバーとのやりとりは行われます。

ゲスト・ログオン

ゲスト・ログオンを有効にするには、smb.conf で以下のパラメーターを設定します。

	[global]
   security = user
	   guest ok = yes

ゲスト・アカウントは、パスワードに誤りがある場合や、ユーザー名に誤りがある場合に使われます。map to guest オプションに Bad password が指定されていると、パスワードが誤っている場合 (空のパスワードを含む) にはゲスト・アカウントでログインされます。map to guest オプションに Bad user が指定されていると、ユーザー名が登録されていなければゲスト・アカウントでログインされます。この構成は、以下のとおりです。

[global]
        map to guest = Bad user

ゲスト・ログオンに割り当てるユーザー・アカウントは、guest account パラメーターで指定します。

	[global]

	   guest account = mary

ユーザー名のマッピング

Samba では、共有ファイルまたはプリンターに対して、特定のユーザーのみがアクセスできるように設定したり、特定のアクセス権を設定したりすることができます。

共有の定義では、以下のようにオプションを指定することができます。

	##force permissions on files created on a share
create mask = 0777

##force permissions on directories created on a share
directory mask = 0444

## force user and group for files and directories created on a share
force user = root (username)
force group = system (groupname)

読み取り/書き込み権限を持つ他のユーザー (root 以外のユーザー) との共有に Windows クライアントのドライブを接続し、新しいファイルを作成します。その共有で作成されたファイルのアクセス許可を確認すると、新規ファイルのアクセス許可は root と system になっていることがわかります。

特定のユーザーにだけ共有の読み取り/書き込みを許可するには、smb.conf で以下の構成を使用してください。

[tmp]
path = /tmp
writable = no
write list = root
 read list = root

パスワード暗号化

Samba でパスワード暗号化が無効にされると、認証は AIX で行われます。Samba が認証を行うのは、パスワード暗号化が有効になっている場合のみです。

以下のコードを smb.conf に追加します。

	[global]
	     password encryption = no

Samba には存在しないユーザーを AIX で作成してください。このユーザーを使用して Windows クライアント内のドライブに接続すると、AIX がユーザーを認証することがわかります。今度は smb.conf での設定を以下に変更します。

	[global]
	     password encryption = yes

上記のユーザーで接続してみてください。該当するユーザーが存在しないという理由で接続に失敗するはずです。

以上のことから、暗号化が無効に設定されている場合、またはユーザーが AIX には存在していて Samba には存在していない場合、そのユーザーは AIX によって認証されるということがわかります。Samba が認証を行うのは、上記の 2 番目の例のように、パスワードが暗号化されている場合です。

MSDFS 機能

MSDFS では、複数のファイル・サーバーを 1 つの論理名前空間にシームレスに統合することができます。その結果、以下のことが可能になります。

  • ドライブ・マップを 1 つ使うだけで、ネットワーク全体に分散された複数のファイル・サーバーにアクセスすることができます。
  • 複数のファイル・サーバーを同じ名前にマッピングして、データ・アクセスの冗長性および局所性を提供することができます。
  • この複雑な論理および物理トポロジーを、実際にはリモート・サーバーに存在する可能性もあるサブディレクトリーを含めた単一のディレクトリー・ツリー (ドライブ・マップ) として表示します。

MSDFS ルート・ファイル共有のトポロジーとして編成される MSDFS には、ローカルまたはリモートにある別のファイル共有への MSDFS リンクを含めることができます。これらの MSDFS リンクはサブディレクトリーとして表示されるため、ユーザーがリモート・サーバーで適切に認証される限り、リモート・ファイル共有へのリダイレクトはトランスペアレントに行われます (Windows クライアント・ソフトウェアが、MSDFS リダイレクトとリモート・サーバー認証を管理します)。

この機能を Samba で使用するには、smb.conf ファイルの中で MSDFS ルートを指定する必要があります。

	[global]
        	host msdfs  = yes
        	security = user

[tmp]
        	path = /tmp
        	msdfs root = yes
        	public = yes

DFS ルートには以下のようにリンクします。

cd /tmp
ln -s msdfs:beas.in.ibm.com\\radhika t1

上記の beas.in.ibm.com\\radhika は共有です。beas も同じく Samba を実行し、--with-msdfs オプションでコンパイルされます。Windows クライアントの tmp 共有をマッピングすると、t1 のディレクトリーにアクセス可能になります。つまりこの機能を使用すれば、1 つの共有のディレクトリーに DFS ルートから例外なくアクセスできるようになるということです。

ACL サポート

Samba は AIXC と NFSv4 ACL の両方をサポートします。以下で詳細を説明するのは、Samba で NFSv4 ACL を使用する場合の構成です。

v2 拡張属性を /samba に設定して、新規ファイル・システムを作成します。このファイル・システムがサポートする ACL タイプを確認します。

# aclgettypes /samba
Supported ACL types are:
        AIXC
        NFS4

test1.txt というファイルを新規に作成し、そのファイルの ACL を確認します。

# aclget test1.txt
*
* ACL_type   AIXC
*
attributes:
base permissions
    owner(root):  rw-
    group(system):  r--
    others:  r--
extended permissions
    enabled

extended permissions が無効になっている場合には、有効にしてください。次に test1.txt の ACL タイプを NFS4 に変換します。

# aclconvert -t NFS4 test1.txt

test1.txt の ACL を取得します。

# aclget test1.txt
*
* ACL_type   NFS4
*
*
* Owner: root
* Group: system
*
s:(OWNER@):     a       rwpRWaAdcCs
s:(OWNER@):     d       xo
s:(GROUP@):     a       rRadcs
s:(GROUP@):     d       wpWxACo
s:(EVERYONE@):  a       rRadcs
s:(EVERYONE@):  d       wpWxACo

Include a new share for the created filesystem in smb.conf:
[samba]
   path = /samba
   public = yes

UNIX マッピングと NFS4 ACL との間でのマッピングは予測できないため、NFSv4 ACL と ls –l で表示されるリストでのアクセス権限とを比較すると間違った判断に至る可能性があります。

ユーザー「john」(system グループのメンバー) を使用して Windows クライアントのドライブを割り当て、/samba に新規ファイルを作成してください。system グループには削除が許可されていないため、このファイルを削除しようとしてもサーバーによってアクセスが拒否されます。

SMB 署名

SMB 署名は、相互認証機能とメッセージ認証機能を Samba サーバーに提供します。Samba サーバーのデフォルトでは、SMB 署名は無効に設定されています。この機能を有効にすると、すべてのメッセージはデジタル著名を用いて検証されることになります。

SMB 署名を使用可能にするには、smb.conf に以下の内容を追加します。

	server signing = yes

Windows クライアントで SMB 署名を有効にすると、SMB ヘッダーに「Security signatures are enabled (セキュリティー署名が使用可能です)」というコメントが含まれるようになります。

ラージ・ファイルのサポート

ラージ・ファイルとは、サイズが 4G を超えるファイルのことです。Samba サーバーはデフォルトでラージ・ファイルをサポートするため、特にパラメーターを設定する必要はありません。この機能をテストするには、割り当て済みのドライブを使って AIX から Windows クライアントにラージ・ファイルを転送してください。正常に転送できるはずです。

印刷サービス

AIX のプリンター・リソースは共有することができ、Windows クライアントからアクセスすることができます。

例えば、AIX で以下の印刷キューが構成されているとします。

# lpstat
Queue  Dev  Status   Job Files     User       PP %   Blks  Cp Rnk
------ ---- -------- --- ---------- ------ ---- -- --- --- ---
badq    lxx   READY
52ps    hp@9  READY
52cl    hp@9  READY
52vcl   lxx   READY

smb.conf にプリンター共有を追加するには、以下のように構成します。

# cat /usr/lib/smb.conf
[global]
        print command = /usr/bin/lpr -r -P%p %s
        lpq command = cat %p >> /tmp/lpq.log ;/usr/bin/lpq -P%p
        lprm command = /usr/bin/lprm -P%p %j

[52vcl]
        printable = yes
        use client driver = yes
        browseable = yes
        print command = /usr/bin/lp -d 52vcl %s
        path = /tmp
        printing = AIX
        guest ok = yes
        print ok = Yes

これで、構成したプリンターが同じサブネット内の近隣の Windows ネットワークに表示されるはずです。これとは別の方法として、別のサブネットでネットワーク・プリンターを新規プリンターとして追加することもできます。

テスト印刷は、SMB クライアントを使用して以下の方法で行います。

# smbclient //aixfvt49.in.ibm.com/52vcl -U joe
Password:
Anonymous login successful
Domain=[SAMBA] OS=[UNIX] Server=[Samba 3.0.26a]
smb: \> put /etc/motd
putting file /etc/motd as \/etc/motd (6.5 kb/s) (average 6.5 kb/s)
smb: \>

このネットワーク・プリンターには Windows クライアントから要求を送信することができます。

DOS 属性マッピング

Samba は以下のオプションを使用して DOS ファイル属性をサポートします。

	map archive = yes
	map system = yes
	map hidden = yes

以下の図に、DOS 属性によるアクセス許可のマッピングを示します。

DOS 属性によるアクセス許可
fig1

共有ディレクトリー内にファイルを作成するには、いくつかの許可ビットを使用します。SMB クライアント・ツールを使用すると、以下のように表示されます。

AIX から表示した場合:

-rwxrwxrwx    1 john     staff       0 Jan 29 14:25 New Text Document (4).txt
-rwxrwxrwx    1 guest    usr         0 Feb 27 15:23 New Text Document (5).txt
drwxrwxrwx    2 ldapdb2  dbsysadm    256 Feb 08 10:46 SQLDIR.LK0

smbclient から表示した場合:

 New Text Document (4).txt         AHS       0  Tue Jan 29 14:25:56 2008
 New Text Document (5).txt         AHS       0  Wed Feb 27 15:23:34 2008
 SQLDIR.LK0                  	D       0  Fri Feb  8 10:46:05 2008

ディレクトリー変更通知

Samba にはデフォルトでディレクトリー変更通知機能が実装されます。クライアントからディレクトリーに対する変更が行われると (クライアントが新規ファイルを作成するなど)、Samba は「NT NOTIFY」メッセージを生成します。

変更通知の間隔を変更する必要がある場合には、smb.conf を以下のように編集します。

      change notify timeout = 10

NT NOTIFY リクエストおよびレスポンスは、iptrace が表示します。

NETBIOS 未使用の接続

NETBIOS over TCP/IP を無効にしてから Windows クライアントをリブートします。これでドライブに接続しても、正常に接続できるはずです。つまり、Samba では NETBIOS を使用しなくても接続できるということです。

リソース・ブラウジング・プロトコル

Samba は、同じサブネット内にある Windows クライアントの隣接ネットワークで可視になります。

これをテストするには、まずSamba サーバーと同じサブネット内の Windows クライアント・マシンが必要です。以下は、Samba サーバーが jhelum 内で稼働し、9.124.113.100 が同じサブネット内の Windows クライアントであるという前提でのテスト方法です。

smb.conf を以下のように編集します。

[global]
  workgroup = WORKGROUP             
  security = user
[samba4]
  path = /samba4
  writeable = yes
valid users = root

Windows クライアントで近隣ネットワークをブラウズしてみてください。クライアントの近隣ネットワークに含まれる Samba サーバーを確認できるはずです。

ブラウズ・マスター機能

ネットワーク・ブラウジングは、Windows と Samba サーバーが Windows 近隣ネットワーク内に表示されるようにするための概念です。近隣ネットワーク内ではアイコンがサーバーを表し、サーバーが開かれると、そのサーバーで使用可能な共有とプリンターが表示されます。

ドメイン・マスター・ブラウザーは、すべてのサブネット上にあるローカル・マスター・ブラウザーのブラウズ・リストを照合し、ワークグループとサブネット間でブラウズが行われるようにします。また、できればドメイン・マスター・ブラウザーは、それ自体が存在するサブネットのローカル・マスター・ブラウザーにしてください。

Samba をブラウズ・マスターとして機能させるためには、以下のように設定します。

[global]
   local master = yes
   preferred master = yes
   WORKGROUP = SAMBA

nmbd が LAN Manager アナウンスのブロードキャストを繰り返すまで待機する時間 (秒単位) は、smb.conf で以下のように設定します。

     lm interval = 120

ここで、Windows クライアントからの接続をテストします。

SMB クライアント・ツールを使用して、以下のようにしてブラウズ・マスター機能をテストしてください。

# smbclient -L //aixfvt21.in.ibm.com/tmp
Password:
Anonymous login successful
Domain=[SAMBA] OS=[UNIX] Server=[Samba 3.0.26a]
        Sharename       Type      Comment
        ---------       ----      -------
        tmp             Disk
        samba           Disk
        IPC$            IPC       IPC Service (Samba 3.0.26a)
Anonymous login successful
Domain=[SAMBA] OS=[UNIX] Server=[Samba 3.0.26a]
        Server               Comment
        ---------            -------
        AIXFVT21             Samba 3.0.26a

        Workgroup            Master
        ---------            -------
SAMBA	AIXFVT21

以下に、log.nmbd の該当する部分を抜粋します。

[2008/03/27 13:22:10, 0] nmbd/nmbd_become_lmb.c:become_local_master_stage2(396)
  *****

これで、Samba ネーム・サーバー AIXFVT21 が、サブネット 9.124.101.199 にあるワークグループ SAMBA のローカル・マスター・ブラウザーになります。

Samba がブラウズ選択に参加することを確実にするには、local master = yes を指定すればよいだけです。preferred master = yes により、Samba がオンライン状態になるとブラウズ選択が行われるように指定されます。


問題の判別

トレース

クライアントとサーバー間のメッセージ・パケットをトレースするには、AIX で tcpdump コマンドを使用します。

サーバーで、以下のように tcpdump コマンドを開始してください。

tcpdump -s 0 -w <tracefile> host <hostname> and <hostname/ipaddress>

以下はその一例です。

tcpdump -s 0 -w cap_1.cap host aixfvt21 and 9.126.241.144

クライアントとサーバー間でのトランザクションが完了してからでないと、tcpdump をキルすることはできません。作成されたトレース・ファイルは、Ethereal をはじめ、任意のツールを使って表示することができます。

ログ

/var/log.smbd が SMB デーモンからのメッセージを記録し、/var/log.nmbd が nmb デーモンからのメッセージを記録します。

ログ・レベルを引き上げるには、smb.conf で以下のように設定します。 The log levels can be increased by the following in smb.conf:

	[global]
	    log level = 5

必要な場合にはいつでも、これらのログでエラー・メッセージを調べることができます。


まとめ

この記事では、Samba サーバーをセットアップして構成する方法、共有を定義して Windows からアクセスする方法を説明しました。また、さまざまな認証メカニズムについても説明しました。

参考文献

学ぶために

  • The importance of UNIX in SOA environments」(developerWorks、2008年8月) :十分に知り尽くしたオペレーティング・システムに、すでに使い慣れている既存のシステムとアプリケーションをデプロイすることが、現在だけでなく将来にかけての Web ベースのコンピューティング、特に SOA の領域では極めて重要である理由を理解してください。
  • System Administration Toolkit: Monitoring disk space and usage」(developerWorks、2006年6月): 複数の UNIX システムでのディスク使用状況を判別する方法、そして潜在的問題をアラートする単純な警告システムの作成方法を学んでください。
  • developerWorks の AIX and UNIX ゾーンでは、IBM® AIX® システム管理のあらゆる側面、そして UNIX のスキル向上に関する情報を豊富に提供しています。
  • New to AIX and UNIX: このページにアクセスして、AIX と UNIX の詳細を学んでください。
  • developerWorks technical events and webcasts: developerWorks technical events and webcasts で最新情報を入手してください。

製品や技術を入手するために

  • IBM ソフトウェアの試用版: developerWorks から直接ダウンロードできるソフトウェアで、次の開発プロジェクトを構築してください。

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=AIX and UNIX, Open source
ArticleID=361063
ArticleTitle=AIX での Samba
publish-date=11252008