- はじめに
MIRACLE LINUXに含まれるSambaを利用して、Windowsクライアントが使用できるファイルサーバを構築することができます。本章では、Sambaを利用したファイルサーバの基本的な構築手順について説明します。
- ファイルサーバの導入形態
初めてSambaサーバを導入するときには、主に次のような導入形態が考えられます。
-
スタンドアロンサーバ
Windowsドメインを構成していないネットワークに、新たにファイルサーバを導入する場合です。ファイル共有サービスの認証をSambaサーバで行います。
-
ドメインメンバ
Windows NT/2000サーバによって既にWindowsドメインが構築されているネットワークに新たにドメインメンバとしてファイルサーバを導入する場合です。ファイル共有サービスの認証は、既存のWindows NT/2000サーバを利用します。
-
ドメインコントローラ
Sambaを利用して新たにWindowsドメインを構築する場合です。ファイル共有サービスに加えて、Sambaの提供するPDC(プライマリドメインコントローラ)機能を利用してWindowsドメインの管理も行う場合です。ドメイン認証はSambaサーバが行います。
Fig1. Sambaサーバの導入形態
|
まず最初にどのようなファイル共有サービスをクライアントに提供するかを検討しなければなりません。そこで、少なくとも次の項目について前もって検討しておくとSambaサーバの導入をスムーズに行うことができます。
今回は、設定例として、開発部のメンバーが使用できるファイルサーバの導入を行う事例を想定しています。前述のスタンドアロンサーバに該当します。
検討項目 | 設定内容 | 設定例 |
Sambaサーバの形態 | スタンドアロンサーバ/ドメインメンバ/ドメインコントローラ | スタンドアロンサーバ |
ワークグループ名/ドメイン名 |
Sambaサーバが所属するワークグループ名/ドメイン名です。 | MIRACLE |
コンピュータ名 | ネットワーク一覧に現れるSambaサーバの名称です。 | FILESERVER |
共有名 |
Sambaサーバがクライアントに提供する共有フォルダの名称です。(複数設定できます) |
DEVELOP |
アクセス権 | 共有フォルダに対するアクセス権です。ユーザ、グループ、全員といった単位で設定可能です。 | 開発グループのユーザ全員に読み書きの権限を与える |
ファイルサーバの文字コード | サーバに格納されるファイル名の文字コードです。サーバ上でのファイル管理の操作に関係します。 EUC/SJIS/HEX/CAPなど | EUC |
ファイルの格納場所 | 共有フォルダに格納されたファイルのSambaサーバ上での保存場所です。 | /var/samba/development |
- Sambaサーバの設定
MIRACLE LINUXのインストールを無事終了したら、Sambaサーバとしての設定を行います。
Sambaを利用するために必要な設定項目は、次のとおりです。
- ユーザ登録
- ディレクトリの作成
- Sambaの設定
- ユーザ登録
Sambaサーバをスタンドアロンサーバとして使用する場合、共有フォルダに対するアクセス権の認証はSambaサーバが行うため、Sambaサーバに利用ユーザを登録する必要があります。
Sambaサーバへの登録は、LINUXのシステムアカウントと、smbpasswdと呼ばれるSambaが独自に格納するユーザ情報の両方に対して登録作業が必要です。
例として、ユーザ名 user1、グループ名 develに所属するユーザ情報を登録するには、次の手順を実行します。
# groupadd devel |
... develグループをシステムに追加します。 |
# useradd -g devel -m user1 |
... user1ユーザをシステムに追加します。 |
# smbpasswd -a user1 |
... user1をSambaのユーザ情報に登録します。 |
- ディレクトリの作成
Sambaサーバ上のファイルシステムに、ユーザのファイルを保管するためのディレクトリを作成します。
# mkdir /var/samba/development |
... ディレクトリを作成 |
# chgrp 770 /var/samba/development |
|
# chown user1 /var/samba/development |
|
# chgrp devel /var/samba/development |
... develグループが読み書き可能 |
- Sambaの設定
Sambaの設定は、/etc/samba/smb.confに保存されます。
設定を行う方法には次の3つの方法があります。
- /etc/samba/smb.confをエディタで変更する
- SWATと呼ばれるWebインターフェースを利用して変更する。
- WebminのWebインターフェースを利用して変更する。
ここでは、直接smb.confを変更する方法を示します。SWATや、Webminを利用してSambaの設定を変更する方法は後ほど記載します。
smb.confファイルは、globalセクションと、サービスごとのサービスセクションで構成されます。
smb.confに設定できるパラメータは、smb.conf(5)のmanデータで確認することができます。グローバルセクションは、[global]からはじまり、サービスセクションは、[サービス名]ではじまります。
パラメータには、globalセクションのパラメータと、サービスセクションのパラメータがあり、manデータではそれぞれのパラメータごとに、(G)、(S)で示されています。
最初の設定例をもとにすると、smb.confに最低必要な設定は次のようになります。
[global]
coding system = euc
client code page = 932
workgroup = MIRACLE
netbios name = FILESERVER
encrypt passwords = Yes
[DEVELOP]
path = /var/samba/development
writeable = Yes
create mask = 0640
dirctory mask = 0750
"coding system"と、"client code page"は日本語環境で必須のパラメータです。必ず[global]セクションの最初に記述してください。
"encrypt passwords"もユーザ認証に必要なパラメータですので、Yesを設定してください。
その他のパラメータの詳細に関しては、smb.conf(5)のmanデータを参照してください。
以上で設定は完了です。
- Sambaサーバの運用
Sambaを起動させるには、次のコマンドを実行します。
# /sbin/service smb start |
Sambaを停止させるには、次のコマンドを実行します。
マシン起動時にSambaを自動的に起動するには、次のコマンドを実行します。
# /sbin/chkconfig --add smb |
Sambaのログは、/var/log/samba/に出力されます。
ログレベルは、smb.confのlog levelパラメータによって決定されます。
また、ログファイル名やログサイズも設定することができます。
次の設定は、ログレベルを3に設定し、最大500キロバイトまでのログファイルを、
クライアントごとに作成するための設定です。
log level = 3
log file = /var/log/samba/log.%m
max log size = 500
- パスワード管理
ユーザは、Sambaサーバの認証に使用しているパスワードをsmbpasswdコマンドで変更することができます。
$ smbpasswd
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user user1
|
システム管理者は、smb.confに次の設定をしておくことで、一般ユーザがSambaのパスワードを変更するときに、システムアカウントのパスワードも同期させることができます。(MIRACLE LINUXの初期設定で設定済です。)
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *Re*new*password* %n\n *success*
unix password sync = Yes
システム管理者は、smbpasswdコマンドを使用して一般ユーザのパスワードも変更することができます。ただし、この場合はシステムアカウントのパスワードの同期は行われませんので、passwdコマンドを使用してシステムアカウントのパスワードも変更する必要があります。
# smbpasswd user1
New SMB password:
Retype new SMB password:
Password changed for user user1
#
# passwd user1
Changing password for user user1
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully
|
- MIRACLE LINUXの初期設定
MIRACLE LINUX Standard Edition V2.1でSambaの初期設定ではスタンドアロンサーバの設定が行われています。また、日本語環境に必要なパラメータの設定なども行われています。
したがって、スタンドアロンサーバー構成のファイルサーバを構築したい場合には、共有ごとの設定を追加することと、ユーザの追加を行うことで、運用を開始することができます。
- Webインターフェースを利用したSambaの設定
Sambaの設定は、SWAT、WebminのWebインターフェースで行うこともできます。
SWATはSambaに付属しているSamba設定用のWebインターフェースで、とても詳細な設定を行ったり、付属ドキュメントを参照したりすることができます。
一方、Webminにも、Samba設定用のインターフェースが用意されており、
簡単にSambaの設定を変更することができます。
本章では、SWAT、Webminを利用してSambaの設定を行う手順を説明します。
MIRACLE LINUXでは、これらのWebインターフェースはともにWebmin経由で提供されています。
Webminにログインして、「サーバ」-「Samba Windowsファイル共有」を選択すると、WebminのSamba設定インターフェースが表示されます。SWATを使用する場合には、さらに「SWAT」を選択します。
|
|
Fig2. WebminのSamba設定画面
|
Fig3. SWATの画面
|
SWATでSambaの設定を行う時には、「全体設定」、「共有設定」、「プリンタ」のいずれかをクリックして設定を行います。
通常は重要なパラメータのみが表示されていますので、表示されていないパラメータを変更したいときは、「詳細表示」をクリックします。
設定した内容をsmb.confファイルに反映するときには、「設定変更」をクリックします。
Fig4. 全体設定の画面
|
ファイル共有やプリンタ共有を設定する時には、最初に既存の共有サービスの設定変更か、新規作成か選択しなければなりません。
新規に共有を作成するときには、共有名を入力してから「新規共有作成」を
クリックすると、新しい共有サービスの設定画面になります。
|
|
Fig5. 新規共有サービスの追加画面 |
Fig6. 新規共有サービスの設定画面 |
Webminを利用して新しい共有サービスを作成するときには、「Samba Shareマネージャ」の画面で「新規のファイル共有を作成」をクリックします。
「共有名」や、「共有ディレクトリ」を入力して「作成」をクリックすると、共有フォルダが追加されます。
Fig7. Webminのファイル共有サービス追加画面
|
その他の設定に関しても、同様にWebインターフェースを利用することができますので、活用してください。
- 便利な機能
本章では、Sambaサーバがより便利になる次の4つの機能を紹介します。
- ユーザホーム機能
- ごみ箱機能
- 容量制限機能
- ゲスト接続
- ユーザホーム機能
Sambaを利用してユーザごとの専用フォルダを簡単に提供することができます。
この機能を利用するためには、[homes]という名称の特別な共有サービスを作成します。
ユーザがSambaサーバに接続すると、フォルダ名がユーザ名で表される特別な共有フォルダが表示されます。このフォルダには、ユーザのホームディレクトリが設定されています。
設定例
[homes]
comment = %S's Home Directories
writeable = Yes
browseable = No
Fig8. ユーザホーム機能
|
- ごみ箱機能
Samba日本語版には、ごみ箱機能と呼ばれる機能が用意されています。この機能を使用すると、ユーザーが削除したファイルを所定のフォルダに保存しておくことができます。このため、ユーザが誤って削除したファイルを復活させることが可能です。
ごみ箱機能を使用するためには、共有サービスに"recycle bin"パラメータを追加します。
[DEVELOP]
path = /var/samba/development
writeable = Yes
recycle bin = .recycle
この設定により、ユーザが共有サービス上のファイルを削除したときに、
/var/samba/development/.recycleディレクトリにファイルが移動します。
ただし、.recycleディレクトリ内のファイルは削除されずに
残ったままとなりますので、定期的にcronなどで古くなった
ファイルの削除などを実施するほうが良いでしょう。
次の設定を行うと、ユーザのホームディレクトリごみ箱用としてrecycleフォルダが作成されます。
[homes]
comment = %S's Home Directories
writeable = Yes
browseable = No
recycle bin = recycle
|
「サンプル」ファイルを削除 ->
|
|
- 容量制限機能
LinuxのQUOTA機能を使用して、各ユーザや、グループごとにディスク使用量を制限することができます。
MIRACLE LINUXでQUOTA機能を設定するには、次の手順を実行します。
- /etc/fstabの設定
QUOTAの設定はパーティション単位で行います。
/etc/fstabファイルのオプション項目に、「usrquota」や「grpquota」を設定することで、ユーザごとのQUOTA制限、グループごとのQUOTA制限が利用可能になります。
/etc/fstab 設定例
/dev/sda2 / ext2 defaults 1 1
/dev/sda1 /boot ext2 defaults 1 2
/dev/sda3 /home ext2 defaults,usrquota 0 0
- QUOTA機能の開始
次のコマンドによって、システムのQUOTA機能を有効にします。
# /sbin/quotacheck -auvg
|
...現在のディスク使用量のチェック |
# /sbin/quotaon -a
|
...QUOTA機能の開始
|
- 制限値の設定
ユーザ、グループに対して制限値を設定するときには、edquotaコマンドを使用します。edquotaコマンドを実行すると、viエディタが起動します。
Disk quotas for user user1 (uid 10028):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 0 0 0 0 0 0
表示されている値は次の意味を持っています。
- 現在のディスク使用量(ブロック数)
- ブロック数のソフトリミット
- ブロック数のハードリミット
- 現在のiノード使用数
- iノードのソフトリミット
- iノードのハードリミット数
システム管理者は、ソフトリミットとハードリミットを設定することができます。
ユーザがソフトリミットを超過したままで、一定期間経過するとそれ以上ディスクを使用することができなくなります。また、ハードリミットを超過することはできません。
次のように変更してから変更結果を保存し、エディタを終了します。
Disk quotas for user user1 (uid 10028):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 0 1024 2048 0 1024 2048
ユーザやグループのディスク使用状況を確認するには、repquotaコマンドを使用します。
# /sbin/repquota -a
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
user1 -- 4 1024 2048 1 1024 2048
|
- 制限値の超過
ユーザが設定された制限値を超過すると、クライアント側に次のようなメッセージが表示されます。
Fig9. 制限値超過時の表示
|
- ゲスト接続
サービスセクションに"guest ok = Yes"のパラメータを追加しておくと、ゲストアカウントで共有サービスにアクセスすることができます。
このときにユーザは、nobodyユーザとして共有にアクセスすることができます。
Sambaはさらにさまざまな設定を行うことができます。さらなる詳細については、SWATからリンクされているドキュメントなどを参照してください。