Tips記事
» 2000年10月18日 00時00分 UPDATE

ファイルサーバにしてWindowsからアクセスしたい(Samba)

[木田佳克,ITmedia]

 ネットワーク経由でWindowsからLinux上のファイルを読み書きできるようにするには,「Samba」(サンバ)と呼ばれるサーバソフトを利用するのがよい。

 動かすまでのポイントは,「smb.confの設定」と,Windows98以降からのアクセスであれば「Samba側で暗号化認証を行う」ように設定する点だ。

 Red Hat系のLinuxであれば,「日本Sambaユーザ会」サイトでRPMが配布されているのでこれを利用するのが手軽だろう。また,ディストリビューションの多くでは英語版Sambaが含まれているため,上記のサイトから最新の日本語版を入手したほうがよい。

 まず最初に,次のような手順で現在のマシン上にSambaがインストールされていないかを確かめよう。すでに英語版や日本語版の古いバージョンがインストールされている場合には,いちどrpmの「-e」オプションで削除してからインストールした方がよい。この際には,念のため設定ファイルをバックアップすることを忘れずに行おう。手順は次の通りだ。

$ rpm -qa |grep samba
samba-2.0.x-x.x ←見つかった場合はアンインストール
# cp /etc/smb.conf /etc/smb.conf.bak
# rpm -e samba-2.0.x-x.x
# rpm -ivh samba-2.0.7-ja_1.3.i386.rpm
samba ##################################

 次に設定ファイル(smb.conf)を編集しよう。Sambaをインストールすると,あらかじめサンプルとしてsmb.confが用意されている。これを編集して設定するのもよいが,ここでは必要最低限な項目を設定した例を挙げておく。なお,viエディタを使った操作がめんどうであれば,Webブラウザ経由で行う方法もある(「Swatが動かない」のTipsを参照)。

 すでに設定済みであれば,先ほどバックアップしたファイルを元に戻しておこう。ただし,Sambaのバージョンによっては,smb.conf(後述のsmbpasswdを含む)の保存先が/etc/から/etc/samba/に変更されている場合があるため注意が必要だ。

# cp /etc/smb.conf.bak /etc/smb.conf

 Sambaでどのディレクトリを共有するかは,次の設定ファイルで設定する。ここでは,それぞれの設定内容については触れないが参考にしてほしい。

# vi /etc/smb.conf

※/etc/smb.confの設定例
[global]
workgroup = ZDNET
netbios name = MISTIO
server string = Samba-2.0.7-ja on mistio
encrypt passwords = Yes
password level = 8
username level = 8
log file = /var/log/samba/log.%m
max log size = 50
announce version = 4.0
coding system = cap
os level = 65
preferred master = Yes
wide links = No
dos filetimes = Yes

[homes]
comment = Home Directories
read only = No
browseable = No

注:この設定はアクセスするユーザーのホームディレクトリのみを共有する例だ。

 次に,Samba側で暗号化認証をサポートさせよう。

 Windows98/NT4.0(SP3以降)/2000からSambaにアクセスする場合,Windows側ではパスワード認証が暗号化された状態でアクセスされるため,ここまでの設定ではアクセスできない。Samba側も暗号化対応にさせる必要があるのだ。

 例外として,Windows側を平文パスワード(テキストプレーン)にさせてしまうこともできるが,セキュリティレベルを落としてしまうため避けたい。

 まず最初にSamba用のパスワードファイルを作成する(smbpasswd)。Linux自体で利用しているpasswdファイルとは別に管理する必要があるのだ。

# cat /etc/passwd | sh mksmbpasswd.sh > /etc/smbpasswd
# chmod 600 /etc/smbpasswd

 Sambaアクセスに参加させたいユーザーにはSamba専用のパスワードを設定する。

# smbpasswd [ユーザー名]
New SMB password:
Retype new SMB password:
Password changed for user xxxxxx.

# /etc/rc.d/init.d/smb restart
Starting SMB services: [ OK ]

 Sambaが動作しているかどうかは,現在のプロセスを見れば把握できる。次のような2行があればOKだ。ただし,この状態では再起動時にSambaが自動起動しないため,用途によってはlinuxconfなどで設定しておくのがよいだろう。

# ps ax
〜前略〜
24765 ?    S   0:00 smbd -D
24776 ?    S   0:00 nmbd -D
〜後略〜

 最後に,Windowsの「マイ ネットワーク」アイコンから次のように確認できれば完了だ。Sambaから問い合わせられるパスワードは,smbpasswdで設定したものを入力しよう。

画面
上で挙げた設定ファイル(smb.conf)で起動したSambaサーバが見える

画面
ここではユーザー名「ykida」でアクセスした例だ。上の設定ファイルでは1つのフォルダしか見えないが,公開ディレクトリを増やすことでこのように用途別のフォルダを増やすことが可能だ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