このページの本文へ

MicroServerとSambaで作るオリジナルNAS ― 第2回

CIFS/SMBサーバー機能を導入

UbuntuとSambaでHP MicroServerをWindows用NASに

2012年07月27日 11時00分更新

文● あわしろいくや(Ubuntu Japanese Team) 図●古川誠之

  • この記事をはてなブックマークに追加
  • 本文印刷

 本連載では、Ubuntu専門誌「Ubuntu Magazine Japan」に掲載された記事を元に、小型サーバー「HP ProLiant MicroServer」にUbuntu Serverを組み合わせてオリジナルNASを作る方法を紹介している。第1回ではUbuntu ServerのRAID設定を行なったが、続いてはWindows用NASを実現するSamabaの導入だ。

NAS作りに使う「HP ProLiant MicroServer」。今回は2台のHDDでRAID1のミラーリング構成を行なっている。

Sambaのセットアップと設定

 Sambaは、オフィシャルサイトによると「LinuxとUnixで動作する標準的なWindowsの相互運用性プログラム・スイート」とのことだ。SambaといえばWindows互換のファイルサーバー機能を思い浮かべがちだが、それだけではないということをいいたいのだろう。残念ながらここでは紙幅の都合上、ファイルサーバーとしての機能しか取り上げないが、プリンタ共有機能や、Active Directory(一部機能制限あり)のサーバーになることもできる。深く知るととてもおもしろいので、ぜひともこれをきっかけにSambaに興味を持っていただけると幸いだ。

Sambaのインストール

 インストール完了後、何はともあれリスト1のコマンドを実行してアップデートしよう。いくらローカルだけで動作しているとはいえ、サーバーの場合は常にセキュリティに気をつけたほうがいい。

リスト1 Ubuntu Serverのアップデート

$ sudo apt-get update
$ sudo apt-get dist-upgrade

■インストール完了後、必要であれば再起動する。

 インストールは端末から「sudoapt-get install samba」を実行してもいいし、Ubuntu Serverのインストール時に「ソフトウェアの選択」で「Samba file server」を選択してもいい。

Sambaの設定ファイル

 Sambaでは、設定はすべて「/etc/samba/smb.conf(以下smb.conf)」を編集することによって行なう。実のところそれ以外にも方法はあるのだが、設定ファイルに全てまとめているほうがバックアップを取るのが簡単だったり、使い回しができたりで便利なのだ。

 ではさっそくsmb.confを編集していこう。編集には「editor」コマンドを使用する(リスト2)。 smb.confを実際に覗いてみると、デフォルトでいろいろ書かれていることがわかる。原則として、必要以上にデフォルトの設定を変えない方針で解説していく。

リスト2 smb.confの編集

$ sudo editor /etc/samba/smb.conf

■ここでは「editor」コマンドを使用しているが、「nano」や「vim」など好みのものを使えばいいだろう。

 まず最低限行なうべき設定として、文字コードとワークグループがある。文字コードの設定が正しくできていないと、ファイル名が文字化けする可能性があるからだ。実際には、設定なしでもほとんど問題は起きない。とはいえ、わかっていて設定せずに無用なトラブルを起こすのも時間の無駄なので、設定してしまったほうがいい。具体的にはリスト3のように設定する。

リスト3 Sambaの文字コード指定

[global]
   dos charset = CP932
   unix charset = UTF-8

■Windows側とUnix側、それぞれ上記のように設定する。

 dos charsetはWindowsの文字コードを指定する。Windowsの文字コードはやや複雑なので詳しい解説はしないが、目に見える形でファイルの文字コードに使われているのは「CP932」だ。そしてUbuntuの文字コードはUTF-8なので、「unix charset」の項目は、このように設定する。

 次に設定するのはワークグループだ。デフォルトでは「Workgroup」という名のワークグループになっており、ややこしいので気をつけよう。これはWindows 7でのデフォルトであり、変更していなければそのままで問題ない。Windows 7でワークグループを確認する方法は[コントロールパネル]-[システムとセキュリティ]-[システム]の[ワークグループ]だ。

ユーザーの作成

 Sambaで使用するユーザーは、システムのユーザーと紐づいている。よって、現在使用しているユーザーでしかログインしない場合はそのままでいい。それ以外の場合は、まずユーザーを追加する必要がある。リスト4のコマンドを実行すればいい。

リスト4 システムにユーザーを追加

$ sudo adduser ayase

■まずUbuntu側にユーザーを追加しておく必要がある。

 リスト4では作成するユーザー名が「ayase」だ。作成時にはパスワードが必要なので、予め考えておこう。

 次にSambaで使用するユーザーの設定を行なう。もちろんこの場合もパスワードの設定が必要なのだが、必ずシステムのパスワードと同じものにしておこう。Sambaのユーザー作成は、リスト5のコマンドで行なう。「pdbedit」は、システムにないユーザーは作成することができない。

リスト5 Sambaで使用するユーザーの作成

