xserver
Home クッキー及びWeb ビーコンについて



Sambaによるファイル共有

Samba の概要

 ここでは、LinuxやBSDなどを中心としたUNIX系OSにおいて Windows NT/2000互換のファイルサーバ/プリント・サーバ機能を提供するSamba について解説していきます。Samba はバージョンがあがるたびに機能が拡張されており、現在の代表的な機能としては、ファイルサーバー機能、プリントサーバー機能、WINSサーバー機能、PDC機能(プライマリドメインコントローラ)、DFS機能(マイクロソフトの分散ファイルシステム)、ブラウザからSambaを簡単に管理できるSWAT 機能などがあります。また、ここでの説明はバージョン2.27になりますが、Samba3.0 以降からはKerberos認証のサポートしたことにより、Windows 2000のActive Directoryへの参加も可能となっています。なお、当ページではそのSamba の最も一般的な機能であるファイルサーバーに絞って解説していきます。




■samba のインストール

Version samba-2.2.7a-6
Homepage http://www.samba.org/
Install samba-2.2.7a-6.i386.rpm
samba-client-2.2.7a-6.i386.rpm
samba-common-2.2.7a-6.i386.rpm
samba-swat-2.2.7a-6.i386.rpm
Errata http://www.jp.redhat.com/support/errata/RHSA/RHSA-2003-137J.html#Red%20Hat%20Linux%209

 RPM でのインストールは以下のパッケージをインストールしておいてください。samba-client は、Linux クライアントがある場合に必要となります。

# rpm -ivh samba-2.2.7a-6.i386.rpm samba-client-2.2.7a-6.i386.rpm samba-common-2.2.7a-6.i386.rpm samba-swat-2.2.7a-6.i386.rpm



■自動起動の設定


 ランレベル3と5でsmbが自動起動するように設定します。

# chkconfig --level 35 smb on
# chkconfig --list smb

ntpd 0:オフ 1:オフ 2:オフ 3:オン4:オフ 5:オン6:オフ



■/etc/samba/smb.confの編集

 まず、Linux 上のユーザーのホームディレクトリをファイルサーバーとしてWindows上で参照できるようにsmb.conf を編集していきます。[ global ] セクションの、workgroup にWindowsの所属するグループを指定します。

#======================= Global Settings ======================
[global]

# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = kororo.jp


 Samba サーバーへの接続を許可するネットワークを指定します。コメントも削除してください。

hosts allow = 172.16.50. 172.16.51. 127.

 次に文字コードに関する設定です。coding system は、euc に設定しておくことで、Windows 上からファイルをコピーする際に、SHIFT-JISで書かれた文字コードをEUC コードに変換します。client code page は、クライアントが扱う文字コードがSHIFT-JIS環境であることを示しています。

coding system = euc
client code page = 932

 なお、client code page の値はDoSプロンプト上で、chcp コマンドを実行すると表示されます。

C:\>chcp
現在のコード ページ: 932

 [ homes ] セクションは、ユーザーごとのホームディレクトリに関する設定を行います。writable がyes の場合は、ファイルの変更、削除が行えます。valid users の%S は、仮にユーザーをkororo とした場合に、ブラウザ上から、\\sambaサーバー名\kororo というURLでアクセスできることを意味しています。create mode と directory mode は新しく作成されたファイルやディレクトリのデフォルトのパーミッションを設定します。デフォルトでは、ファイルは664、ディレクトリが775という意味になります。

#============================ Share Definitions ================
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775


■/etc/samba/smbpasswd ファイルの作成

 sambaのパスワードの暗号化形式は、Linuxログイン時に使用するshadow パスワードとは異なるため、smbpasswd というファイルを作成しなくてはなりません。以下、コマンドを実行し、/etc/samba/smbpasswd を作成してください。作成した後、smbpasswd からシステム用の不要なアカウントも削除しておいてください。また、パスワードファイルのパーミッションも適切に設定しておきます。

# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
# chmod 600 /etc/samba/smbpasswd
# ls -la /etc/samba/smbpasswd
-rw------- 1 root root 130 1月 2 13:57 /etc/samba/smbpasswd

 上記の操作ではSamba用のパスワードファイルは作成されましたが、パスワードは未設定の状態のままなので、smbpasswd コマンドを使って、パスワードを設定します。

