特集
» 2000年05月22日 00時00分 公開

Sambaで快適ファイルサーバを構築しよう!:いますぐSambaでファイルサーバ

[濱野賢一朗,株式会社デジタルデザイン]

 Linuxを使い始めたユーザーや、すでに使いこなしているぞというユーザーの方といえども、現在のところ全くWindowsと付き合わずに済ませる、ということは非常に難しい状況でしょう。私自身、サーバOSとしては非常に安定していて可用性のある点を評価してLinuxを使っていますが、クライアント用のOSとしてはWindows 98やWindows NT Workstationを使っています。ビジネスの世界ではExcelやWordのファイルが事実上の標準だと思われているため、こうしたファイルを参照したり作成するためには、どうしてもWindowsを使わざるを得ないというのが現状でしょう。

 とはいえ、クライアントだけでなくサーバまでもWindowsを使って社内のシステムをマイクロソフト一色にしてしまうことに危機感を感じている方も少なくないと思います。Windows NTを実際に運用してみるとわかりますが、真っ青の画面になってしまって全く動かなくなってしまったり、一見正常に動いているように見えてもネットワークからアクセスしてみると正常な挙動を示さないなど、苦労させられることがありました。読者のみなさんにも同じような経験を持っている方は少なくないでしょう。

 そこでこうした苦労をできるだけ避けるために、Windowsがもつファイル/プリンタを共有する機能を、Windowsではなく、安定した動作が期待できるLinux(UNIX)でできないだろうか、と考えたくなります。それを実現するのが、これから紹介するSambaというソフトウェアです。

 連載第1回の今回は、このSambaを簡単に紹介した後、皆さんに触れて使っていただけるよう、具体的な利用方法などを紹介していきたいと思います。

SambaでWindows NT互換の共有機能を実現

 SambaはWindows NT互換のファイル共有機能を実現するソフトウェアで、その代表的な機能がファイル/プリンタの共有機能になります。これ以外の機能として、ドメインコントローラーやWINSサーバなどが実装されています。この連載では、Sambaの稼働環境としてLinuxを前提にしていきますが、SambaはSolaris、HP-UX、FreeBSD、NetBSDなどのさまざまなUNIXプラットフォーム上で動作します。

 また、Sambaはオープンソースソフトウェアであり、GPLというライセンスを基にソースが配布されています。よく、オープンソースソフトウェアは「信頼性の点でかけているので企業や官庁では利用しづらい」などの意見がありますが、Sambaは、Webサーバ機能をもつApache、DNSサーバであるBIND、メールサーバであるsendmailなどと並んで、非常に多くの導入実績を持っています。日本国内の企業でもかなり多く導入されていることがわかっており、信頼性の点でけっして劣るものではありません。

■Sambaのバージョン

 Sambaは、Windowsの最新仕様を追って日々改善されています。そのため、年4回程度、新しいバージョンがリリースされます。その中で、現在日本で最も使われているパッケージは「Samba 2.0.5a 日本語版」です。これは、Sambaの開発を行っているSamba TeamがリリースしたSamba 2.0.5aに対して、日本Sambaユーザー会が共有名に日本語が利用できるよう改善を行ったり、日本語のドキュメントを追加したりしたものです。Windows 2000を使わない限りにおいては最も安定した動作を持っているといえます。

 今後利用されていくと思われるものが「Samba 2.0.7」です。これは、これまでのバージョンのものに、Windows 2000への対応を施したものになっています。Windows 2000が同一ネットワーク内にある場合や新しいバージョン好きな方は、近日中にリリースされる「Samba 2.0.7 日本語版」を利用するとよいでしょう。

RPMパッケージからSambaのインストール

 Sambaのインストールですが、最近のほとんどのディストリビューションでは標準ソフトウェアとして最初から入っているので、さほど自分で明示的にSambaだけのためのインストール作業をする必要あまりないようです。とはいえ、Sambaのバージョンが古かったりして、アップグレードしなければならないような状況もあると思いますので、ここではRPMパッケージのインストールについて簡単に触れておきたいと思います。

 RPMパッケージを利用しているディストリビューション(Red Hat Linux、TurboLinux、Vine Linuxなど)で、すでにSambaがインストールされているかどうかは、コマンドラインから

