Ubuntuの特定ディレクトリをWindowsエクスプローラーで開く(Samba/SMB)

はじめに

家庭内LANに置いたUbuntu(Linuxサーバ)の特定ディレクトリを、Windowsのエクスプローラーから \\IPaddr\share の形式で開いて読み書きできるようにします。
想定している構成は以下です。

Samba共有の構成図

なぜ Samba(SMB)なのか

WindowsからLinuxのファイルを扱う方法はいくつかありますが、今回はSambaSMBを選びました。

Sambaのメリット

SFTPマウントも選択肢ですが、Windows側に追加ツールが必要だったり、操作感が重く感じることがありました。「Windowsのエクスプローラーで普通に開ければ十分」という用途ならSambaが最短です。

導入手順(Ubuntu側)

1) Sambaをインストール

sudo apt update
sudo apt install -y samba

2) 共有するディレクトリを決める

今回はホームディレクトリを共有します。

別ディレクトリを共有する場合は、後述の path を変更するだけです。

3) Sambaユーザーを作成

Linuxユーザーに紐づけてSamba用のパスワードを設定します。

sudo smbpasswd -a relion911
sudo smbpasswd -e relion911

Ubuntuのログインパスワードと同じでも別でもOKです。

4) 共有設定(/etc/samba/smb.conf)

バックアップを取ってから編集します。

sudo cp -a /etc/samba/smb.conf /etc/samba/smb.conf.bak.$(date +%F_%H%M%S)
sudoedit /etc/samba/smb.conf

末尾に追記します(共有名は share の例)。

[share]
   path = /home/relion911
   browseable = yes
   read only = no
   guest ok = no
   valid users = relion911
   create mask = 0660
   directory mask = 2770

(任意)所有者のブレを抑える

Windowsから作成したファイルの所有者が揃わず困る場合は追加します。

   force user = relion911
   force group = relion911

5) 設定チェック → Samba再起動

sudo testparm
sudo systemctl restart smbd nmbd
sudo systemctl enable --now smbd nmbd

6) UFWで接続元をWindowsだけに絞る(推奨)

家庭内でも共有を開きっぱなしにするなら、UFWアクセス元を絞るのが安全です。

sudo ufw allow from 192.168.2.95 to any app Samba
sudo ufw status

以前に sudo ufw allow samba のように広く許可していた場合は、sudo ufw status numbered で確認して不要ルールを削除します。

Windows側の使い方(エクスプローラー)

1) 共有を開く

エクスプローラーのアドレスバーに入力します。

資格情報を求められたら、以下でログインします。

WindowsエクスプローラーからSamba共有へアクセス

2) ネットワークドライブに割り当て(便利)

エクスプローラー → 「PC」 → 「ネットワークドライブの割り当て」

動作確認(Ubuntu側)

共有設定が効いているか

testparm -sv | sed -n '/\[share\]/,/^\[/{p}'

read only = No ならWindowsからの編集・上書きが反映されます。

SMBポートが待ち受けているか

sudo ss -lntp | egrep ':(445|139)\b' || echo "SMB not listening"

よくあるハマりどころ

1) ドットファイルが見えない

Windows側で「隠しファイルを表示」がOFFだと .ssh などが見えません。エクスプローラーの「表示」メニューから隠しファイルをONにします。
Samba側で隠している場合は hide dot files などの設定が影響していることがあります。

2) .ssh 配下の編集は注意

SSHは権限に厳しいため、Windows側の編集でパーミッションが変わるとログインできなくなることがあります。.ssh 配下はUbuntu側で編集する運用が安全です。

3) セキュリティ

Samba共有は便利な反面、開放範囲が広いとリスクが上がります

まとめ


この記事はReo’s Tech Blogの同名記事にも掲載しています。

Reo’s Tech Blogでは、個人開発や日々の技術的な取り組みを記録しています。興味がありましたら、ほかの記事もご覧ください