(注:記事は執筆時の情報に基づいており,現在では異なる場合があります)

●winbind gid

図3●/etc/pam.d/system-authの設定
写真1●サーバーマネージャ

 WinbindがUNIX/Linuxユーザーに割り当てるgid(グループID)の範囲を指定する。/etc/groupや/etc/passwd,およびNISの中では使用されていない範囲を指定しなければならない。

(デフォルト)winbind gid = なし
(使用例)winbind gid = 10000-20000

●winbind cache time

 Winbindデーモンがユーザー情報やグループ情報をキャッシュする時間を秒単位で指定する。

(デフォルト)winbind cache time = 15

●winbind enum users

 大規模システムでのユーザー一覧取得を抑制するためのオプション。デフォルトはyesだが,noにするとsetpwent(), getpwent() ,endpwent() のシステム関数で一覧が取得できなくなり,fingerなど一部のプログラムが動作しなくなることがある。

●winbind enum groups

 大規模システムでのグループ一覧取得を抑制するためのオプション。デフォルトはyesだが,noにするとsetgrent(), getgrent() , endgrent()のシステム関数で一覧が取得できなくなり,一部のプログラムが動作しなくなる可能性がある。

●template homedir = /home/%D/%U

 ユーザーのホーム・ディレクトリを指定するオプション。デフォルトは,/home/ドメイン名/ユーザー名となる。

●template shell = /bin/false

 ユーザーのデフォルト・シェルを指定するオプション。デフォルトは,/bin/falseであるので,この場合はLinuxにtelnetやsshでログインすることはできない。ログインできるようにするには,template shell = /bin/bash などと,実存するシェル設定する。

(4)NSSWITCHの設定

 該当マシンをSambaでしか利用しない場合(telnetやftpで使用しない場合)は,nsswitch.conf(ネーム情報の入手元を記述したファイル)の設定だけでWinbindが利用可能になる。具体的には,/etc/nsswitch.confの中で以下の行を探し,“files nisplus nis”を“files winbind”に変更すれば良い。なお,Winbindを動かすドメイン・メンバー・マシンが複数台ある場合にはそのすべてに設定を行う必要がある。

<変更前の例>
passwd: files nisplus nis
group: files nisplus nis
<変更後の例>
passwd: files winbind
group: files winbind

(5)PAMの設定

 該当マシンをSambaでだけでなくtelnetやftpでも使用する場合は,そのマシンへの認証方法を指定するため,PAMの設定も必要である。/etc/pam.d/system-authファイルに,図3[拡大表示]のように次の2行を追加する。なお,Winbindを動かすドメイン・メンバー・マシンが複数台ある場合には,そのすべてに設定を行う必要がある。

auth sufficient /lib/security/pam_winbind.so
account sufficient /lib/security/pam_winbind.so

(6)Windows NT4.0/2000 Serverでの設定

 SambaでWinbind機能を利用する(デーモンを起動する)前に,Sambaマシンをドメインに加える必要がある(必要に応じて,このWindowsサーバー・マシンをWINSサーバーやDNSサーバーにすると良い)。それには,Windowsドメインのドメイン・コントローラであるWindows NT4.0/2000 Server上の "サーバーマネージャ"(SRVMGR.EXE) を使って,SambaマシンをWindows NT WorkstatonとしてWindowsドメインに追加する(写真1[拡大表示])。このとき,ドメインに参加するすべてのWindows NT/2000/XPマシンも登録すると良い(Windows 95/98/Meを登録する必要はない)。なお,Windows2000では"サーバーマネージャ"がスタート・メニューに存在しないので,「ファイル名を指定して実行」を使ってSRVMGR.EXEを起動する。

(7)Sambaマシンのトラスト・アカウントを作成

 Sambaサーバーを停止し,PDCの名前解決とpingができることを確認しておこう。例えばPDCのコンピュータ名が「DOMPDC」の場合は,ping DOMPDCが正常に実行されるかを確認すれば良い。うまくいかないときは,PDCのコンピュータ名とIPアドレスを/etc/hostsに記述するか,もしくはLIBNSS_WINS(別掲記事「libnss_winsの使用方法」を参照)を設定する。

 次に,ドメインのメンバーになるすべてのSambaマシンの上で,rootユーザーになって,ドメインに参加するためのトラスト・アカウントを作成する。参加するWindowsドメインの名前が「DOMNAME」, PDCのコンピュータ名が「DOMPDC」の場合は,次のように入力すれば良い。

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

libnss_winsの使用方法

 Windows NT/2000サーバーによるドメイン構成で,Windowsマシンの名前解決にWINS(Windows Internet Name Service)を利用しているネットワークに,後からSambaサーバーをドメイン・メンバーとして追加するケースでは,Sambaマシン自体がWINSクライアントにもなれるので,Sambaマシンの名前解決は容易に実現できる。

 ところが,SambaマシンをWindowsクライアントから利用する際に,Samba(Linux)マシンからWindowsクライアントの名前解決ができないと,接続が遅くなったり,telnetやftpなどがつながらないといった問題が発生することがある。

 通常,UNIX/Linuxでのホスト名の名前解決にはDNS(Domain Name System)やhostsファイル,NIS(Network Information System)が使われ,WINSは参照しない。このため,LinuxのpingではWindowsマシンの名前解決ができないことが起こり得る。DNSでLinuxやWindowsサーバーを管理すれば問題ないように思えるかも知れないが,WindowsクライアントをWINSやDHCPのみで管理している場合にLinuxマシンからWindowsクライアントの名前解決ができなかったり,古いWindowsマシンではDNSによるNBT(NetBIOS over TCP/IP)による名前解決ができなかったり,ダイナミックDNSが利用ができなかったりするなど,細かい制限事項があって万全ではなかった。

 libnss_winsを利用すれば,UNIX/LinuxマシンにおいてWINSによる名前解決もできるようになる。libnss_winsは,UNIX/LinuxのNSSWITCH(ネーム・サービス・スイッチ。ネーム情報の入手元を切り替える)機能を使って,UNIX/Linux上でWINSによる名前解決機能を実現するものである。Linux以外でもSolarisやHP-UXなど多くのUNIXで提供されている。

 なお,WINSサーバーには,SambaマシンとWindows NT/2000サーバーだけがなれる。Windows NT/2000サーバーをWINSサーバにするには,コンポーネントの追加で「Windows Internet Service」を選べば良い(ワークステーションやWindows 9xはWINSサーバーになれない)。WINSクライアントには,Windows 95以降のすべてのWindowsマシンとSambaマシンがなれる。

 libnss_winsを利用するには,/etc/nsswitch.confの中で以下のhosts行を探し,変更する。

<変更前の例>
hosts: files nisplus nis dns
<変更後>
hosts: files wins dns

この変更により,ホストの名前解決時には,まず/etc/hostsを検索した後,DNSに問い合わせる前に,WINSに問い合わせをするようになる。

 リモートのWINSサーバーのアドレスは,smb.confの中に以下のように指定する。
wins server = 123.45.56.78

 Sambaが動作するマシン自身をWINSサーバーとして機能させる場合は,ローカル(127.0.0.1)を参照するよう,smb.confの中に次のように指定する。

wins support = yes

 WINSの設定は,SambaマシンやWindowsクライアントすべてで統一しておかないと意味がない(バラバラだとトラブルの元になるので注意してほしい)。


(ミラクル・リナックス 小田切 耕司)


(次回に続く)