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

今回は、Raspberry Piをファイルサーバにしてリモートからファイルアクセスできるようにします。このようにすると、MacやWindowsからファイルを開くことができますので、ファイルの編集がやりやすくなります。必須ではありませんので、必要に応じて作業してみてください。

今回の説明内容

Raspberry Piのファイルサーバ設定は必須ではありませんので、必要がなければ次の「Raspbian補足」の記事に進んでいただいて問題ありません。

前回の開発環境をつくる記事では、デスクトップアプリのエディタ(Atom)上でRaspberry Piに接続する設定をしました。ただ、Atom以外のエディタを使いたい方もいらっしゃるかもしれません。その場合は、Raspberry Piをファイルサーバに設定すれば、MacやWindowsから直接ファイルを操作できます。

Raspberry Piファイルサーバ

このように、macOSの場合はFinderから、Windowsの場合はExplorereからRaspberry Piの/home/piにアクセスできるようになります。本記事では以下の順番で説明します。

  1. ファイルサーバソフト(Samba)をインストールする
  2. Sambaの設定を行う
  3. Sambaのユーザ登録を行う
  4. Macからアクセス確認する
  5. Windowsからアクセス確認する

 

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

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

それでは早速インストールしましょう。最初にリポジトリを最新の状態にします。

pi@raspberrypi ~ $ sudo apt-get update

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

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

結構時間がかかると思いますが、コマンドプロンプトが表示されればインストール完了です。インストールが完了するとSambaが起動していますが、何も設定していませんのでこの段階ではMacやWindowsからアクセスできません。次ステップでアクセスできるように設定を行います。

 

2. Sambaの設定を行う

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

/etc/samba/smb.conf

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

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

それでは、smb.confを編集する前に、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用にユーザ登録します。Raspberry Piはデフォルトでpiユーザが登録されていて、私たちはこのpiユーザを使用しています。ということはpiユーザでファイルサーバ(Samba)にアクセスできそうなものですが、実際にはできせません。というのは、SambaはRaspbian(Raspberry PiのOS)とは別ものなので、Sambaに「piユーザがアクセスしますよ」ってことを教えてあげる必要があります。

それでは、piユーザをSambaに登録しましょう。「smbpasswd」というコマンドを使用します。

以下のように「sudo smbpasswd -a pi」と入力します。smbpasswdの後に「-a pi」とありますが、「-a」はユーザ追加(add)の意味、そのあとはユーザ名(pi)で、「ユーザ名piを追加してください」という意味になります。

コマンドを入力すると2回パスワードを聞かれますので、パスワードを入力します。このパスワードはMacやWindowsからアクセスする時に入力するパスワードになります。

pi@raspberrypi ~ $ sudo smbpasswd -a pi
New SMB password: [ここでパスワードを入力]
Retype new SMB password: [もう一度パスワードを入力]
Added user pi.

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

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

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

これでユーザ登録が終わったのですが、Samba本体はこの登録したユーザを認識していません。登録したユーザを有効にするために、以下のコマンドを入力してSambaを再起動します。

pi@raspberrypi ~ $ sudo service smbd restart

これでファイルサーバが有効になり、MacやWindowsからアクセスできるようになりました。

 

4. Macからアクセス確認する

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

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

Samba macOS 手順1

接続先を聞かれますので、「smb://raspberrypi.local」と入力します。最初の「smb://」はsambaファイルサーバに接続してください、という意味です。

Samba macOS 手順2

接続確認ダイアログが表示されますので、OKボタンをクリックします。

Samba macOS 手順3

ユーザ名とパスワードを聞かれますので、ユーザ名「pi」、パスワードは登録したものを入力します。入力したら「接続」ボタンをクリックします。

Samba macOS 手順4

アクセスディレクトリの確認があります。「pi」が選択されていることを確認してOKボタンをクリックします。

Samba macOS 手順5

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

Samba macOS 手順6

これで接続確認できました。ファイルをコピーしたり、ファイルをダブルクリックして好きなエディタで編集できます。

 

5. Windowsからアクセス確認する

Windowsからアクセス確認します。

最初にエクスプローラを開きます。エクスプローラの「PC」を右クリックするとメニューが表示されますので、「ネットワークドライブの割り当て」を選択します。

Samba Windows 手順1

次に接続先を設定するダイアログが表示されますので、以下のように入力します。ドライブレターとは、例えば起動ディスクは通常「C:」に割り当てられています。これから接続するRaspberry Piもいずれかのローマ字を割り当てますので、まだ割り当てられていない文字を選択します。

また、「別の資格情報を使用して接続する」は必ずチェックしてください。これをチェックしないと、ユーザ名が現在ログインしているWindowsのユーザ名で接続しようとします。Raspberry Piには「pi」ユーザで接続しますので、このチェックボックスはONにします。

Samba Windows 手順2

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

Samba Windows 手順3

さて、ここで「接続できません」と表示されてしまうケースがあります。どうも「raspberrypi.local」で接続できないことがあるらしく、一度接続できないと、何度試しても接続できない現象が発生してしまいます。

そこで、接続できない場合は以下の手順で接続してください。

まず、Windowsメニューの「Windowsシステムツール」から「コマンドプロンプト」を選択します。

Windowsコマンドプロンプト

次に、コマンドプロンプトの画面で以下のように入力してリターンキーを押します。なお、「V:」の文字は空いているドライブレター、「パスワード」はsmbpasswdで設定したパスワードです。

net use V: ¥¥raspberrypi.local¥pi /user:pi パスワード

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

Samba Windows手順4

これで接続確認できました。ファイルをコピーしたり、ファイルをダブルクリックして好きなエディタで編集できます。

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

 

更新履歴

日付 内容
2015.11.1 新規投稿
2019.4.21 Raspbian Stretchの手順に変更