できること

第7回「ラズベリーNASをカスタマイズ!」

rasp07_main01

前回は、Sambaを使ってRaspberry PiをNAS化することに成功しました!

当初の目的である「社内NAS」として使っていくには、共有フォルダが1つではまだまだ不十分。誰でも入れる共有フォルダの他に、パスワード付きの自分専用フォルダが欲しいところです。部署ごとで使えるようなグループフォルダもあると便利ですね。

今回は「アクセス制限」を中心に、社内NASとして使いやすいようにカスタマイズしていきたいと思います!

 

まずはSWATの準備!

前回インストールしたSambaの設定ツール「SWAT」を使って、各種パラメータの設定を行なっていきます。
ブラウザで http://localhost:901/ にアクセスし、rootユーザーでSWATにログインします。

rasp07_img1_2
他のユーザーでもログイン可能ですが、設定できる項目が限られてしまうので、必ずrootユーザーでログインしましょう。

 

GLOBALSを確認!

メニューの左から二番目の「GLOBALS」は、Samba全体の共通設定です。いくつか初期値が設定されているので、NASに影響する設定がないか、先に確認しておきましょう。

rasp07_img01

 

間違えやすいのは「security」の設定。ディレクトリごとの個別の設定を「SHARES」で行うので、なんとなく直感的に「share」を選択してしまいそうになりますが、なんと非推奨設定となっています。(わたしはこれで随分手間取ってしまいました……)
NASとして使うにはデフォルト値の「USER」のままで良さそうです。

「workgroup」と「netbios name」は、どちらもWindowsからアクセスした際にエクスプローラから確認することができます。これもデフォルトのままでも大丈夫そうですね。

rasp07_img02

 

ユーザーを作ります!

ログインが必要なディレクトリを作成するにあたり、先にRaspbian側でユーザー追加を行います。ユーザーの作成方法は、前回rootユーザーを作るときに調べました。Linuxコマンド「adduser」です!いつものようにLX Terminalからコマンドを入力します。

 

adduser maru

 

自分専用ということで、「maru」というユーザーを作ってみました。今回はrootアカウントでログインしているので、「sudo」は付けなくてもOKです。

rasp07_img03

実際の画面がこちらです。コマンドの入力後、パスワードを聞かれますので、同じものを2回入力してください。その後、フルネームや部屋番号なども聞かれますが、今回は特に必要ないのでEnterキーを押してスキップしていきます。正しく入力できたら、「y」キーで完了です!

Raspberry Piのユーザー作成が終わったら、次はSambaのユーザーを作成します。SWATを使ってやってみましょう!

こちらのページを参考にさせていただきました!

Sambaのユーザー作成は「PASSWORD」画面から行います。

rasp07_img04

 

「User Name」に先程Raspbianに登録したユーザー名を入力し、「New Password」と「re-type New Password」には任意のパスワードを入力します。今回は新規作成なので「Add New User」ボタンをクリックします。

ボタンの下に「Added user maru.」とメッセージが表示されると、ユーザー作成の完了です!

 

個人用ディレクトリを作ります!

ディレクトリの準備も、前回同様に進めていきます。

先程「maru」というユーザーを作成したので、「home」の中にユーザー名のフォルダができていました。今回はこの中に設定したいと思います。

 

/home/maru/nas/

 

rasp07_img05

作りたいのは自分専用ディレクトリなので、パーミッションはデフォルトのまま、所有者のみが読み書き可能な状態にしておきます。

rootユーザーでログインした状態でフォルダを作成したので、所有者が「root」となっています。ここは、「maru」に書き換えてしまいましょう。

それではSWATから、ディレクトリを設定したいと思います。
「SHARES」画面に移動します。

rasp07_img06

 

「Create Share」ボタンの右となりにテキストボックスがありますので、ここに任意のディレクトリ名を入力します。今回は「maru_nas」としました。入力したら、「Create Share」ボタンをクリックします。

 

rasp07_img07

ディレクトリが作成され、パラメータが入力できるようになりました!最初はからっぽの状態なので、必要な項目を設定していきます。

分かるところからひとつずつ埋めていきましょう!
まずは「path」です。先程作成したディレクトリパス(/home/maru/nas/)を入力します。そして上の方にある「Commit Changes」ボタンをクリックします。

これで他のマシンから確認できるようになるはず!ということで、WindowsマシンからNASに接続してみました。……あれ? ディレクトリが出てこない…?

 

SWATとコマンドの違い

コマンドラインからの入力と、SWATを使った設定では、何違いがあるのでしょうか。

SWATの「VIEW」画面から確認してみましょう。メニューの右から二番目にある「VIEW」アイコンをクリックします。
下の方にスクロールしていくと、前回作成した「all」ディレクトリと、今作成した「maru_nas」ディレクトリが並んでいます。
比べてみると……