$ sudo pdbedit -a ayase

■Ubuntu側に存在しているユーザーを指定する。

 例えばリスト6のように、システムにいない「saori」というユーザーを指定すると失敗する。この際表示される「Failed to add entry for user saori.」というエラーメッセージは、システムに「saori」というユーザーがいないことを示している。

リスト6 いないユーザーは指定できない

$ sudo pdbedit -a saori

■Ubuntu側にいないユーザーを指定してもエラーになる。

 デフォルトでは、システムのユーザーのパスワードとSambaのユーザーのパスワードは同期するようになっている。この機能を無効にすることもできるが、今回はこの設定のまま使用するので、そういうものだということを覚えておこう。

ファイルやフォルダーの共有

 何らかの事情でSamba用の領域にあるファイルやフォルダーを、とあるユーザーで簡単に管理したいという場合、グループパーミッションを使用すると便利だ。デフォルトで「sambashare」というグループがあるので、これを使い回すことにする。この機能は確かに便利だが、そのぶんセキュリティは下がることに注意されたい。不用意に「sambashare」グループにユーザーを追加するのは避けてほしい。

誰でもアクセスできるフォルダーの作成

 まずはユーザーに関係なく誰でもアクセスできるフォルダーを作成する。ここで重要なのは、「誰でも」ユーザー全員という意味ではなく、ユーザー以外の誰もがアクセスできるということだ。この違いは大きい。

 それでは実際にファイルを置くフォルダーを作成する。今回は「/srv/samba/share」というフォルダーを作成し、グループを「sambashare」にする(リスト7)。

リスト7 共有フォルダーの作成

$ sudo mkdir -p /srv/samba/share
$ sudo chgrp sambashare /srv/samba/share/
$ sudo chmod 775 /srv/samba/share/

■作成したフォルダーのグループとパーミッションを変更しておく。

 次は設定に移る。smb.confに「map to guest = bad user」という項目がデフォルトで設定されている。ので、ここは特に設定をしなくてもいい。あとは一番下にリスト8のように追記する。編集が終わったら、「smb.conf」を再読み込みするために、リスト9のコマンドを実行してやろう。

リスト8 共有フォルダーの設定

[share]
browseable = yes
writeable = yes
path = /srv/samba/share
force create mode = 664
force directory mode = 775
force group = sambashare
guest ok = yes
guest only = yes

■リスト7で作成したフォルダーの設定を行なっている

リスト9 設定を反映する

$ sudo service smbd reload

■更新した設定ファイルを反映するため、再読み込みを行なう。

 これでNautilusやExplorerでアクセスすると、パスワードを聞かれずに誰もがアクセスでき、ファイルやフォルダーの作成や削除が可能なフォルダーができあがる。ここに作成されたファイルのパーミッションは664で、ユーザーは「nobody」となるが、グループは「sambashare」となる。この権限で、ファイルの作成や削除が可能になる。

個人だけがアクセスできるフォルダーを作成

 通常「/srv」というフォルダーには、個人が作成したファイルやフォルダーは置かないのが習慣である。必ずしもそうしなくてもいいのだが(ホームフォルダーの共有もできるが、今回は取り上げない)、ひとつのフォルダーにまとまっているとバックアップの面などで便利なので、あえて/srvフォルダーに個人のフォルダーを作成してみる。今回のサンプルユーザーは「ayase」とする(リスト10)。グループを何にするかは悩みどころだが、今回はsambashareで統一することにした。

リスト10 個人用フォルダーの作成

$ sudo mkdir -p /srv/samba/ayase
$ sudo chown ayase:sambashare /srv/samba/ayase

■作成したフォルダーのグループとユーザー名を、設定する。

 smb.confはリスト11のとおりにする。やはり一番下に追記でいい。設定変更後はリスト9の実行をお忘れなく。これでユーザー「ayase」だけがログインできるフォルダーができた。例えば「ayase」以外に「kirino」や「manami」ユーザーでもアクセスしたい場合は、「valid users」にスペースで区切ってユーザー名を追加すればいい。

List 11 個人用フォルダーの設定

[ayase]
browseable = yes
writeable = yes
path = /srv/samba/ayase
force create mode = 664
force directory mode = 775
force user = ayase
force group = sambashare
valid users = ayase

■リスト10 で作成した個人用フォルダーの設定

 ただし、いずれのユーザーでログインした場合でも、作成したファイルのパーミッションは「ayase」ユーザーのものとなる点に気をつけよう。

 これでHP ProLiant MicroServerはWindowsから利用できるNASとなった。次回は、iTunesなどに音楽を配信する「DAAPサーバー」の機能を追加しよう。

 本記事は、Ubuntu Magazine Japan vol.07掲載の「MicroServerとSambaで作るオリジナルNAS」を再編集したものです。内容は原則として掲載当時のものであり、現在とは異なる場合もあります。

カテゴリートップへ

この連載の記事