[an error occurred while processing this directive]
Contents
Sambaとは?
Samba日本語版
ドキュメント
技術情報
紹介&リンク
Community
プロジェクト
メーリングリスト
イベント
ユーザー会
etc...
お問合せ
ご支援・ご協力
日本 Samba ユーザ会 (Samba Users Group Japan)

Samba 2.2とLinux (Kernel 2.4) によるWindowsネットワーク構築ガイド

<Samba使いこなしテクニック(応用編)>

◎ユーザホーム機能の使い方

共有の表示時に、クライアントのユーザ名を共有名としてマッピングして表示する機能だ。 

たとえば、yamadaというアカウントでSambaマシンをアクセス(ネットワーク・コンピュータをクリック)した場合、UNIX上の/home/yamadaが共有名yamadaとして表示され、また、suzukiというアカウントでSambaマシンをアクセス(ネットワーク・コンピュータをクリック)した場合はUNIX上の/home/suzukiが共有名suzukiとして表示される。

これによってユーザごとの専用のディレクトリを提供し、他人のディレクトリをアクセスするのが防げる。

●smb.conf設定例

SWATの「全体設定」で[global]を設定し、「共有設定」でhomesという共有を作成する。

[global]
security = USER
encrypt passwords = Yes
[homes]
comment = %Sさん専用の共有です
valid users = %S     
read only = No
browseable = No

◎SambaをWinodwsドメインに加える

Windows ドメインがすでに存在する場合、Samba は,Windows NT / 2000 Workstation のようにWindowsドメインに参加することが可能だ。
ドメインに参加することで、認証を Windows ドメインに統合して、よりシームレスな運用が可能になる。

●Windowsドメインへの参加方法

まず準備として Windows NT/2000 Serverの "サーバマネージャ"(srvmgr.exe) を使ってSambaマシンをWindows NT WorkstatonとしてWindowsドメインに追加する。

その後 Samba マシン上でドメイン参加の手続きを行なう。

参加するWindowsドメインの名前が DOMNAME , PDC(プライマリ・ドメイン・コントローラ) のコンピュータ名が DOMPDC の場合の方法は以下の通りだ。

# service smb stop <-- Samba サーバの停止
# smbpasswd -j DOMNAME -r DOMPDC
smbpasswd: Joined domain DOMAIN. <-- 成功したときに表示されるメッセージ 

事前に忘れずに Samba サーバを停止させること。

また、-r オプションでは、必ず PDC のコンピュータ名(上記の例では DOMPDC)で PDC を指定する必要がある。
エラーになる場合は、PDC のコンピュータ名と IP アドレスを /etc/hosts に記述しておく。

これを確認したら、以下のように security パラメータを DOMAIN にして、Samba サーバを起動する。

●SWATで設定するsmb.confの内容

[global]
security = DOMAIN
encrypt passwords = Yes
workgroup=DOMNAME                             # ドメイン名を指定します
password server = DOMPDC                          # ここは、* も指定可能。 

●add user script と del user script を設定する

Samba サーバをWindowsドメインのメンバにしたことで、Windowsドメインにログオンしたユーザであれば Samba サーバにもシームレスにアクセスできるようになる。

そこで更に一歩進んで、Samba サーバ上でのアカウントのメンテナンスを自動化する方法を解説する。
まず、一例として以下のようなスクリプトを /usr/local/sbin に作成する。

スクリプト( /usr/local/sbin/smb-useradd.sh ) の例

#!/bin/sh
/usr/sbin/useradd -m $1
mkdir ~$1/public_html                          # これは、ApacheのためのWebホームディレクトリ 

スクリプト( /usr/local/sbin/smb-userdel.sh ) の例

#!/bin/sh
/usr/sbin/userdel -r $1 

次にSWATでsmb.confに、以下の、add user script と del user script パラメータを設定する。

smb.confの設定

[global]
add user script = /usr/local/sbin/smb-useradd.sh %u
delete user script = /usr/local/sbin/smb-userdel.sh %u 

これで、Windows ドメインにアカウントがあるが、Samba サーバにはアカウントがないユーザで Windows ドメインにログオン後、Samba サーバにアクセスすると、自動的ユーザが登録されホームディレクトリが表示される。

add user script を設定すると、Windowsドメインで認証されているにも関わらず、Samba サーバに存在しないユーザでアクセスがあったときに、add user script で指定したスクリプトを実行してユーザを自動的に作成することが出来るのだ。

del user script は、同様にユーザがWindowsドメインに存在しなくなったときに自動的に消去するためのスクリプトだ。

これらを活用することで、Windowsドメイン上でのユーザの追加/ 削除のみで、Samba サーバ上に自動でユーザの作成/ 削除を行なうが可能になり、管理コストが大幅に削減される。


◎SambaによるWindowsドメインコントローラの構築

Samba 2.2はWinodwsドメインコントローラとして機能することが可能になっている。

●SambaをWinodwsドメインコントローラとして設定する

まず、SWATの「全体設定」で smb.conf を設定して下さい。

[global]
security = USER
encrypt passwords = Yes
domain logons = Yes
domain master = yes
wins support = yes
local master = yes
preferred master = yes
os level = 65
workgroup=ドメイン名
logon script=%U.bat 

次に「共有設定」で[netlogon]共有を作成し、以下のように設定する。