# rpm -qa | grep samba

と入力することでわかります。もし、インストールされていれば、パッケージ名がリストアップされるはずです。ここで表示されるSambaのバージョンが古いようであれば、アップグレードをすることをおすすめします。アップグレードをするには、まず、上のコマンドで表示されたパッケージを、管理者(root)権限で

# rpm -e samba
# rpm -e samba-client
# rpm -e samba-common

のようにアンインストールしておきます。その上で、最新のパッケージを ftp.samba.gr.jp や雑誌付録のCD-ROMなどから入手し、

# rpm -ihv samba-common
# rpm -ihv samba
# rpm -ihv samba-client


のようにしてインストールをします。

 ここで注意をしなくてはならないのは、samba-commonパッケージを、sambaやsamba-clientよりも先にインストールしなくてはいけないということです。samba-common以外を先にインストールしようとすると依存関係が解決できず正常にインストールできません。

以上で、Sambaのインストール自体は終了です。

 RPMパッケージ以外パッケージのインストール方法やソースからのコンパイル方法などの情報は、www.samba.gr.jpや各ディストリビューションに関するサイトにありますので、参考にするといいでしょう。

smb.confファイルでSambaの設定

 それでは、早速Sambaを利用して、ファイルサーバーを構築してみることにしましょう。Sambaは、すでにWindows間でファイル共有などができている状態であれば、LinuxサーバにSambaを導入するだけでWindows側の設定変更などは一切せずに、簡単にファイルサーバが構築できます。

 今回の導入は、すでにあるワークグループ「atmarkit」にLinuxサーバを導入し、ファイルサーバとして機能させることにしたいと思います。

 これからSambaの具体的設定方法を紹介していきますが、その前にひとつ知っておいて頂きたいことが、「Sambaの設定ファイルは smb.conf というファイルで、パッケージからインストールした場合は /etc の下にある」ということです。Sambaの設定は基本的にすべてこの smb.conf で行います。

■smb.conf

 設定ファイル smb.conf の構造は基本的に以下のようになっています。現在の設定状況を知りたい場合は

# cat /etc/smb.conf


と入力することで確認できます。

smb.confの構造

[セクション名]
 パラメータ名 = パラメータ値
          :
          :
[セクション名]
 パラメータ名 = パラメータ値
          :
          :

  セクションは、全体的な設定を行う[global]やプリンタの共有設定を行う[printers]などがあり、好きな名前で[共有名]というセクションを作ることで、共有が作成できます。パラメータ値は、具体的に設定したい内容を記述することもありますが、「設定する」/「設定しない」に関しては「Yes」/「No」とすることで設定できます。

 それでは、具体的にパラメータを紹介しましょう。

[global]セクション

  • workgroup
    • ワークグループ名/ドメイン名を設定します。既存のネットワークに接続する場合は、それと同じものを設定します。ここでは、すでに「atmarkit」というワークグループが存在しており、このワークグループに参加することを想定していますので、その値を用います。
  • encrypt passwords
    • 暗号化パスワードを用いるかどうかの設定です。これはWindows NT 4.0 の SP3以降やWindows98、Winodws2000、アップデートの適用されたWindows95から導入された「暗号化パスワード」を利用できるようにするか否かというものです。最近のWindowsのほとんどは暗号化パスワードを利用していますので、通常は Yes を設定してください。
  • security
    • 認証方法を設定するものです。share/user/server/domain の4つから選択することができます。今回はあまり重要なパラメータではありませんので、詳細については、次回詳しく紹介します。今回は「user」を利用することにします。
  • client code page
    • 日本語を用いる場合は 932 を設定してください。
  • coding system
    • Linuxマシン側で扱うファイル名のコーディングシステムを指定します。Linuxの内部コードにあわせてEUCを用いると、Linux上で「ls」などを用いてファイル名を見る際に通常どおり見ることができます。ただし、Netatalkなども同時に利用していてMacintosh ともファイル共有する場合は CAP を用いるようにしてください。
  • socket options
    • 性能を最適にするために設定を以下の通りにしてください。これは、チューニングのための設定です。
      TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

