第14回 Raspberry Piのファイルサーバ設定をする

今回はRaspberry Piをファイルサーバにして、リモートからファイルアクセスできるようにします。このようにすると、MacやWindowsのデスクトップから普通にファイルを開くことができますので、ファイルの編集がやりやすくなります。設定はちょっと面倒です。この記事では新しいコマンドの説明はしませんので、必要がなければ読み飛ばして頂いて構いません。

今回の説明内容

今回は新しいコマンドの説明や考え方は説明していませんので、必要がなければ次の「Raspbian補足」の記事に進んでいただいて問題ありません。

前回の開発環境をつくる時に、デスクトップアプリのエディタを使用したいがために、FTPクライアントをインストールしたりして使い勝手がちょっといまいちって感じでした。

今回は、Raspberry Piにファイルサーバ機能を入れて、クライアントのMacやWindowsからはファイルサーバにアクセスするようにしてみます。アクセスできるようになると、Macの場合ではこんな感じでアクセスできるようになります。

Finder access

以下の内容で説明しますが、今回は設定手順のみの説明になります。

  • ファイルサーバソフト(Samba)をインストールする
  • Sambaの設定ファイルを編集する
  • Sambaのユーザ登録を行う
  • Macからアクセス確認する
  • Windowsからアクセス確認する

 

ファイルサーバソフト(Samba)をインストールする

ファイルサーバのソフトは何種類かありますが、MacからもWindowsから簡単に接続できるように「Samba」というパッケージをインストールします。

それでは早速インストールしましょう。インストール途中にインストールしてもいいか確認がありますが、それをスキップするために今回は「-y」オプションをつけています。

pi@raspberrypi ~ $ sudo apt-get -y install samba

結構時間がかかると思いますが、コマンドプロンプトが表示されればインストール完了です。

 

Sambaの設定を行う

それでは、Sambaの設定を行います。設定ファイルは、

/etc/samba/smb.conf

です。このファイルのパーミッションは「- rw- r– r– root root」ですので、root以外は書き込み権限がありません。ということで、これからsudo nanoでこのファイルを開いて編集します。設定変更については、編集前と編集後の内容を記載し、編集箇所は赤文字で示します。

編集を始める前に、smb.confのファイル構成を確認しておきます。smb.confはブロックごとに分かれていて、[ ] (カギ括弧)や####などで区切られています。この区切りを頼りに編集箇所を説明します。なお、以下の設定はセキュリティ観点でちょっと弱いので、もしRaspberry Piをルータ内ではなく、直接インターネットに接続する場合は、注意してください。

それでは、smb.confを編集する前に、バックアップを取っておきましょう。

pi@raspberrypi ~ $ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

次に設定ファイルを開きます。

pi@raspberrypi ~ $ sudo nano /etc/samba/smb.conf

開いたら、以下のように変更していきます。

まず、最初の方に [global] ブロックがありますので、ここに文字コードを以下のように追加記入します。

変更前:

[global]

変更後:

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

次はファイルやフォルダ作成時のパーミッションの変更です。デフォルトの設定はかなり厳しいのですが、一般的な設定に変更しておきます。

しばらく下の方に行くと、

#======================= Share Definitions =======================

というところがあります。このブロックで以下の3か所の変更をします。

まず1つ目です。これはファイルの書き込みを許可するように変更する設定です。

変更前:

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
   read only = yes

変更後:

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
   read only = no

次に2つ目です。これはファイルのパーミッションを緩くする設定です。

変更前:

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
   create mask = 0700

変更後:

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
   create mask = 0664

最後の項目です。これはディレクトリのパーミッションを緩くする設定です。

変更前:

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
   directory mask = 0700

変更後:

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
   directory mask = 0775

これで設定が終わりましたので、control + Oで保存、Control + Xでnanoを終了します。

 

Sambaのユーザ登録を行う

次にSambaにユーザ登録します。piユーザでアクセスしますので、piユーザをSambaに登録します(Raspbianにアカウントがあっても自動的にSambaに登録されるわけではありません)。2回パスワードを聞かれますので、piユーザと同じパスワードを入力します。

