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 piのIPアドレス
以上。
機器: raspberry pi3 model B
OS: raspbian jessie
(感想: ntfsフォーマットdiskと新規ユーザ nasでアクセスするところにハマったが、比較的容易な作業。)