[共有名]セクション

 共有の名前は、予約されているglobal,home,printerなど以外であれば、自由につけることが可能です。特に、Samba日本語版では日本語を用いた共有名を利用することができます。

  • omment
    • 共有名の説明を設定します
  • path
    • 共有の対象ディレクトリを指定します
  • read only
    • 書き込み禁止にするかどうかのパラメータです。更新がある共有では No と設定します
  • browseable
    • 「ネットワークコンピュータ」に表示するかどうかの設定です。表示させたい場合は「Yes」とします。

 以上を踏まえると、以下のような設定ファイルを作ることができます。

smb.confの設定例

[global]
  workgroup = atmarkit
  encrypt passwords = Yes
  security = user
  client code page = 932
  coding system = euc

[kikaku]
  comment = 企画に関するファイル置き場
  path = /home/kikaku
  read only = No
browseable = Yes


 これは、ワークグループ「atmarkit」に所属しており、その中で「kikaku」という共有を提供するファイルサーバーという設定になり、想定した環境にあったものとなります。

Sambaの起動

それでは、上の設定を smb.conf に保存して、実際にSambaを動かしてみることにしまし

ょう。多くのディストリビューションの場合、管理者(root)権限で

# /etc/rc.d/init.d/smbd start
# /etc/rc.d/init.d/nmbd start


とすることでSambaを起動することができます。ディストリビューションによってはパスが異なることがあるかもしれませんが、基本的には変わりないはずです。これで無事にSambaが立ち上がったことになります。

Sambaユーザーの作成

 最後に、ユーザーの設定をします。SambaのユーザーはLinuxのユーザー設定とともにSamba独自の設定が必要となります。Sambaのユーザーを設定を行ってはじめて共有にアクセスできることになります。

■新規ユーザーの登録

 新しくSambaユーザを登録するには、まずLinuxのユーザーを登録する必要があります。

これは、Sambaに限った設定ではなく、一般的なLinuxユーザーの登録になります。管理者権限で

# useradd -m hamano


としてください。

 次に、Sambaユーザを登録します。Sambaユーザーのパスワードの設定はsmbpasswd を用いておこないます(例では、hamanoというユーザのSambaのパスワードの設定をしています)。

# smbpasswd -a hamano
New SMB password:******* (パスワードを入力します )
Retype new SMB password:*******(もう一度パスワードを入力します)
Added user hamano
Password changed for user hamano.


■既存LinuxユーザーをSambaユーザとして登録

もし、上のように新たに一人ずつ設定するのではなく、既存のLinuxユーザー設定をそのままSambaの設定に移行したいという場合には、

# mksmbpasswd.sh < /etc/passwd > /etc/smbpasswd
# chmod 600 /etc/smbpasswd


とすることで、/etc/passwdにあるユーザー情報すべてを一斉にSamba側に移行することが可能です。ただし、この設定はLinuxユーザーがSamba側にエントリされるだけで、パスワードは設定されません。パスワードはあとから、個別に設定する必要があります。

# smbpasswd hamano
New SMB password:******* (パスワードを入力します )
Retype new SMB password:*******(もう一度パスワードを入力します)
Added user hamano
Password changed for user hamano.


上記の方法で一斉で移行した場合はrootなどのシステムアカウントもSamba側に登録されてしまいます。そうした接続させたくないユーザーは、/etc/smbpasswd からユーザー行を削除してください。

 以上でSambaの基本的な設定は終わりです。実際にWindowsのクライアントからSambaへアクセスしてみてください。Windowsのファイルサーバと区別がつかないほどスムーズにWindowsへのファイル共有を実現していると思います。このようにSambaではさほど複雑な設定なしにWindows NT Server 互換のファイルサーバを構築できるのです。

 今回は、大急ぎでSambaについて紹介し、既存のワークグループにSambaサーバーを追加してみました。次回はもう一段レベルアップして Windows NT Server との連携方法など実際の運用でさらに役立つ情報を紹介したいと思います。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。