pi@raspberrypi ~ $ sudo smbpasswd -a pi
New SMB password:
Retype new SMB password:
Added user pi.

これでユーザ登録が終わりました。

(2016.2.5 追記 – ここから)
コメント欄で情報をいただきました点を追記いたします。

上のコマンドを入力した時に「command not found」でエラーになってしまう場合は、smbpasswdコマンドがインストールされていないためです。そこで、エラーになる場合は以下のコマンドにより追加でインストールを行ってください。

pi@raspberrypi ~ $ sudo apt-get -y install samba-common-bin

(2016.2.5 追記 – ここまで)

最後に設定を有効にするために、Sambaを再起動します。

pi@raspberrypi ~ $ sudo service smbd restart

これでファイルサーバが有効になっているはずです。

 

Macからアクセス確認する

それでは、Macから接続してみます。

まず、Finderの「移動」メニューから「サーバに接続…」を選択します。

Smb mac 1

次に、接続先として、「smb://raspberrypi.local」と入力します。

Smb mac 2

ユーザ名とパスワードを聞かれますので、ユーザ名「pi」、パスワードは登録したものを入力します。パスワードはキーチェインに登録しておくとよいと思います。入力したら「接続」ボタンをクリックします。

Smb mac 3

アクセスディレクトリの確認がありますので、「pi」を選択してOKボタンをクリックします。

Smb mac 4

うまく接続できると、以下のようにホームディレクトリが表示されます。あとは普通のFinderと同じようにファイルのアクセスができます。

Smb mac 5

このような環境であれば、ファイルをダブルクリックして編集できたりします。

 

Windowsからアクセス確認する

それではWindowsからアクセス確認してみます。

まずエクスプローラを開き、エクスプローラの「コンピュータ」メニューを選択します。選択すると、「ネットワークドライブの割り当て」というメニューが出てきますので、それを選択します。

Win smb 1

次にドライブの割り当て設定ダイアログが表示されますので、以下のように入力します。

Win smb 2

「サインイン時に再接続する」のチェックをつけると、Windowsを立ち上がるたびにRaspberry Piに接続しますので、必要があればチェックをつけます。設定が終わったら「完了」ボタンをクリックします。

次に接続するためのユーザ名とパスワードの入力ダイアログが表示されますので、以下のように入力します。

Win smb 3

うまく接続できると、以下のようにホームディレクトリが表示されます。あとは普通のファイルと同じようにアクセスができます。

Win smb 4

このような環境であれば、ファイルをダブルクリックして編集できたりします。

次回はRaspbianの補足説明をしてRaspberry Piのセットアップを終わります。

« »

  • おまっちゃお

    初めまして!このサイトを見させて頂いている電子工作のど素人ですが、とても親切に書いてくれてあるのでいつも助かっています。こちらの記事でひとつ気になった点があったのでコメントさせていただきます。

    sambaのユーザー追加部分にて、「sudo smbpasswd -a pi」とコマンドをタイプする場面がありますが、このsmbpasswdコマンドが何度実行してみても「command not found」となり、コマンドが見つかりませんでした。
    調べたところ以下の記事を見つけ、この記事内にある通り「sudo apt-get install samba-common-bin」でインストールしたところ、正しくsmbpasswdコマンドを利用できるようになりました。
    http://foolish-oknct.hatenablog.com/entry/2014/06/17/215128

    • claynets

      はじめまして!
      コメントどうもありがとうございました!

      情報どうもありがとうございます。自分の環境ではsmbpasswdが使えてしまった(?)のでこの記事の手順でOKだと思っていたのですが、
      samba-common-binのインストールが必要なんですね。インストールしておいても問題ありませんので、後日、samba-common-binもインストールする内容で記事を変更しておきますね。

      どうしても自分の環境だけで確認して記事を書くので、このようなコメントいただけるととても助かります。

      情報どうもありがとうございました!

  • 参考になりました!
    ありがとうございます。