Raspberry pi3 に新規ユーザ下でsambaサーバ (NASファイルサーバ)

Raspberry pi3 に新規ユーザ下でsambaサーバ (NASファイルサーバ)
2016/12/18

家庭内lanで、WiFi無線lan router (OS: DD-WRT)のNAS機能を利用して、ファイルサーバ (NAS (Network Attached Storage (?))を立てていた。raspberry pi3 modelB (OS: raspbian jessie)導入に伴い、ファイルサーバをraspberry piに移行。その手順記。

ファイルサーバは、sambaサーバを立てる事で簡易に実装する。「raspberryにsambaサーバ」は、多数の記事があるので今更では有るが、殆どは admin権限のある初期ユーザアカウント化で実現しており、セキュリティー的に少し心配。そこで、ここでは、admin権限を持たない新規ユーザを登録して、そのユーザ下のdirectoryをaccess可とする。

1. samba 及び ntfs-3g のインストール

> sudo apt update    ← インストール可能ソフトリストを最新版にアップデート
> sudo apt install samba

> sudo apt install ntfs-3g
← 重要:外付けストレージが ntfs フォーマットの場合、raspbianはread-onlyでマウントする。read-writeにするには ntfs-3g パッケージをインストールする必要がある。

2. smb.conf の編集

> sudo cd /etc/samba
> sudo cp smb.conf smb.conf.original    ← オリジナルを保存しておく
> sudo vi smb.conf

>>> 以下を編集・追記
# map to guest = bad user    ← #を付けてコメント化
read only = no    ← 読み書き可とする
interfaces = 192.168.xxx. 127.0.0.0/8 eth0    ← 家庭内lan 192.168.xxx. からのみaccess可とする。
host allow = 192.168.xxx.
security = user

>>> ファイルの最後に以下を追記
[nas]
comment =nas directory
path = /media/nas1    ← nasとしてアクセスするdirectory
valid users = @nas    ← 新規ユーザ (nas)でaccess
public = yes    ← ゲストユーザもaccess
force group = nas
create mask = 0660
directory mask = 0771
read only = no

<<< ファイルを保存する (esc > :wq)

> sudo /etc/init.d/samba restart    ← sambaをリスタート


3. raspbianに新規ユーザーを追加

> sudo adduser nas
>>> パスワード等を定義する

4. sambaにユーザを追加

> sudo pdbedit -a nas
>>> sambaで使うパスワードを定義    ← raspbianにログインするパスワードとは別にする

5. 外付けストレージ (usb stick)のauto mount

Raspbian jessieでは、usb stickは自動的に /media/pi/にマウントされるが、ここでは新規ユーザ nas にマウントされるようにする。(前記のntfs-3gと 新規sambaユーザでハマったので本備忘録。)

> df    ← usb stickの。/dev/sda1 等のdevice directoryを確認。
> ls -l /dev/disk/by-uuid    ← ストレージのuuid xxxxx を確認。
> id -u nas    ← nasのユーザ番号を確認。
> id -g nas    ← nasのグループ番号を確認。

> sudo mkdir /media/nas1    ← usb stickのマウントdirectoryを作成

> sudo vi /etc/fstab    ← automountを定義する
>>> 以下を追記
UUID=xxxxx /media/nas1 auto nofail,uid=<ユーザ番号>,gid=<グループ番号>,noatime 0 0
<<< ファイルを保存

上記を定義しないと、新規ユーザ nasでアクセスすると、パーミッション拒否で蹴られる。(外付けストレージのユーザ・グループがraspberryの初期ユーザのままなので。)

6. raspberryを再起動

> sudo reboot

7. PC他でsambaサーバをアクセス

> smb://192.168.xxx.xxx/    ← 192.168.xxx.xxxは raspberry piIPアドレス


以上。

機器:    raspberry pi3 model B
OS:    raspbian jessie

(感想: ntfsフォーマットdiskと新規ユーザ nasでアクセスするところにハマったが、比較的容易な作業。)