Raspberry Pi 4でWindowsからアクセスできるファイルサーバーを作ってみました。
以前も今回同様にsambaでファイルサーバーを作りましたが、構築後は頭からきれいさっぱり構築手順が消えてなくなります。
ということでちゃんとメモしときます。
環境
- Raspberry Pi 4
$ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
- USB経由でSDカードマウント済み
df -Th | grep sda /dev/sda1 vfat 30G 64K 30G 1% /home/pi/SD
SDカードマウント~フォーマット
SDカードのマウントとフォーマットについては以前の記事を見てください。
なお、使用しているSDカードは32GBのものに変更しました。


ファイルサーバー作成
今回は、パスワードなしでアクセスできるものと、ユーザー認証が必要なものの2種類を作成しました。
パッケージ インストール
必要なパッケージをインストール
$ sudo apt -y install samba
バージョン確認
$ smbd -V Version 4.9.5-Debian
パスワードなしでアクセス可能なファイルサーバーの作成
ディレクトリ作成
※root権限で作業してます。
ディレクトリ作成
# mkdir -p /home/samba
ディレクトリの所有者確認
# ll /home/ 合計 8 drwxr-xr-x 16 pi pi 4096 11月 9 10:22 pi drwxr-xr-x 2 root root 4096 11月 9 10:50 samba
作成した/home/sambaの所有者がrootになっているので、”nobody nogroup”に変更します。
ディレクトリの所有者変更
# chown nobody:nogroup /home/samba/
再度、ディレクトリの所有者確認
# ll /home/ 合計 8 drwxr-xr-x 16 pi pi 4096 11月 9 10:22 pi drwxr-xr-x 2 nobody nogroup 4096 11月 9 10:50 samba
無事、所有者変更ができました。
設定ファイルのバックアップ
バックアップのために、/etc/samba/smb.confをコピーしときます。
# cp -p /etc/samba/smb.conf /etc/samba/smb.conf.old # ll /etc/samba/smb.conf* -rw-r--r-- 1 root root 8629 11月 9 10:26 /etc/samba/smb.conf -rw-r--r-- 1 root root 8629 11月 9 10:26 /etc/samba/smb.conf.old
編集内容
# cat /etc/samba/smb.conf [global] dos charset = CP932 unix charset = UTF8 security = user enscript passwords = yes map to guest = Bad User passdb backend = tdbsam ntlm auth = yes [share] path = /home/samba/ browsable =yes writable = yes guest ok = yes guest only = yes read only = no create mode = 0777 directory mode = 0777
shareという名前でパスワードなしでアクセスできるファイルサーバーを設定しました。
サービス再起動
# systemctl restart smbd.service
アクセス確認
Windows10からアクセスしてみます。
『share』が表示されました。
パスワードなしでアクセスでき、ファイルの書き込みもできました。
書き込んだ内容をRaspberry Piから見ることもできました。
$ cat /home/samba/新しいテキスト\ ドキュメント.txt dfasdggfhkaugkefa
意味のない文字列ですが。。。
既存ユーザーをsambaアクセスユーザーとして設定する
今回はユーザー:piをsambaアクセス可能なユーザーとして設定します。
先ほどのだれでもアクセス可能なディレクトリとは異なるディレクトリに、piのみアクセス可能なファイルサーバーを設定します。
# pdbedit -a pi Unknown parameter encountered: "enscript passwords" Ignoring unknown parameter "enscript passwords" Unknown parameter encountered: "enscript passwords" Ignoring unknown parameter "enscript passwords" new password: retype new password:
Unix username: pi NT username: Account Flags: [U ] User SID: S-1-5-21-1811212592-3493324344-1103245892-1000 Primary Group SID: S-1-5-21-1811212592-3493324344-1103245892-513 Full Name: Home Directory: \\raspberrypi\pi HomeDir Drive: Logon Script: Profile Path: \\raspberrypi\pi\profile Domain: RASPBERRYPI Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: 火, 09 11月 2021 11:10:11 JST Password can change: 火, 09 11月 2021 11:10:11 JST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
ディレクトリ作成
せっかくSDカードをマウントしているのでSDカード内にディレクトリを作成しました。
$ mkdir -p /home/pi/SD/sd_samba
/etc/samba/smb.confの編集
/etc/samba/smb.confに以下の内容を追記します。
[share2] path = /home/pi/SD/sd_samba browsable =yes writable = yes guest ok = no guest only = no read only = no create mode = 0777 directory mode = 0777
/etc/samba/smb.confをcatした内容
$ cat /etc/samba/smb.conf [global] dos charset = CP932 unix charset = UTF8 security = user enscript passwords = yes map to guest = Bad User passdb backend = tdbsam ntlm auth = yes [share] path = /home/samba/ browsable =yes writable = yes guest ok = yes guest only = yes read only = no create mode = 0777 directory mode = 0777 [share2] path = /home/pi/SD/sd_samba browsable =yes writable = yes guest ok = no guest only = no read only = no create mode = 0777 directory mode = 0777
piをsambaアクセスできるようにする
# pdbedit -a pi Unknown parameter encountered: "enscript passwords" Ignoring unknown parameter "enscript passwords" Unknown parameter encountered: "enscript passwords" Ignoring unknown parameter "enscript passwords" new password: retype new password:
Unix username: pi NT username: Account Flags: [U ] User SID: S-1-5-21-1811212592-3493324344-1103245892-1000 Primary Group SID: S-1-5-21-1811212592-3493324344-1103245892-513 Full Name: Home Directory: \\raspberrypi\pi HomeDir Drive: Logon Script: Profile Path: \\raspberrypi\pi\profile Domain: RASPBERRYPI Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: 火, 09 11月 2021 11:10:11 JST Password can change: 火, 09 11月 2021 11:10:11 JST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
サービス再起動
# systemctl restart smbd.service
アクセス確認
↓
↓
感想
sambaでファイルサーバーを作ったことは何度かあるのですが、参考にするページによって記述内容がいろいろありとても迷います。
まあそれだけsambaで実現できることが多く柔軟性の高い仕組みということだと思います。
勉強することはまだまだたくさんあるのでコツコツと続けていこうと思います。
Raspberry Piのはじめ方 (日経BPパソコンベストムック)
WIMAXIT 7インチ Raspberry Pi用タッチモニター IPS 1024X600 HDMI端子/Raspberry Pi 4/3/2/1 Model B A+ B+ BB Black Banana Pi Windows10/8/7対応
Raspberry Pi 4 8GB(技適マーク入)MicroSDHCカード128G/Raspbianシステムプリインストール/カードリーダ /5.1V/3A Type-C スイッチ付電源/MicroHDMI-to-HDMIケーブルライン/三つヒートシンク/簡単に取り付けケース/日本語取扱説明書/12ヶ月保証
エレコム micro HDMI ケーブル 1m 4K×2K対応 スーパースリム ブラック DH-HD14SSU10BK







コメント