rasp07_img08

 

前回の記事で確認してみると、「all」の方は入力したもののみが表示されていました。「maru_nas」の方は……「path」しか設定していないはずなのに、「available=No」という見覚えのない文字列が!SWATを使う場合と、コマンドで設定する場合とでは、デフォルト値の認識が少し違うのでしょうか。「SHARES」画面に戻って、「available=Yes」に設定し直せば解決です!
Widowsから再度アクセスする前に、Sambaを再起動しましょう。

 

Sambaの再起動

Sambaの設定を変更した際は、再起動が必要です。再起動はメニューの右から3つ目の「STATUS」から行うことができます。

rasp07_img09

操作は簡単!「Restart All」をクリックするだけです。ワンクリックで全部やってくれるのでとても便利!

設定がうまく反映されているかは、Windowsから見てみると確認できます。

rasp07_img10

新ディレクトリ登場!成功です!
まずはこれで、前回と同じ「誰でもアクセスできるディレクトリ」の状態になりました。

 

アクセス制限で自分専用ディレクトリに!

次は、自分だけがアクセス可能なように、パスワード制限をかけたいと思います。userが含まれているパラメータ名はたくさんありますが、「valid users」というパラメータです。

valid users (S)

「SHARES」画面から、「valid users」というパラメータに、先程準備しておいたユーザー「maru」を入力します。複数指定する場合は、半角カンマ区切りで追加しましょう。

Windowsから「maru」ディレクトリにアクセスすると……

rasp07_img11

 

パスワードの入力ボックスが表示されました!

rootユーザーのログイン情報を入力してみたり、パスワードを間違えてみたり、正しく動くかどうか試してみましたが、Sambaに設定したログイン情報以外では入ることができなかったので、成功しているようです。

書き込みができるように「write list」と「read only 」の値も調整し、各パラメータは最終的に次のようになりました。

 

[maru_nas]
path = /home/maru/nas/
valid users = maru
write list = maru
read only = No

 

自分専用NAS、完成です!

 

ユーザーグループを使ってグループディレクトリを作成!

個人フォルダの他に、部署ごとで使えるようなディレクトリがあると便利ですね。でも一人分ずつユーザー名を設定するのは面倒……そんなときは「ユーザーグループ」の出番です!

まずはRaspbian側の設定から。ユーザーグループを作成し、グループにユーザーを登録します。

rasp07_img12

groupadd developer
gpasswd -a maru developer

 

groupadd:グループを作成するコマンド。

gpasswd:グループを管理するコマンド。「-a」はユーザーをグループに追加するオプション値。

LX Terminalよりコマンド入力です。「developer」グループを作成し、先程作った「maru」ユーザーを追加してみました。処理は一瞬で完了します。

次はSambaの設定です。ユーザーのときとは違い、グループをSambaに登録する必要はないので、行うのはディレクトリ作成のみです。
まずはフォルダの準備です。今回はこのようにしました。

rasp07_img13

 

SWATの「SHARES」より、「developer」グループを作成します。手順は先程の自分専用ディレクトリと同じなので割愛します。

完成した設定はこちら!

 

[developer]
path = /home/developer
valid users = +developer
write list = +developer
read only = No

 

ポイントは「valid users」と「write list」のパラメータです。文字列「+」からはじまっています。これは、UNIXのグループ名という意味です。

「write list」パラメータは、書き込み権限が与えられるユーザーのリストです。今回の場合は、「valid users」と合わせてdeveloperグループを指定しています。

 

smb.conf – invalid users

「valid users」の逆、「invalid users」パラメータの項に説明が書いてあります。

smb.conf – write list

 

developerグループに所属するユーザーだけが読み書きできるグループディレクトリが完成しました!ユーザーを増やしたい場合は、「gpasswd」コマンドを使って、このグループにユーザーを追加してあげればOKです。

 

まとめ

誰でも使える共有ディレクトリ、・グループ用の共有ディレクトリ、自分専用ディレクトリと、3種類のディレクトリ作成に成功!人数分、部署分のディレクトリを用意すれば、社内NASとして便利に使っていけそうです!

NASを作ったごほうび(?)に、新しいRaspberry Piをもらいました!

rasp07_img14

Raspberry Pi model B+です!

次回(第8回)はこの新しいRaspberry Piを使って遊んでいきたいと思います。記事を書きながら勉強してきたことの復習です!2回目なのできっとスムーズにできるはず!?

アバター画像

プロフィール:プログラミング暦通算4年、最近IT業界に舞い戻ってきたプログラマーです。女子です。

学生ロボコン2017 出場ロボット解剖計画