Main Logo
Ubuntu 24.04でWindows向けSamba共有サーバーを構築するガイド

Ubuntu 24.04でWindows向けSamba共有サーバーを構築するガイド

Ubuntu 24.04にSambaサーバーを構築してWindows 10/11からアクセスする手順。/srv配下の設計、専用ユーザー作成。

Windows専用Samba共有サーバーの構築手順を解説。ディレクトリ設計、ユーザー権限管理、smb.conf設定、トラブルシューティングまで実運用で必要な知識を網羅。


Ubuntu 24.04でWindows向けSamba共有サーバーを構築する

今回は家庭用のファイル共有サーバーSambaを構築する手順を解説します。 Sambaサーバ構築に必要な最低限の設定をしていきます。

この記事で実現できること

  • Windows 10 / 11から安定してアクセスできるファイルサーバー
  • セキュリティリスクを最小化した運用設計

前提環境

以下の環境を想定しています。

  • サーバー: Ubuntu Server 24.04 LTS
  • Samba: バージョン 4.19 以降
  • クライアント: Windows 10 / Windows 11
  • ネットワーク: LAN内利用
  • IP:UbuntuのIPアドレスは192.168.1.10を想定 ― ipで接続:ip address直打ち想定です。

設計方針

本記事では以下の方針で構築します。

項目方針理由
データ配置/homeに置かないユーザー領域と完全分離し、バックアップ・移行を容易にする
Sambaユーザーログイン不可に設定セキュリティリスクを減らす
SMBプロトコルWindows基準で固定互換性問題を回避
名前解決IP or DNS前提NetBIOS依存を排除


1. 共有ディレクトリの作成

共有ディレクトリ/srv/sambaを作成します。

なぜ /srv/samba を使うのか

/srv ディレクトリは、サービス提供用のデータを配置するための標準的な場所です。 Samba の共有データをここに配置することで、一般的な運用例に沿った、分かりやすいディレクトリ構成になります。

ディレクトリ作成

sudo mkdir -p /srv/samba/shared
Note
  • sharedは共有用フォルダー名です。用途に応じて任意の名前に変更してください。

2. Samba専用ユーザーの作成

もちろん既存ユーザをそのまま利用するでも大丈夫です(個人サーバーの場合)。
しかし、管理、権限分離を考慮すると専用ユーザーを作成した方がいいと思います。

ユーザー作成

Sambaユーザーの作成の前に

Samba専用ユーザー

Samba専用ユーザーは以下のように設定することをお勧めします。

  • SSHログイン不可: セキュリティリスクを減らす
  • ホームディレクトリ不要: システムリソースの無駄を省く
  • Samba認証専用: 用途を限定する
Warning

sudo adduser samba-share のような作り方は避けてください。 不要なログイン可能ユーザーを増やしてしまいます。

ユーザー作成コマンド

sudo adduser \
  --system \
  --no-create-home \
  --group \
  --shell /usr/sbin/nologin \
  samba-share
各オプションの意味
  • --system: システムユーザーとして作成
  • --no-create-home: ホームディレクトリを作成しない
  • --group: 同名のグループも作成
  • --shell /usr/sbin/nologin: ログインシェルを無効化

3. フォルダー権限の変更

所有者とパーミッションの設定

sudo chown -R samba-share:samba-share /srv/samba/shared
sudo chmod 2770 /srv/samba/shared
#`770`: 所有者とグループは読み書き実行可、その他は権限なし

chmod 2とは?

setgid (先頭の2) を設定することで、Windows経由で作成されたファイルも自動的に samba-share グループに所属します。これにより 所有権の不整合を防止 できます。


4. Sambaのインストール

パッケージのインストール

sudo apt update
sudo apt install samba -y

インストール確認

smbd --version
出力例2026年1月
Version 4.19.5-Ubuntu

5. Sambaユーザーの登録

Samba用のユーザー追加と有効化

smbpasswdコマンドで、Samba用のパスワードを設定します。

# Sambaユーザーとして登録(パスワード設定を求められます)
sudo smbpasswd -a samba-share

# ユーザーを有効化
sudo smbpasswd -e samba-share

コマンドの意味:

  • -a: 新規ユーザーを追加
  • -e: ユーザーを有効化 (enable)
ユーザ名とパスワード

ユーザ名は作成したsamba-shareを指定しています。 このパスワードは、Windowsクライアントから接続する際に使用するパスワードです。


6. smb.confの設定(Windows専用)

設定ファイルの編集

sudo nano /etc/samba/smb.conf

推奨設定

以下の内容を /etc/samba/smb.conf に記述します。

ubuntu-samba-conf-img
[global]
   # SMB(SMB2以上を強制)
   server min protocol = SMB2
   
   # UNIX拡張機能を無効化(Windows互換性優先)
   unix extensions = no
   
   # ゲストアクセスを完全に無効化
   map to guest = Never

   # ログ設定
   log file = /var/log/samba/%m.log
   log level = 1