[netlogon]
path = /home/samba/netlogon
writeable = no
guest ok = yes

動作確認のために、Windows クライアント上で 以下のようなログオンスクリプトを記述し,Samba サーバの [netlogon] 共有にユーザ名.batという名前で配置しておく。

net use * \\サーバ名\ユーザ名 
pause                            #動作確認したらこの行は削除しよう

●Windows 95 / 98 / Me クライアントの設定

Windows 9x / Meクライアントの側では,[コントロールパネル] - [ネットワーク]- [Microsoft ネットワーククライアント] のプロパティを以下のように設定する。


図19

また Windowsドメインでの設定と同様に、[コントロールパネル] -[パスワード] の"ユーザ別の設定" タブで,以下のように,ユーザ別の設定" をチェックしておくことで、ユーザプロファイルの利用も可能になる。


図20

●Windows NT / 2000 / XPの設定

Windows 9x / Meはドメイン・ログオンするのにSamba PDC上で何も設定が必要ないが、SambaとWindows NT/2000/XPをドメイン・メンバに加える場合は、PDCマシンの上でドメイン・メンバ・マシンのマシンアカウントを作成する必要がある。

PDCマシン上でrootになり、以下を実行する必要がある。
(#の後が入力内容)

# smbpasswd -a root 

上記は、1度だけ実行し、rootのパスワードを設定する。

Windowsのadministratorから管理をしたい場合は、このユーザも以下のように追加した方が良いだろう。

# useradd administrator
# smbpasswd -a administrator

Sambaのユーザ・アカウントは英大文字は使用せず、英子文字、数字のみで15バイト以下とすること。(日本語も使用不可)

そして、マシン・アカウント用のグループも作成した方がいいだろう。

# groupadd machines

以下はドメイン・メンバのマシン分実行する。

# useradd -g machines -d /dev/null -s /bin/false マシン名$
# smbpasswd -a -m マシン名

useraddの時、マシン名の後に$をつけたものをLinuxユーザとして登録する必要があるので気をつけて欲しい。
(マシン名は英大文字は使用せず、英子文字、数字のみで15バイト以下とすること。日本語も使用不可)

Windows NT/2000/XP上では以下の作業を行う。

(1) Administratorとしてログオンする。

(2) コントロールパネルの「システム」のプロパティを起動し、「ネットワークID」タブの「ネットワークID」のボタンを押す。


図21

(3) 「ユーザアカウントとドメイン情報」の入力で、Samba PDCで設定したrootユーザとrootのパスワード、ドメイン名を入力する。


図22 

(4)  「ドメインへようこそ」というダイアログが表示されることを確認する。

(5) Windows XP Professionalの場合、以下の設定を変更しないとドメインログオンできない。

「コントロールパネル」の「管理ツール」から「ローカル セキュリティ ポリシー」を起動し、「ローカル ポリシー」の「セキュリティ」オプションにおいて、「ドメイン メンバ:常にセキュリティ チャネルのデータをデジタル的に暗号化または署名する」を「無効」にする。


図23 (クリックすると拡大します)

これでWindows 2000と同等のレベルになり、問題なくSambaドメインログインできる。

●ドメインログオン

設定を行なったら、Windows クライアントをリブートし、設定したWindowsドメインにログオンする。
ログオンスクリプトが動作すれば、設定は正しく動いている。

Samba サーバが複数台ある時は、一台のサーバをWindowsドメインコントローラとして設定し、残りのサーバは security パラメータを domain にして、認証サーバとしてドメインコントローラの Samba サーバを指定すれば、Windows ドメイン環境のように、一度認証を受ければ、すべての Samba サーバにアクセスできるようになる。


◎LinuxからWindowsファイルシステムを使用する(smbmount機能)

Sambaを使ってWindowsの共有フォルダをLinuxのファイルシステムとしてマウントすることが出来る。
iocharsetパラメータで表示の漢字コードも指定できる。LinuxのktermなどはEUCが標準なのでeuc-jpを指定しよう。

使用方法)

# mount -t smbfs -o username=Windowsユーザ名,password=Windowsパスワード,codepage=cp932,iocharset=euc-jp //サーバ名/共有名 マウント先

例)Windows共有 \\odagirixp01\shareddocs にユーザ名Administrator パスワードmiracle で接続し、Linuxの/mnt/smb1 にマウントする。

# mount -t smbfs -o username=administrator,password=admin12,codepage=cp932,iocharset=euc-jp //server1/share1 /mnt/smb1

これで、マウントの設定は終わりだ。

実際にマウントされているかどうかを df コマンドを使って確かめると良い。
マウントされた共有は、通常のファイルシステム同様に cd や ls などのコマンドを使って操作することができる。


図24

しかし、Windows のTCP/IPフィルタリング機能やファイアウォールソフトを使っている場合は接続できないことがあるので気を付けて欲しい。


図25 (クリックすると拡大します)

外部からのファイル共有を受け付けるにはポート139番のTCPポートを受け付けるようにすればよい。

ブラウジングや名前解決で問題が出る場合は、137番のUDPポートと138番のTCPポートを通すようにすると良い。


小田切 耕司


ミラーサイト: [ WWW: master ] [ FTP: ring | kddilabs | plathome | mex | master ]

Copyright © 1999-2019 日本 Samba ユーザー会 (Samba-JP)
2011-12-19 01:17:50 JST 更新