# smbpasswd kororo
New SMB password:
Retype new SMB password:
Password changed for user kororo.
Password changed for user kororo.

■samba の再起動

 最後に変更を有効にするため、sambaを再起動します。

# /etc/init.d/smb restart
SMBサービスを停止中: [ OK ]
NMBサービスを停止中: [ OK ]
SMBサービスを起動中: [ OK ]
NMBサービスを起動中: [ OK ]

■Windows 上からアクセスする

 それでは、実際にWindows 上からアクセスしてみます。\\sambaサーバー名\ユーザー名でアクセスして以下のような「ネットワークパスワードの入力」にパスワードを入れてログインできたら成功です。






■SWAT を使ってブラウザから管理する

 samba には、swat というパッケージがあり、これを利用することでブラウザから直接アクセスして管理することができるようになります。swat は901番ポートを使用し、ブラウザでアクセスする場合は、 http://sambaサーバー名:901 とすればsamba の設定画面が表示されます。アクセスする際には、root のパスワードを聞かれるのでroot のログインパスワードを入力します。下記図は英語版のsamba なので、日本語版をインストールしたい場合は、こちらを参照してください。



■swat の初期設定

 Red Hat に付属のRPM を使用した場合、swat をインストールしてあるからといってすぐにブラウザからアクセスできるわけではありません。下記を参考にしてブラウザからアクセスできるようにしましょう。 まず、/etc/services にswat の行があるかどうか確認してください。Red Hat はデフォルトで記述されていますが、されていなければ追記してください。

# vi /etc/services
swat 901/tcp # Samba Web Administration Tool

 /etc/xinetd.d/swat を編集して、disable を yes から no に変更します。変更したら、xinetd を再起動してください。以上で、ブラウザ上で http://sanbaサーバー名:901 を入力すればアクセスできるようになります。

# vi /etc/xinetd.d/swat
# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \
# to configure your Samba server. To use SWAT, \
# connect to port 901 with your favorite web browser.
service swat
{
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1 172.16.50.0/27 172.16.51.0/28
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = no
}
# /etc/init.d/xinetd restart



■共有ディレクトリを作成する

 上記で説明したファイル共有の方法は、あくまでもユーザーのホームディレクトリを共有するというものでしたので、パスワードを知らなければ他のユーザーは閲覧することが出来ません。ここでは、複数のユーザーがファイルを共有する専用のディレクトリを作成していきます。共有ディレクトリは、通常、/home/samba に作成します。共有ディレクトリごとにアクセス制限をかけたい場合は、/home/samba 以下にサブディレクトリを作成するといいでしょう。

 まず、共有するディレクトリを作成し、所有者をroot とし、誰でも読み書きできるようにパーミッションを777とします。

# mkdir -p /home/samba/public
# chown root.root /home/samba/public
# chmod 777 /home/samba/public

 次に、/etc/samba/smb.conf のpublic セクションを編集します。デフォルトではコメントアウトされているので、" ; " を削除します。path セクションを適切なパスに変更します。write list では書き込みできるユーザーを限定する項目で、先頭に" @ " がついているのはグループを表します。create mode と directory mode で新規に作成されたファイルやディレクトリに対して、デフォルトで設定されるパーミッション値を設定します。

# vi /etc/samba/smb.conf

# A publicly accessible directory, but read only, except for people in
# the "staff" group
[public]
comment = Public Stuff
path = /home/samba/public
public = yes
writable = yes
printable = no
write list = @staff
create mode = 766
directory mode = 777

 編集しおえたら、xinetd を再起動します。あとはクライアントマシンから、\\sambaサーバー名\public でアクセスするだけです。

# /etc/init.d/xinetd restart







TOPに戻る

Sponcerd Link


Search
 
Web サイト内
Rental Server

【レンタルサーバのXbit】 低価格・高品質のビジネスクオリティー。300メガ1,050円~30分で サービススタート可能!


容量300MB、月額125円、高性能なサーバが日本最大級のバックボーンに直結。
さくらのレンタルサーバ



当サイトはLinux自宅サーバーの構築を目的としたサイトです。
当サイトに関するご意見、ご要望等は、こちらのメールアドレスよりお願いします。
Beginning | Introduction | Installation | Server |
Security | Tips | Related-Sites
Copyright©2003-2006 KORO All Rights Reserved.
総計:
今日:
昨日: