概要
Linux OSと組み合わせて高性能なファイルサーバーを実現。 WindowsとLinux間でファイルやプリンタの共有が可能になります。 特にRaspberry PIのコードを書く場合、コードを共有フォルダに保存すれば PC側からコードへのアクセスが可能になりPCのEditorでコードの作製が出来とても便利です。
インストール
インストールは簡単。
sudo apt upgrade
sudo apt install samba
設定の概要
SAMBAの設定は /etc/samba/smb.conf を編集して行います。 各パラメタの詳細はここ”smb.conf” を参照下さい。
全般設定[global]設定
- ネットワーク・識別設定
- workgroup : ワークグループ名。Windows側の設定と合わせる
- netbios name : サーバのコンピュータ名
- server string : サーバの説明文
- interfaces : 動作するインターフェース
- bind interfaces only : 指定したネットのみに制限
- セキュリティと認証
- security = user : 標準的な設定。ユーザーデータベース(smbpasswd 等)で認証
- hosts allow = 192.168.1. 127. : IPアドレスベースの接続制限
共有フォルダ[ShareName]設定
- 基本アクセス制御
- path = /path/to/dir : 共有するディレクトリの絶対パス
- comment = Shared Folder : Windowsのエクスプローラーで表示される説明文
- browseable = yes / no : ネットワーク一覧表示の有無
- guest ok = yes / no : yes にすると、パスワードなしでアクセス可能
- 読み書き権限
- read only = yes / no : yes -> 読み取り専用、no -> 書き込み可能。
- valid users = user1, @group1 : アクセスを許可するユーザーやグループの限定
- write list = user1 : 特定のユーザーにだけ書き込みを許可
- ファイル・フォルダ作成の権限
- create mask = 0644 : 所有者は読み書き、その他は読み取りのみ
- directory mask = 0755 : フォルダの中身を見れるが、書き込めるのは所有者のみ
- ユーザーの強制
- create mask = 0644 : 所有者は読み書き、その他は読み取りのみ
- directory mask = 0755 : フォルダの中身を見れるが、書き込めるのは所有者のみ
実際の設定
Raspberry PIのホームに”samba”というフォルダを作りこれを共有する例です。
共有用フォルダの製作
共有フォルダは権限に注意して作製して下さい。権限によってはそれが原因でアクセス出来ない事が生じます。 フォルダ製作後使用目的に合わせて権限を設定して下さい。
smb.confの編集
/etc/samba/smb.confの最後に下記を追加します。
[raspberry_pi]
comment = Share
path = /home/pi/samba
public = yes
read only = no
browsable = yes
force user = pi
- 1行目: 共有名, DeskTopから見える名前
- 2行目: ディレクトリの説明に記述されるコメント
- 3行目: 共有フォルダのパス。(ユーザを”pi"としてOSをインストールした場合)
- 4行目: Yesならパスワードを要求されない。
- 5行目: NO->Read Onlyでは無い→読み書き可能
- 6行目: Yes→「ネットワークコンピュータ」に表示する
- 7行目: どのユーザで接続しても指定したユーザ(pi)とみなされる。
設定完了後、$ sudo systemctl start smbd でサービスの開始。 $ sudo systemctl enable smbd でサービスの自動起動となります。
確認
UbuntuのファイルマネージャーでRaspberry PIの共有フォルダを共有出来るか確認します。
- 先ずファイルマネージャーで”その他の場所”をクリック。表示された”RASPBERRYPI”をクリック。
- ”raspberr_pi”が表示されます。これが共有フォルダーです。これをクリック
- 匿名にチェックの入った画面が表示されます。
- Public Yesで設定しているので、そのまま、”接続する”を押します。
- ここが共有フォルダの中身です。確認出来ました。
最後に
ほとんどUbuntu<->Raspberry PI間での使用ですが、Raspberry PI用のコードを書く時には非常に役立っています。