[shared]
   # 共有パス
   path = /srv/samba/shared   
   # アクセス許可ユーザー
   valid users = samba-share
   # 書き込み許可
   read only = no
   # ネットワーク参照で表示
   browsable = yes
   # ファイル作成時の所有者を強制
   force user = samba-share
   force group = samba-share
   # ファイル/ディレクトリ作成時のパーミッション
   create mask = 0660
   directory mask = 2770

各設定の効果とセキュリティ対策

設定項目効果セキュリティ上の意義
server min protocol = SMB2SMB1を無効化WannaCryなどの脆弱性攻撃を防ぐ
unix extensions = noUNIX拡張を無効化Windows互換性を優先
map to guest = Neverゲストアクセス禁止認証なしアクセスを完全に遮断
force user/group所有者を固定権限の不整合を防止
valid usersアクセス制限指定ユーザーのみ許可

設定ファイルの検証

smb.conf設定が正常か検証します。

testparm

7. Sambaサービスの起動と自動起動設定

サービスの再起動

sudo systemctl restart smbd

自動起動の有効化

sudo systemctl enable smbd

起動状態の確認

sudo systemctl status smbd

active (running) と表示されていればOKです。


8. ファイアウォールの設定

UFWでSambaを許可

sudo ufw allow Samba

ファイアウォール状態の確認

sudo ufw status
出力例
To                         Action      From
--                         ------      ----
Samba                      ALLOW       Anywhere

Sambaのポート (139/tcp, 445/tcp) が許可されていることを確認してください。


9. Windowsクライアントからの接続

接続手順

  1. エクスプローラーを開く
  2. アドレスバーに以下を入力
\\192.168.1.10\shared
ubuntu-samba-enter-ip

注意: 192.168.1.10 は実際のUbuntuサーバーのIPアドレスに置き換えてください。

  1. 認証情報を入力
    • ユーザー名: samba-share
    • パスワード: 手順5で設定したパスワード
ubuntu-samba-enter-id-pw

資格情報のクリア(接続できない場合)

Windows側に古い資格情報が残っている場合、接続できないことがあります。

クリア手順:

  1. Win + Rcontrol /name Microsoft.CredentialManager を実行
  2. Windows資格情報 を選択
  3. 該当するサーバーの資格情報を 削除
ubuntu-samba-CredentialManager.png ubuntu-samba-wincert

ゲスト共有について(原則非推奨)

以下のような設定は避けてください。

[shared]
   guest ok = yes
   writable = yes

ゲスト共有の問題点

  • 誰が何を作業したのかわからない。
  • 認証なしでアクセスできるため攻撃リスクが高い

Windows環境では認証を必須にしましょう。


よくあるトラブルと解決方法

1. 接続できない

確認すべきポイント:

# Sambaサービスの状態確認
sudo systemctl status smbd

# ファイアウォールの状態確認
sudo ufw status

# ポートが開いているか確認
sudo ss -tlnp | grep -E ':(139|445)'

対処法:

  • smbd が起動していない → sudo systemctl start smbd
  • ファイアウォールでブロックされている → sudo ufw allow Samba
  • ネットワークの問題 → ping でサーバーに到達可能か確認

2. 認証エラーが出続ける

原因:

  • Windows側の資格情報キャッシュが古い
  • valid users の指定漏れ
  • Sambaユーザーが有効化されていない

対処法:

  • Windows側の資格情報キャッシュが古い

資格情報のクリアを参照ください。

  • valid users記入漏れ

以下の内容を /etc/samba/smb.confを確認ください。

[shared]
   valid users = samba-share  , otheruser1
  • Sambaユーザーが有効化されていない
# Sambaユーザーの状態確認
sudo pdbedit -L -v

# ユーザーの有効化
sudo smbpasswd -e samba-share

3. ファイルが作成できない

原因:

  • ディレクトリの権限不足
  • read only = yes になっている

対処法:

# 権限の確認
ls -ld /srv/samba/shared

# 権限の再設定
sudo chmod 2770 /srv/samba/shared
sudo chown -R samba-share:samba-share /srv/samba/shared

3. アクセス制御の強化

特定のIPアドレスからのみアクセスを許可する場合:

[shared]
   hosts allow = 192.168.1.0/24
   hosts deny = ALL

参考リンク


まとめ

sambaでファイル共有サーバーを作成しました。ローカル環境にファイルサーバーが 1 台あるだけで、複数の端末間でのファイル共有や管理が格段に便利になります。また、ユーザー管理やパーミッションを単純化することで、日常的な運用トラブルが減ります。

ポイント

  1. 適切なディレクトリ設計: /srv 配下に役割を分離
  2. 専用ユーザーの作成: ログイン不可のSamba専用ユーザーを使用
  3. 明確な権限管理: setgidとforce user/groupで所有権を統一

関連記事

コメントを読み込み中...