|
Samba 2.2とLinux (Kernel 2.4) による
|
ホスト名がstyrax、IPアドレスが10.1.0.123、ドメイン名がsample.comの場合 <誤った/etc/hosts設定例> 127.0.0.1 styrax localhost.localdomain localhost <正しい/etc/hosts設定例> 127.0.0.1 localhost.localdomain localhost 10.1.0.123 styrax styrax.sample.com |
上記のようにホスト名と外部と通信可能なIPアドレスをマッピングさせる。
ドメイン名(sample.comなど)をつけたFQDNも必要に応じて指定する。
(iii) WindowsクライアントへIPアドレスでping
LinuxマシンからWindowsクライアントへIPアドレスでpingする。
これがエラーになる場合は、Windowsの設定が正しくできていないことなどが考えられる。
(iv) Windowsマシンへ名前でping
LinuxマシンからWindowsクライアントへホスト名でpingする。
これがエラーになる場合は、DNSの設定などが正しくされていないことなどが考えられる。
上記にあげた4つのpingコマンドをWindowsマシン上のコマンドプロンプトでも同様に実行してネットワークが接続されていることと名前解決のための設定が正しくされていることを確認して欲しい。
ここではSamba 2.2日本語版のインストール方法について述べる。
先にあげたLinuxディストリビューションはすべて製品パッケージ管理機能としてRPM(Redhat Pakage Manager)を採用している。
そのためインストールは以下図2の手順で簡単に行える。(必ずrootになっておこなうこと)
他のディストリビューションでも以下の条件を満たしていればインストール可能かもしれない。
図2
自分のディストリビューション用のRPMを ftp://ftp.samba.gr.jp/pub/samba-jp/
からダウンロードする。
Red Hat 7.1の場合は Red Hat 7.2のものは使用できないので、Red Hat 7.1と互換性のあるMIRACLE LINUX V2.0のものを使用すると良い。
$ su - Password: ********** <-----rootのパスワードを入力 # rpm -Uvh samba-2.2*.rpm |
もし、エラーが出てしまったら、図3のようにすべてのSambaモジュールを削除してからインストールしてみて欲しい。
日本Sambaユーザ会で配布しているRPMは1つですべてのSambaモジュールが入るようになっている。
Sambaを削除する時は、/etcにあるsmb.conf , smbpasswd , smbusers , printerdefなどをバックアップしておこう。
図3
インストールされているSambaのパッケージをリストする
# rpm -qa | grep samba
表示されたものをすべて削除する
# rpm -e samba-swat Turbolinuxの場合は上記に加えて以下もsamba-commonの前に削除する必要がある。
# rpm -e samba-debugtools |
もし、先にあげたディストリビューション以外でRPM4ベースのもの場合はSRPMを再ビルドすることでインストール可能なRPMを作成することができる。
図4
# rpm --rebuild samba*.src.rpm |
新しいRPMが作成される場所もまたディストリビューンによって異なるのでメッセージをよく見てどこに作成されるか確認してから図2のコマンドを実行して欲しい。
例えば、Red Hat Linux 7.0の場合は、/usr/src/redhat/RPMS/i386/に作成される。
今回RPM3ベースのディストリビューン用のSRPMやRPMS用意していない。
これらやRPMに対応していないディストリビューンの場合、自分でSambaをソースからコンパイルすることで対応することは可能であるが、初心者には難しい上、解説にはかなりのページを費やすため今回は省略させて頂く。
Sambaの設定はsmb.confファイルに設定パラメータを記述することで行う。
このファイルは、/etc/samba/ディレクトリにある(Turbolinux 7のオリジナルSambaでは/etc/ ディレクトリにある。)
このファイルはviエディタやemacsで編集すればいいが、初心者にはかなり難解であり、経験者でもパラメータのスペルを忘れがちだ。
そうした人のためにSambaには標準でSWATというSamba Web管理ツールが同梱されている。これを使うとWebブラウザからSambaの設定や管理が可能になる。
SWATはhttpプロトコルでアクセスするが、SWAT単体ではサーバとして動かすことはできない。
かといってApacheなどのhttpdサーバにアドオンするものでもない。
SWATにはいくつかの起動方法があり、一般的な方法は以下である。
かつてはinetd経由の起動が多かったが、最近のディストリビューンではinetdの替わりにxinetdを採用するようになったため、Red Hat Linux 7.xやTurbolinux 7.0ではxinetd経由で起動する。
Mirale Linux V2.0もxinetd経由で起動可能であるが、セキュリティの観点から暗号化通信可能なwebmin経由の起動を標準設定・推奨している。
inetd,xinetd経由で使用する場合は、通信が暗号化されずrootのパスワードなどが他者から盗聴可能なのでファイアフォール内のイントラネット以外で使用することは推奨しない。
MIRACLE LINUX V2.0は標準でwebminからSWATを利用可能にしてあるが、Red Hat Linux / Turbolinux では標準で利用できないようになっている。
使用できるようにするには以下の2つのコマンドをrootで実行する。
# chkconfig swat on # service xinetd restart |
Turbolinuxはこれだけで使用できるようになるが、Red HatのオリジナルSambaの場合はリモートからのSWAT接続はできないので、/etc/xinetd.d/swatファイルの以下の行を削除することも推奨する。
only_host=localhost |
SWATの起動方法はWebブラウザから、Red Hat / Turbolinuxの場合 http://Sambaサーバ名:901/ でアクセスし、MIRACLE LINUX V2.0の場合は、https://Sambaサーバ名:10000/ で一旦Webminにログインしてからサーバメニューの中からSambaを探してSWATのアイコンからログインする。
xinetd経由もwebmin経由でも起動時に認証が必要なので、ユーザ名としてrootを、パスワードとしてrootのものを入力する。
図5
しかし、SWATはWindows版のMSIEかNetscapeで使用するようにして欲しい。
理由はNetscape 4.x以前にはバグがあって、入力データをSWATに正確に送らないため、設定を変更するとsmb.confが壊れてしまうことがあるからだ。
Linuxのnetscape4.xからの場合では参照だけにして欲しい。
(Netscape6.xやMozillaでは修正されているようだ)
SWATを使えばディストリビューンやインストール方法によるsmb.confの場所の違いを意識せずにSambaの設定を行うことができる。
具体的な操作方法としては画面の上部にある以下のアイコンをクリックして行う。
SWATの表紙を表示する。
日本語の説明や技術資料を簡単に見ることができる。
Samba全体の設定を行う[GLOBAL]セクションの設定ができる。
セキュリティ モードもこの中で設定する。
共有フォルダ毎の設定ができる。
ユーザホーム機能を提供する[homes]セクションもここで設定する。
プリンタ共有の設定をする。
プリンタ共有全体を提供する[printers]セクションもここで設定する。
Sambaデーモンの起動・終了ができる。加えて、誰が共有ファイルをアクセスしているか表示される。
ユーザのセッションを強制切断することも可能だ。
smb.confの内容を表示する。
しかし、これはSWATが認識できたものであり、smb.confの内容そのままではない。トラブル時は実際のファイルも確認して欲しい。
ユーザの追加・削除、パスワードの変更などを行える。
該当マシンのSambaユーザの追加・削除・パスワード変更に加え、リモート(別マシン)のWindows NT/2000 Server およびSambaユーザのパスワード変更も可能だ。Security=domainおよびserverを使っている場合はこの機能を使ってパスワード変更する。
Sambaを使用するにあたってはSWATの表紙にある「導入編」にあるドキュメントは、必ず目を通しておこう。
Sambaの設定に先だってまず以下の4つのセキュリティ・モードから1つを選ぶ必要がある。
共有(ファイル/プリンタ)を個別のユーザを使ってアクセスする。
必ずUNIXアカウントが必要なので、新規ユーザのためには新しくアカウントを作成する必要がある。
SambaだけでWindowsドメインやWindowsワークグループを作成する場合に適しているが、パスワードはLinux用とは別にSamba専用のものを別に管理する必要がある。これがデフォルトの値である。
共有(ファイル/プリンタ)を個別のユーザを使ってアクセスする。
必ずUNIXアカウントが必要なので、新規ユーザのためには新しくアカウントを作成する必要がある。
しかし、ユーザ認証はWindowsドメインにしてもらうため、Samba専用のパスワード管理は不要である。
すでに、Windowsドメインが構築されていて、そこにSambaマシンを追加する場合に適している。
また、Samba 2.2.2からサポートされたwinbindを使用する場合もこのモードを使用する。
Samba 2.0/2.2では上記security=userまたはdomainでシステム運用することを推奨する。以下に述べる2つのセキュリティ・モードも存在するがセキュリティ強度の問題からあまり推奨しない。
共有(ファイル/プリンタ)を決まった固定ユーザを使ってアクセスする。
(認証ユーザを共有する)
パスワードだけで、アクセス制御できるため、新規ユーザのために新しくアカウントを作成する必要がない。
小規模な部門サーバやSOHO用に適しているが、不特定多数が使用する(個別にアカウントが作成できない)場合にも対応できる。
共有(ファイル/プリンタ)を個別のユーザを使ってアクセスする。
必ずUNIXアカウントが必要なので、新規ユーザのためには新しくアカウントを作成する必要がある。
しかし、ユーザ認証は他のWindowsサーバやSambaサーバにしてもらうため、Samba専用のパスワード管理は不要である。
すでに、SambaやWindowsによるWindowsワークグループが構築されていて、そこにSambaマシンを追加する場合に適している。
では、「全体設定 [GLOBALS] 」アイコンをクリックして、設定を開始する。パラメータはたくさんでてくるが、重要なパラメータだけを解説する。
SWATは、最初重要なパラメータまたはデフォルト以外を設定しているパラメータを表示する。
「詳細表示」ボタンを押すことですべての設定可能パラメータを表示させることができる。
もし、「coding system」と「client code page」の2つのパラメータが設定されていなければ「詳細表示」のボタンを押して忘れずに設定する。この2つを指定していないと日本語ファイル名は使用できない。
Linuxマシン側で扱う日本語ファイル名のコーディングシステムを指定。
eucを推奨するが、sjis,hex,capなども選べる。詳細は機能編を参照して欲しい。
クライアントに日本語Windowsを使用する時は、932を必ず指定する。
Sambaの所属する(あるいはクライアントへ応答する)Windowsワークグループ名/Windowsドメイン名を指定する。
Windowsクライアントで指定するものと同じワークグループ名/ドメイン名を指定すると良い。
「ネットワークコンピュータ一覧」で詳細表示した時、「サーバの説明」と「プリンタの説明」に表示する文字列を指定する。
文字列の中の%v は Samba バージョン番号と置換され、%h は ホスト名に置換される。
既定値: server string = Samba %v
例: server string = Samba %v on %h Linux
先に説明したセキュリティ・モードを指定する。
UNIXにユーザアカウントがない場合、guest接続を許すかどうか指定する。設定は下記の3 種類がある。
暗号化されたパスワードを使用するかどうか、指定する。
最近のWindowsでは暗号化パスワードが必須なので必ずyesとする。
暗号化パスワードは/usr/bin/smbpasswdコマンドによって/etc/samba/smbpasswdに格納される。
以下を指定することを推奨。
(TCPネットワークに詳しくない方は変更しないこと)
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
SWATの入力項目に必要なパラメータを入力したら、「設定」ボタンを押して確定する。
以下に設定例をあげる。
解説しなかったパラメータについてはSWATのヘルプで機能を確認して欲しい。
図13
[global] coding system = euc client code page = 932 server string = %h : Samba %v encrypt passwords = Yes map to guest = Bad User passwd program = /usr/bin/passwd %u passwd chat = *New*password* %n\n *Re*new*password* %n\n *success* unix password sync = Yes log file = /var/log/samba/log.%m max log size = 50 deadtime = 15 read size = 65536 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 lm announce = False dns proxy = No level2 oplocks = Yes dos filetimes = Yes dos filetime resolution = Yes [printers] comment = All Printers path = /var/spool/samba printable = Yes browseable = No [homes] comment = %S's Home Directories writeable = Yes browseable = No [PUBLIC] comment = Public Space for Everyone path = /home/samba/public writeable = Yes force create mode = 0664 force directory mode = 0775 guest only = Yes guest ok = Yes [NETLOGON] comment = Script for Domain Logon path = /home/samba/netlogon admin users = administrator write list = administrator guest ok = Yes |
続いてファイル共有の設定をしてみる。ここでは、全体設定で「security = user (または、domain , server)」を選択したことを前提に解説する。( 「security = share (共有認証モード)」 では、動きが異なる)
SWATの「共有設定」のアイコンを押す。次に新規の共有名を入力し、「新規共有作成」のボタンを押すとパラメータの入力画面が出てくる。
ここでは、例として共有名を「企画」として説明する。
SWATで設定する場合は自動変換するので意識する必要はないが、smb.confの中に指定する文字(共有名やコメント)はcoding systemに合わせた日本語コードで記述する必要がある。
Samba日本語版では、日本語の取り扱いについてオリジナルより改良されているが機種依存文字や外字を使用するのは止めた方が良い。
共有名のコメント(説明)を記述する。40バイト以下にすること。
例: comment = 企画の共有フォルダ
このパラメータは、共有するLinux上のディレクトリを指定する。
例: path = /home/kikaku
更新のある共有は、read only = No またはwriteable = yesとする。
Samba によって作成されるファイルに設定されるUNIX のモード・ビットのパーミッションを4桁の8進数で指定する。
Samba によって作成されるディレクトリに設定されるUNIX のモード・ビットのパーミッションを4桁の8進数で指定する。
クライアントが接続したときのユーザ名は無視され、全てのファイル操作は「強制されたユーザ forced user」によって実行されたことになる。
guest ok = yes の時、全てのファイル操作は guest によって実行されたことになる。
接続するときにパスワードが不要になり、guestでアクセス可能となる。
net view コマンドの出力や「ネットワーク コンピュータ」の共有一覧にこの共有を見せるかどうか指定する。
ただし、ユーザホーム機能を提供する[homes]の場合は、browseable = Noとする。
既定値: browseable = Yes
これらの入力が終わったら、「設定変更」のボタンを押す。これで、Linux側の ディレクトリ が Windows 側に共有されることになる。
今回は、公開範囲を3レベル想定し、以下に3つの例をあげる。
/home/kikaku の属性を 775(rwxrwxr-x)とし、同一のUNIXグループだけが更新でき、他のUNIXグループは参照が可能な共有を作成する。(valid usersとinvalid usersで、更にグループ内のユーザを制限可能)
UNIXにアカウントとパスワードの設定のないものはアクセスできない。
[企画] comment = 企画の共有フォルダ path = /home/kikaku read only = No create mode = 0664 directory mode = 0775 |
/home/kikaku の属性を 755(rwxr-xr-x)とし、ディレクトリの所有者をkikauというUNIXユーザとする。
UNIXにアカウントとパスワードの設定のあるものは、この共有に誰でもアクセス(更新・参照)できる。
しかし、UNIXにアカウントのないものはアクセスできない。
[企画] comment = 企画の共有フォルダ path = /home/kikaku read only = No force user = kikaku # 全員が、kikakuというUNIXユーザでアクセスする。 |
/home/kikaku の属性を 755(rwxr-xr-x)とし、ディレクトリの所有者をnobodyというUNIXユーザとする。
UNIXにアカウントがあっても、なくても誰でもアクセス(更新・参照)できる。
[global] map to guest = bad user # UNIXにアカウントがない場合は、guestでアクセス可能とします [企画] comment = 企画の共有フォルダ path = /home/kikaku read only = No guest only = Yes # アカウントのあるユーザもguestでアクセスさせます。 guest ok = Yes |
SWATを使って設定がうまくいったら、以下のいずれかの方法でSambaを起動する。
SWATの状態表示(STATUS)ページを開いて、smbd (ファイル共有デーモン) と nmbd (ネームサービスデーモン) を開始させる。
●コマンドで起動
rootになって以下のコマンドを実行する。
service smb start |
●システム起動時に起動
OS起動時にSambaが自動的に起動するように以下のコマンドをrootで実行する。
chkconfig smb on |
システムをリブートすると起動する。
新しくSambaユーザを登録するには、まずLinuxのユーザーを登録する必要がある。
以下はSambaに限った方法ではなく、一般的なユーザーの登録方法だ。
# useradd ユーザ名 |
実行例)
# useradd odagiri |
MIRACLE LINUX V2.0で標準インストールされるWebminを使用する場合は、「UnixとSambaユーザの自動同期」機能を使用すると、Linuxユーザのアカウント、パスワードを作成するときに自動でSambaユーザの設定をすることが可能だ。
(smb.confのunix password sync と異なるが併用すると良い)
使用方法は、各種サーバ設定画面の「Samba Windowsファイル共有」をクリックするとSambaの設定画面となるので「UnixとSambaユーザの同期の自動化を設定」をクリックし、以下を設定する。
GUIのツール(linuxconfなど)もしくはLinuxユーザの設定情報は/etc/passwdなどに格納される。
Sambaのユーザーは、Linuxのユーザー設定に加えSamba独自の設定が必要となる。
以下のようにSambaユーザを登録する。
# smbpasswd -a odagiri New SMB password: <-----パスワードを入力 Retype new SMB password: <-----再度パスワードを入力 |
次に Windows95/98/NT クライアント側の設定について解説する。
基本的に何ら設定を変更することはないと思うが、もしうまく接続できない場合は以下を確認して欲しい。
図14にWindows2000の設定例をあげる。
図14.Windows 2000の設定
Samba サーバの設定で新規にワークグループを構築した場合は、ワークグループ名をサーバで設定したものにあわせると良い。
(注1)
Samba サーバを既存のワークグループに参加させた場合は、クライアント側では何も設定する必要はない。
(注2)
実際には Samba サーバにアクセスするためには、必ずしもワークグループ名が同一である必要はない。
例えば WINS 等で名前解決が出来ていれば UNC名(\\サーバ名\共有名)を直接指定してアクセスしても構わない。
Windowsの「スタート」ボタンをクリックし、「ファイル名を指定して実行」を開き、名前入力の中へ「\\サーバ名」もしくは「\\サーバ名\共有名」を直接指定して実行してみて欲しい。コンピュータの共有一覧やファイル一覧が表示されれば問題ない。
もし、うまくアクセスできなければ以下を参考に調査して欲しい。
Sambaサーバで共有プリンタを使うには、まずLinux上でプリンタを使用できるようにする必要がある。
今回はRedHat 7.1系でよく使われるプリンタ設定ツール(printconf-gui)を使った方法を紹介する。
Miracle Linux V2.0 / Red Hat Linux 7.xの場合、GNOMEの「プログラム」−「システム」−「プリンタ設定」から移動する。
図15.printconf-gui
「新規」ボタンを押してプリンタを作成する。
図16.プリンタを新規作成
Sambaのプリンタでは、「プリンタ・ドライバ」で「Rawプリントキュー」を指定し、プリントフィルタが動作しないようにする。
図17
プリンタが定義できたら適用ボタンを押して、lpdを再起動する。
図18
Sambaの場合は、プリンタ毎の設定は通常必要ない。きめ細かな設定が必要な時のみプリンタ毎に設定する。
なぜなら、OS(の/etc/printcap)に設定してあるすべてのプリンタを、Sambaで公開する設定の「load printers = yes」はデフォルトなので通常指定する必要はないからだ。
最低限SWATの「プリンタ設定」で以下をデフォルト設定がしてあればすぐにプリンタが使用できる。
[printers] path = /var/spool/samba writeable = no guest ok = yes printable = yes |
Sambaのプリンタをクライアントから使用するには、(Linux側にプリンタドライバは必要なく)クライアント側にプリンタドライバが必要だ。
プリンタを設定するには、「ネットワークコンピュータ」からSambaマシンをクリックして、現れるプリンタアイコンをダブルクリックするだけでインストールが開始される。
プリンタドライバの場所を聞いてきますので、プリンタに付属していたものやインターネットで最新のWindows用のものをダウンロードして使用する。
共有の表示時に、クライアントのユーザ名を共有名としてマッピングして表示する機能だ。
たとえば、yamadaというアカウントでSambaマシンをアクセス(ネットワーク・コンピュータをクリック)した場合、UNIX上の/home/yamadaが共有名yamadaとして表示され、また、suzukiというアカウントでSambaマシンをアクセス(ネットワーク・コンピュータをクリック)した場合はUNIX上の/home/suzukiが共有名suzukiとして表示される。
これによってユーザごとの専用のディレクトリを提供し、他人のディレクトリをアクセスするのが防げる。
SWATの「全体設定」で[global]を設定し、「共有設定」でhomesという共有を作成する。
[global] security = USER encrypt passwords = Yes [homes] comment = %Sさん専用の共有です valid users = %S read only = No browseable = No |
Windows ドメインがすでに存在する場合、Samba は,Windows NT / 2000 Workstation のようにWindowsドメインに参加することが可能だ。
ドメインに参加することで、認証を Windows ドメインに統合して、よりシームレスな運用が可能になる。
まず準備として Windows NT/2000 Serverの "サーバマネージャ"(svrmgr.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 サーバを起動する。
[global] security = DOMAIN encrypt passwords = Yes workgroup=DOMNAME # ドメイン名を指定します password server = DOMPDC # ここは、* も指定可能。 |
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 2.2は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 9x / Meクライアントの側では,[コントロールパネル] - [ネットワーク]- [Microsoft ネットワーククライアント] のプロパティを以下のように設定する。
図19
また Windowsドメインでの設定と同様に、[コントロールパネル] -[パスワード] の"ユーザ別の設定" タブで,以下のように,ユーザ別の設定" をチェックしておくことで、ユーザプロファイルの利用も可能になる。
図20
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 サーバにアクセスできるようになる。
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ポートを通すようにすると良い。
小田切 耕司